|
@@ -11,7 +11,6 @@ import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.time.DateUtils;
|
|
import org.apache.commons.lang.time.DateUtils;
|
|
-import org.springblade.business.entity.FixedFlowLink;
|
|
|
|
import org.springblade.business.entity.Task;
|
|
import org.springblade.business.entity.Task;
|
|
import org.springblade.business.entity.TaskParallel;
|
|
import org.springblade.business.entity.TaskParallel;
|
|
import org.springblade.business.feign.TaskClient;
|
|
import org.springblade.business.feign.TaskClient;
|
|
@@ -60,7 +59,6 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final BladeRedis bladeRedis;
|
|
private final BladeRedis bladeRedis;
|
|
- private final ArchiveFileTaskClient archiveFileTaskClient;
|
|
|
|
private final TaskClient taskClient;
|
|
private final TaskClient taskClient;
|
|
private final ContractMeterPeriodServiceImpl contractMeterPeriodService;
|
|
private final ContractMeterPeriodServiceImpl contractMeterPeriodService;
|
|
private final MeterPeriodServiceImpl periodService;
|
|
private final MeterPeriodServiceImpl periodService;
|
|
@@ -77,6 +75,11 @@ public class TaskController extends BladeController {
|
|
private final MiddleMeterApplyMapper middleMeterApplyMapper;
|
|
private final MiddleMeterApplyMapper middleMeterApplyMapper;
|
|
|
|
|
|
private final ChangeTokenFormServiceImpl changeTokenFormService;
|
|
private final ChangeTokenFormServiceImpl changeTokenFormService;
|
|
|
|
+ private final ChangeTokenFormServiceTaskImpl changeTokenFormServiceTask;
|
|
|
|
+ private final ChangeTokenMeterServiceImpl changeTokenMeterService;
|
|
|
|
+ private final ChangeTokenMeterServiceTaskImpl changeTokenMeterServiceTask;
|
|
|
|
+ private final ChangeTokenInventoryServiceImpl changeTokenInventoryService;
|
|
|
|
+ private final ChangeTokenInventoryServiceTaskImpl changeTokenInventoryServiceTask;
|
|
|
|
|
|
@GetMapping("/name")
|
|
@GetMapping("/name")
|
|
@ApiOperationSupport(order = 1)
|
|
@ApiOperationSupport(order = 1)
|
|
@@ -108,7 +111,7 @@ public class TaskController extends BladeController {
|
|
List<ChangeTokenForm> changeTokenForms = changeTokenFormService.getBaseMapper().selectBatchIds(longs);
|
|
List<ChangeTokenForm> changeTokenForms = changeTokenFormService.getBaseMapper().selectBatchIds(longs);
|
|
if (changeTokenForms.size() > 0) {
|
|
if (changeTokenForms.size() > 0) {
|
|
List<String> collect = changeTokenForms.stream().map(ChangeTokenForm::getChangeNumber).collect(Collectors.toList());
|
|
List<String> collect = changeTokenForms.stream().map(ChangeTokenForm::getChangeNumber).collect(Collectors.toList());
|
|
- name = "【" + contractInfo.getContractName() + "】" + date + " 变更令【" + StringUtils.join(collect,"、") + "】";
|
|
|
|
|
|
+ name = "【" + contractInfo.getContractName() + "】" + date + " 变更令【" + StringUtils.join(collect, "、") + "】";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -136,14 +139,14 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
|
|
|
|
/*加锁*/
|
|
/*加锁*/
|
|
- String redisValue = bladeRedis.get("meter:report:periodId-" + approvalDTO.getPeriodId());
|
|
|
|
|
|
+ String redisValue = bladeRedis.get("meter:report:contractId-" + approvalDTO.getContractId());
|
|
if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
|
|
if (StringUtils.isNotEmpty(redisValue) && redisValue.equals("1")) {
|
|
- return R.fail(400, "当前期数已提交任务审批,请勿重复提交,60秒后再尝试");
|
|
|
|
|
|
+ return R.fail(400, "请勿重复提交,10秒后再尝试");
|
|
}
|
|
}
|
|
- bladeRedis.set("meter:report:periodId-" + approvalDTO.getPeriodId(), "1");
|
|
|
|
- bladeRedis.expire("meter:report:periodId-" + approvalDTO.getPeriodId(), 60);
|
|
|
|
|
|
+ bladeRedis.set("meter:report:contractId-" + approvalDTO.getContractId(), "1");
|
|
|
|
+ bladeRedis.expire("meter:report:contractId-" + approvalDTO.getContractId(), 10);
|
|
|
|
|
|
- if (ObjectUtil.isNotEmpty(approvalDTO.getType()) && (approvalDTO.getType().equals(1) || approvalDTO.getType().equals(2) || approvalDTO.getType().equals(3))) {
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(approvalDTO.getType()) && (approvalDTO.getType().equals(1) || approvalDTO.getType().equals(2) || approvalDTO.getType().equals(3) || approvalDTO.getType().equals(4))) {
|
|
if (approvalDTO.getType().equals(1)) {
|
|
if (approvalDTO.getType().equals(1)) {
|
|
/*==================== 中间计量申请 ====================*/
|
|
/*==================== 中间计量申请 ====================*/
|
|
Long taskId = SnowFlakeUtil.getId();
|
|
Long taskId = SnowFlakeUtil.getId();
|
|
@@ -351,7 +354,62 @@ public class TaskController extends BladeController {
|
|
}
|
|
}
|
|
} else if (approvalDTO.getType().equals(4)) {
|
|
} else if (approvalDTO.getType().equals(4)) {
|
|
/*==================== 变更令 ====================*/
|
|
/*==================== 变更令 ====================*/
|
|
- //TODO
|
|
|
|
|
|
+ Set<String> aopParamsSet = new HashSet<>();
|
|
|
|
+ for (String id : approvalDTO.getPeriodId().split(",")) {
|
|
|
|
+ Long taskId = SnowFlakeUtil.getId();
|
|
|
|
+ /*获取变更令信息*/
|
|
|
|
+ ChangeTokenForm changeTokenForm = changeTokenFormService.getById(id);
|
|
|
|
+ if (changeTokenForm != null) {
|
|
|
|
+ /*判断是否是未上报、或已废除*/
|
|
|
|
+ if (!Arrays.asList(0, 3).contains(changeTokenForm.getApproveStatus())) {
|
|
|
|
+ throw new ServiceException("当前变更令已上报,操作失败");
|
|
|
|
+ }
|
|
|
|
+ /*获取变更令下的计量单元部位信息*/
|
|
|
|
+ List<ChangeTokenMeter> changeTokenMeters = changeTokenMeterService.getBaseMapper().selectList(Wrappers.<ChangeTokenMeter>lambdaQuery().eq(ChangeTokenMeter::getChangeTokenId, changeTokenForm.getId()));
|
|
|
|
+ if (changeTokenMeters.size() > 0) {
|
|
|
|
+ /*获取计量单元下的清单信息*/
|
|
|
|
+ List<ChangeTokenInventory> changeTokenInventories = changeTokenInventoryService.getBaseMapper().selectList(Wrappers.<ChangeTokenInventory>lambdaQuery()
|
|
|
|
+ .eq(ChangeTokenInventory::getChangeTokenId, changeTokenForm.getId()));
|
|
|
|
+
|
|
|
|
+ /*复制taskVO数据*/
|
|
|
|
+ ChangeTokenFormTask changeTokenFormTask = BeanUtil.copyProperties(changeTokenForm, ChangeTokenFormTask.class);
|
|
|
|
+ if (changeTokenFormTask != null) {
|
|
|
|
+ changeTokenFormTask.setTaskId(taskId);
|
|
|
|
+ changeTokenFormServiceTask.save(changeTokenFormTask); //变更令
|
|
|
|
+
|
|
|
|
+ List<ChangeTokenMeterTask> changeTokenMeterTasks = BeanUtil.copyProperties(changeTokenMeters, ChangeTokenMeterTask.class);
|
|
|
|
+ for (ChangeTokenMeterTask changeTokenMeterTask : changeTokenMeterTasks) {
|
|
|
|
+ changeTokenMeterTask.setTaskId(taskId);
|
|
|
|
+ }
|
|
|
|
+ changeTokenMeterServiceTask.saveBatch(changeTokenMeterTasks, 1000); //部位
|
|
|
|
+
|
|
|
|
+ List<ChangeTokenInventoryTask> changeTokenInventoryTasks = BeanUtil.copyProperties(changeTokenInventories, ChangeTokenInventoryTask.class);
|
|
|
|
+ for (ChangeTokenInventoryTask changeTokenInventoryTask : changeTokenInventoryTasks) {
|
|
|
|
+ changeTokenInventoryTask.setTaskId(taskId);
|
|
|
|
+ }
|
|
|
|
+ changeTokenInventoryServiceTask.saveBatch(changeTokenInventoryTasks, 1000); //清单
|
|
|
|
+
|
|
|
|
+ /*构造创建审批任务*/
|
|
|
|
+ try {
|
|
|
|
+ this.buildTaskInfo(taskId, approvalDTO, aopParamsSet, 4);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new ServiceException("创建审批任务异常,操作失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*修改变更令原始数据的审批状态=待审批*/
|
|
|
|
+ changeTokenFormService.update(Wrappers.<ChangeTokenForm>lambdaUpdate()
|
|
|
|
+ .set(ChangeTokenForm::getApproveStatus, 1)
|
|
|
|
+ .eq(ChangeTokenForm::getId, id));
|
|
|
|
+ /*复制数据的审批状态=待审批*/
|
|
|
|
+ changeTokenFormServiceTask.update(Wrappers.<ChangeTokenFormTask>lambdaUpdate()
|
|
|
|
+ .set(ChangeTokenFormTask::getApproveStatus, 1)
|
|
|
|
+ .eq(ChangeTokenFormTask::getTaskId, taskId)
|
|
|
|
+ .eq(ChangeTokenFormTask::getId, id));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.data(200, aopParamsSet, "操作成功");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return R.fail("操作失败");
|
|
return R.fail("操作失败");
|
|
@@ -366,33 +424,6 @@ public class TaskController extends BladeController {
|
|
* @param meterTaskType
|
|
* @param meterTaskType
|
|
*/
|
|
*/
|
|
private void buildTaskInfo(Long taskId, MeterApprovalDTO approvalDTO, Set<String> aopParamsSet, Integer meterTaskType) {
|
|
private void buildTaskInfo(Long taskId, MeterApprovalDTO approvalDTO, Set<String> aopParamsSet, Integer meterTaskType) {
|
|
- /*预设流程,获取对应任务人id*//*
|
|
|
|
- String resultString = "";
|
|
|
|
- if (ObjectUtil.isNotEmpty(approvalDTO.getFixedFlowId())) {
|
|
|
|
- List<FixedFlowLink> fixedFlowLinks = jdbcTemplate.query("select fixed_flow_link_user,fixed_flow_link_sort from u_fixed_flow_link " +
|
|
|
|
- "where fixed_flow_id = " + approvalDTO.getFixedFlowId(), new BeanPropertyRowMapper<>(FixedFlowLink.class));
|
|
|
|
- if (fixedFlowLinks.size() > 0) {
|
|
|
|
- fixedFlowLinks.sort(Comparator.comparingInt(FixedFlowLink::getFixedFlowLinkSort));
|
|
|
|
- StringBuilder sortStr = new StringBuilder();
|
|
|
|
- for (FixedFlowLink link : fixedFlowLinks) {
|
|
|
|
- sortStr.append(link.getFixedFlowLinkUser()).append(",");
|
|
|
|
- }
|
|
|
|
- if (sortStr.length() > 0) {
|
|
|
|
- sortStr.deleteCharAt(sortStr.length() - 1);
|
|
|
|
- }
|
|
|
|
- resultString = sortStr.toString();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- *//*如果是预设流程,重新赋值任务人id*//*
|
|
|
|
- if (ObjectUtil.isNotEmpty(resultString)) {
|
|
|
|
- *//*检查预设任务流程的任务人是否存在签字证书信息*//*
|
|
|
|
- R<Object> objectR = archiveFileTaskClient.checkTaskUserCertificateInfo(resultString);
|
|
|
|
- if (objectR.isSuccess()) {
|
|
|
|
- approvalDTO.setTaskUserIds(resultString);
|
|
|
|
- } else {
|
|
|
|
- throw new ServiceException("未获取到预设任务流程的任务人的签字证书信息,操作失败");
|
|
|
|
- }
|
|
|
|
- }*/
|
|
|
|
if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds())) {
|
|
if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds())) {
|
|
throw new ServiceException("未获取到任务人信息,操作失败");
|
|
throw new ServiceException("未获取到任务人信息,操作失败");
|
|
}
|
|
}
|
|
@@ -415,7 +446,7 @@ public class TaskController extends BladeController {
|
|
task.setCreateDept(null);
|
|
task.setCreateDept(null);
|
|
task.setTaskContent(ObjectUtil.isNotEmpty(approvalDTO.getTaskDesc()) ? approvalDTO.getTaskDesc() : null);
|
|
task.setTaskContent(ObjectUtil.isNotEmpty(approvalDTO.getTaskDesc()) ? approvalDTO.getTaskDesc() : null);
|
|
task.setTaskUser(null);
|
|
task.setTaskUser(null);
|
|
- task.setFormDataId(approvalDTO.getPeriodId().toString()); //数据指向,指向期数id
|
|
|
|
|
|
+ task.setFormDataId(approvalDTO.getPeriodId()); //数据指向,指向期数id(变更令为id英文逗号拼接)
|
|
task.setTaskName(approvalDTO.getTaskName());
|
|
task.setTaskName(approvalDTO.getTaskName());
|
|
task.setContractId(approvalDTO.getContractId().toString());
|
|
task.setContractId(approvalDTO.getContractId().toString());
|
|
task.setProjectId(approvalDTO.getProjectId().toString());
|
|
task.setProjectId(approvalDTO.getProjectId().toString());
|
|
@@ -511,7 +542,7 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
@PostMapping("/repeal")
|
|
@PostMapping("/repeal")
|
|
@ApiOperationSupport(order = 3)
|
|
@ApiOperationSupport(order = 3)
|
|
- @ApiOperation(value = "任务废除(任务撤销、驳回审批)", notes = "按一期废除,即按整条任务废除(中期计量申请、材料计量单、开工预付款计量单、任务查看-废除任务)")
|
|
|
|
|
|
+ @ApiOperation(value = "任务废除(任务撤销、驳回审批)", notes = "按一期废除,即按整条任务废除(中期计量申请、材料计量单、开工预付款计量单、变更令、任务查看-废除任务)")
|
|
@PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
|
|
@PushMessage(clientId = ClientIdConstant.METER_CLIENT_ID)
|
|
public R<Object> repeal(@RequestBody TaskRepealDTO taskRepealDTO) {
|
|
public R<Object> repeal(@RequestBody TaskRepealDTO taskRepealDTO) {
|
|
if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
|
|
if (ObjectUtil.isNotEmpty(taskRepealDTO) && ObjectUtil.isNotEmpty(taskRepealDTO.getTaskId())) {
|
|
@@ -626,7 +657,17 @@ public class TaskController extends BladeController {
|
|
jdbcTemplate.execute("DELETE FROM s_start_pay_meter_form_task WHERE meter_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
|
|
jdbcTemplate.execute("DELETE FROM s_start_pay_meter_form_task WHERE meter_period_id = '" + periodId + "' AND task_id = " + taskRepealDTO.getTaskId());
|
|
|
|
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
- //TODO 变更令
|
|
|
|
|
|
+ for (String dataId : periodId.split(",")) {
|
|
|
|
+ /*修改变更令的审批状态=未上报*/
|
|
|
|
+ changeTokenFormService.update(Wrappers.<ChangeTokenForm>lambdaUpdate()
|
|
|
|
+ .set(ChangeTokenForm::getApproveStatus, 0)
|
|
|
|
+ .eq(ChangeTokenForm::getId, dataId));
|
|
|
|
+
|
|
|
|
+ /*删除业务复制数据taskVO*/
|
|
|
|
+ jdbcTemplate.execute("DELETE FROM s_change_token_form_task WHERE id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
|
|
|
|
+ jdbcTemplate.execute("DELETE FROM s_change_token_meter_task WHERE change_token_id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
|
|
|
|
+ jdbcTemplate.execute("DELETE FROM s_change_token_inventory_task WHERE change_token_id = '" + dataId + "' AND task_id = " + taskRepealDTO.getTaskId());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/*删除文件附件、任务批注信息*/
|
|
/*删除文件附件、任务批注信息*/
|
|
@@ -937,7 +978,20 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
/*==================== 变更令 ====================*/
|
|
/*==================== 变更令 ====================*/
|
|
- //TODO 变更令
|
|
|
|
|
|
+ List<Long> longs = Func.toLongList(periodId);
|
|
|
|
+ List<ChangeTokenFormTask> changeTokenFormTasks = changeTokenFormServiceTask.getBaseMapper().selectBatchIds(longs);
|
|
|
|
+ List<ChangeTokenFormTaskVO> changeTokenFormTaskVOS = BeanUtil.copyProperties(changeTokenFormTasks, ChangeTokenFormTaskVO.class);
|
|
|
|
+ for (ChangeTokenFormTaskVO changeTokenFormTaskVO : changeTokenFormTaskVOS) {
|
|
|
|
+ String key = SecureUtil.getUserId() + ":" + changeTokenFormTaskVO.getId();
|
|
|
|
+ TaskComment orDefault = taskCommentMap.getOrDefault(key, null);
|
|
|
|
+ if (orDefault != null) {
|
|
|
|
+ changeTokenFormTaskVO.setIsComment(1);
|
|
|
|
+ } else {
|
|
|
|
+ changeTokenFormTaskVO.setIsComment(0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setTaskCenterDataInfo(changeTokenFormTaskVOS);
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -971,7 +1025,18 @@ public class TaskController extends BladeController {
|
|
vo.setBasicsInfo(startPayMeterFormTask);
|
|
vo.setBasicsInfo(startPayMeterFormTask);
|
|
|
|
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
} else if (task.getMeterTaskType().equals(4)) {
|
|
- //TODO 变更令
|
|
|
|
|
|
+ ChangeTokenFormTask changeTokenFormTask = changeTokenFormServiceTask.getById(dataId);
|
|
|
|
+ if (changeTokenFormTask != null) {
|
|
|
|
+ vo.setBasicsInfo(changeTokenFormTask);
|
|
|
|
+
|
|
|
|
+ List<ChangeTokenMeterTask> changeTokenMeterTasks = changeTokenMeterServiceTask.getBaseMapper().selectList(Wrappers.<ChangeTokenMeterTask>lambdaQuery()
|
|
|
|
+ .eq(ChangeTokenMeterTask::getChangeTokenId, changeTokenFormTask.getId()));
|
|
|
|
+ vo.setChangeTokenMeterTaskList(changeTokenMeterTasks);
|
|
|
|
+
|
|
|
|
+ List<ChangeTokenInventoryTask> changeTokenInventoryTasks = changeTokenInventoryServiceTask.getBaseMapper().selectList(Wrappers.<ChangeTokenInventoryTask>lambdaQuery()
|
|
|
|
+ .eq(ChangeTokenInventoryTask::getChangeTokenId, changeTokenFormTask.getId()));
|
|
|
|
+ vo.setChangeTokenInventoryTaskList(changeTokenInventoryTasks);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/*附件文件信息*/
|
|
/*附件文件信息*/
|