diff --git a/src/main/java/com/xdap/self_development/controller/request/TodoReturnRequest.java b/src/main/java/com/xdap/self_development/controller/request/TodoReturnRequest.java index 76a0e93..f9323d4 100644 --- a/src/main/java/com/xdap/self_development/controller/request/TodoReturnRequest.java +++ b/src/main/java/com/xdap/self_development/controller/request/TodoReturnRequest.java @@ -10,4 +10,6 @@ public class TodoReturnRequest { private String steps; //退回的待办ID private String todoTaskId; + //退回人 + private String modelID; } diff --git a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java index c8c731b..938a732 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java @@ -270,6 +270,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public void todoReturn(TodoReturnRequest todoReturnRequest) { String todoTaskId = todoReturnRequest.getTodoTaskId(); if (ObjectUtils.isEmpty(todoTaskId)) { @@ -283,6 +284,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { throw new RuntimeException("传入的单据查不到"); } TodoTaskPojo todoTaskPojo1 = todoTaskPojos.get(0); + String modelID = todoReturnRequest.getModelID(); //如果是填写人退回 把填写人的待办删除 则为该条责任人添加待办 并且待办创建人改为退回人 if ("填写人退回".equals(todoReturnRequest.getSteps())) { sw.buildFromDatasource("xdap_app_223770822127386625") @@ -291,22 +293,36 @@ public class TodoTaskServiceImpl implements TodoTaskService { .eq("id", todoTaskId).doUpdate(TodoTaskPojo.class); XdapUsers xdapUsersPojo = xdapDeptUsersService.selectUserByID(todoReturnRequest.getUserID()); + //组装待办 TodoTaskPojo todoTaskPojo = new TodoTaskPojo(); todoTaskPojo.setCreatedById(todoReturnRequest.getUserID()); todoTaskPojo.setDocumentNo(UUID.randomUUID().toString()); - todoTaskPojo.setProcessTitle(CurrentNodeEnum.JOBSPLIT.getDesc()); + todoTaskPojo.setProcessTitle("分发责任人(填写人退回)"); todoTaskPojo.setCurrentNode("待分解"); todoTaskPojo.setStatusCode(null/*String.valueOf(ParamValueVersionEnum.DRAFT.getCode())*/); todoTaskPojo.setModelName(todoTaskPojo1.getModelName()); todoTaskPojo.setModelId(todoTaskPojo1.getModelId()); todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); - todoTaskPojo.setDataType(todoTaskPojo1.getDataType()); + todoTaskPojo.setDataType(CurrentNodeEnum.JOBSPLIT.getDesc()); todoTaskPojo.setVersionNumber(todoTaskPojo1.getVersionNumber()); todoTaskPojo.setIsDelete(0); + todoTaskPojo.setCurrentProcessor(todoTaskPojo1.getCreatedById()); todoTaskPojo.setOwnerId(todoTaskPojo1.getCreatedById()); todoTaskPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getUsername() : ""); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); + //把相关参数中的填写人退回 + List pojoList = engineParamDetailService.selectByModelNewVersion(modelID); + List pojos = pojoList.stream().filter(x -> x.getFilledBy().equals(todoReturnRequest.getUserID())) + .collect(Collectors.toList()); + + for (EngineParamDetailPojo pojo : pojos) { + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("filled_by", null) + .eq("id",pojo.getId()) + .doUpdate(pojo); + } + } else if ("责任人退回".equals(todoReturnRequest.getSteps())) { //如果是责任人退回 则该条数据还是属于未分发状态 //暂时先不这么做处理,责任人退回无法记录退回人,容易重复提交分发