diff --git a/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java index 9d9e17b..e3fc533 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TemplateApprovalServiceImpl.java @@ -104,25 +104,25 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { bd.getBusinessDatabase().doInsert(flow); // 新增待办 -// List list = new ArrayList<>(); -// for (String person : request.getProofreadUsers()) { -// TodoTaskPojo todoTask = new TodoTaskPojo(); -// todoTask.setCreatedById(permissionGetter.getCurrentUserId()); -// todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); -// todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); -// todoTask.setDataType("-"); -// todoTask.setDocumentNo(flow.getId()); -// todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); -// todoTask.setIsDelete(0); -// todoTask.setModelId(template.getId()); -// todoTask.setModelName(template.getTemplateName()); -// todoTask.setProcessTitle("模板审核"); -// todoTask.setStatusCode(flow.getFlowStatus()); -// todoTask.setVersionNumber(template.getVersion()); -// todoTask.setOwnerId(person); -// list.add(todoTask); -// } -// bd.getBusinessDatabase().doBatchInsert(list); + List list = new ArrayList<>(); + for (String person : request.getProofreadUsers()) { + TodoTaskPojo todoTask = new TodoTaskPojo(); + todoTask.setCreatedById(permissionGetter.getCurrentUserId()); + todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); + todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); + todoTask.setDataType("-"); + todoTask.setDocumentNo(flow.getId()); + todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + todoTask.setIsDelete(0); + todoTask.setModelId(template.getId()); + todoTask.setModelName(template.getTemplateName()); + todoTask.setProcessTitle("模板审核"); + todoTask.setStatusCode(flow.getFlowStatus()); + todoTask.setVersionNumber(template.getVersion()); + todoTask.setOwnerId(person); + list.add(todoTask); + } + bd.getBusinessDatabase().doBatchInsert(list); // 3. 更新模板状态为校对中 template.setStatus("APPROVING"); @@ -142,7 +142,6 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { @Override @Transactional public List getApprovalList(ApprovalListForm form) { - // List todoAndTemplateViews = bd.getBusinessDatabase() // .viewQueryMode(true) // .view("getAllApproval") @@ -160,26 +159,27 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { .setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate()) .setVar("username",form.getUsername()) .doQuery(TodoAndTemplateView.class); + setCurrentApprovers(approvalList, todoList); return approvalList; // return todoAndTemplateViews; } -// private void setCurrentApprovers(List approvalList, List todoAndTemplateViews) { -// todoAndTemplateViews.forEach(item -> { -// if (item.getCurrentUsers() == null || item.getCurrentUsers().isEmpty()) { -// item.setCurrentApprovers(null); -// item.setCurrentUsers(null); -// } else { -// List userIds = JSON.parseArray(item.getCurrentUsers()).toJavaList(String.class); -// List approvalXdapUsers = bd.getBusinessDatabase() -// .in("id", userIds) -// .doQuery(ApprovalXdapUsers.class); -// item.setCurrentApprovers(approvalXdapUsers); -// item.setCurrentUsers(null); -// } -// }); -// approvalList.addAll(todoAndTemplateViews); -// } + private void setCurrentApprovers(List approvalList, List todoAndTemplateViews) { + todoAndTemplateViews.forEach(item -> { + if (item.getCurrentUsers() == null || item.getCurrentUsers().isEmpty()) { + item.setCurrentApprovers(null); + item.setCurrentUsers(null); + } else { + List userIds = JSON.parseArray(item.getCurrentUsers()).toJavaList(String.class); + List approvalXdapUsers = bd.getBusinessDatabase() + .in("id", userIds) + .doQuery(ApprovalXdapUsers.class); + item.setCurrentApprovers(approvalXdapUsers); + item.setCurrentUsers(null); + } + }); + approvalList.addAll(todoAndTemplateViews); + } @Override @Transactional(rollbackFor = CommonException.class) @@ -248,14 +248,14 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { // 删除当前节点的已处理待办 if ("COUNTERSIGN".equals(flow.getCurrentNode())) { redisTemplate.opsForSet().remove(TODO_PREFIX + request.getUserId(), flow.getId()); -// bd.getBusinessDatabase() -// .eq("document_no", flow.getId()) -// .eq("owner_id", permissionGetter.getCurrentUserId()) -// .doDelete(TodoTaskPojo.class); -// } else { -// bd.getBusinessDatabase() -// .eq("document_no", flow.getId()) -// .doDelete(TodoTaskPojo.class); + bd.getBusinessDatabase() + .eq("document_no", flow.getId()) + .eq("owner_id", permissionGetter.getCurrentUserId()) + .doDelete(TodoTaskPojo.class); + } else { + bd.getBusinessDatabase() + .eq("document_no", flow.getId()) + .doDelete(TodoTaskPojo.class); } // 处理驳回逻辑 @@ -399,7 +399,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { clearProcessed(flow); } else { flow.setCurrentNode(nextNode); - addNodeTodo(flow, nextNode); + addNodeTodo(flow, nextNode, template); } bd.getBusinessDatabase() @@ -478,13 +478,31 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { } } - private void addNodeTodo(ApprovalFlow flow, String node) { + private void addNodeTodo(ApprovalFlow flow, String node, Template template) { List users = getNodeUsers(flow, node); users.forEach(userId -> { redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId()); }); - - + // 新增待办 + List list = new ArrayList<>(); + for (String person : users) { + TodoTaskPojo todoTask = new TodoTaskPojo(); + todoTask.setCreatedById(permissionGetter.getCurrentUserId()); + todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); + todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); + todoTask.setDataType("-"); + todoTask.setDocumentNo(flow.getId()); + todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + todoTask.setIsDelete(0); + todoTask.setModelId(template.getId()); + todoTask.setModelName(template.getTemplateName()); + todoTask.setProcessTitle("模板审核"); + todoTask.setStatusCode(flow.getFlowStatus()); + todoTask.setVersionNumber(template.getVersion()); + todoTask.setOwnerId(person); + list.add(todoTask); + } + bd.getBusinessDatabase().doBatchInsert(list); } private void clearNodeTodo(ApprovalFlow flow, String node) {