新增:模板待办

This commit is contained in:
zjh 2025-12-15 09:58:11 +08:00
parent b0bc890c57
commit f7348b3407

View File

@ -104,25 +104,25 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
bd.getBusinessDatabase().doInsert(flow);
// 新增待办
// List<TodoTaskPojo> 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<TodoTaskPojo> 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<TodoAndTemplateView> getApprovalList(ApprovalListForm form) {
// List<TodoAndTemplateView> 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<TodoAndTemplateView> approvalList, List<TodoAndTemplateView> todoAndTemplateViews) {
// todoAndTemplateViews.forEach(item -> {
// if (item.getCurrentUsers() == null || item.getCurrentUsers().isEmpty()) {
// item.setCurrentApprovers(null);
// item.setCurrentUsers(null);
// } else {
// List<String> userIds = JSON.parseArray(item.getCurrentUsers()).toJavaList(String.class);
// List<ApprovalXdapUsers> approvalXdapUsers = bd.getBusinessDatabase()
// .in("id", userIds)
// .doQuery(ApprovalXdapUsers.class);
// item.setCurrentApprovers(approvalXdapUsers);
// item.setCurrentUsers(null);
// }
// });
// approvalList.addAll(todoAndTemplateViews);
// }
private void setCurrentApprovers(List<TodoAndTemplateView> approvalList, List<TodoAndTemplateView> todoAndTemplateViews) {
todoAndTemplateViews.forEach(item -> {
if (item.getCurrentUsers() == null || item.getCurrentUsers().isEmpty()) {
item.setCurrentApprovers(null);
item.setCurrentUsers(null);
} else {
List<String> userIds = JSON.parseArray(item.getCurrentUsers()).toJavaList(String.class);
List<ApprovalXdapUsers> 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<String> users = getNodeUsers(flow, node);
users.forEach(userId -> {
redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId());
});
// 新增待办
List<TodoTaskPojo> 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) {