From 92a7a6a854890abcd0f83f8511d8a77015b2ef8c Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Fri, 5 Dec 2025 14:45:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=AE=A1=E6=A0=B8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=92=8C=E6=B5=81=E7=A8=8B=E6=A8=A1=E7=B3=8A=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/view/TemplateChangeView.java | 2 +- .../pojo/view/TodoAndTemplateView.java | 3 ++- .../impl/TemplateApprovalServiceImpl.java | 19 ++++++++----------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/xdap/self_development/pojo/view/TemplateChangeView.java b/src/main/java/com/xdap/self_development/pojo/view/TemplateChangeView.java index 4c1d545..21a76a7 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/TemplateChangeView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/TemplateChangeView.java @@ -6,7 +6,7 @@ import lombok.Data; @SQLQuery(value = { @SQL(view = "getParameterAndChange", - sql = "SELECT p.*, r.modify_details FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY parameter_id ORDER BY create_time DESC) AS rn FROM yfsjglpt_model_revision_record ) r LEFT JOIN yfsjglpt_model_parameter p ON r.parameter_id = p.id WHERE r.rn = 1 and r.template_id = #templateId") + sql = "SELECT p.*, r.modify_details FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY parameter_id ORDER BY create_time DESC) AS rn FROM yfsjglpt_model_revision_record ) r LEFT JOIN yfsjglpt_model_parameter p ON r.parameter_id = p.id WHERE r.rn = 1 and r.template_id = #templateId order by r.create_time desc ") }) @Data public class TemplateChangeView { diff --git a/src/main/java/com/xdap/self_development/pojo/view/TodoAndTemplateView.java b/src/main/java/com/xdap/self_development/pojo/view/TodoAndTemplateView.java index 0e5bed8..f4802d0 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/TodoAndTemplateView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/TodoAndTemplateView.java @@ -13,7 +13,7 @@ import java.util.List; @SQL(view = "getApprovalByUserIdAndIds", sql = "SELECT af.id AS \"flowId\", t.id AS \"templateId\", t.template_name AS \"templateName\", t.version AS \"version\", t.status AS \"status\" , af.create_by AS \"createBy\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_template t ON af.template_id = t.id WHERE t.template_name like CONCAT('%',#templateName, '%') and t.status like CONCAT('%',#status, '%') and af.flow_type = 1 and af.id NOT IN (#ids) AND af.create_by = #createBy"), @SQL(view = "getTodoAndTemplate", - sql = "SELECT af.id AS \"flowId\", t.id AS \"templateId\", t.template_name AS \"templateName\", t.version AS \"version\", t.status AS \"status\" , af.create_by AS \"createBy\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_template t ON af.template_id = t.id LEFT JOIN xdap_users xu ON xu.id = create_by WHERE t.template_name LIKE CONCAT('%', #templateName, '%') AND t.status LIKE CONCAT('%', #status, '%') AND t.created_time LIKE CONCAT('%', #createdTime, '%') AND xu.username LIKE CONCAT('%', #username, '%') AND af.flow_type = 1 AND af.id IN (#ids)") + sql = "SELECT af.id AS \"flowId\", t.id AS \"templateId\", t.template_name AS \"templateName\", t.version AS \"version\", t.status AS \"status\" , af.create_by AS \"createBy\" , xu.username AS \"username\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_template t ON af.template_id = t.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE t.template_name LIKE CONCAT('%', #templateName, '%') AND t.status LIKE CONCAT('%', #status, '%') AND DATE(af.created_time) = #createdTime AND xu.username LIKE CONCAT('%', #username, '%') AND af.flow_type = 1 AND (af.id IN (#ids) OR af.create_by = #createBy)") }) @Data public class TodoAndTemplateView { @@ -24,6 +24,7 @@ public class TodoAndTemplateView { private String status; private String createBy; private String currentUsers; + private String username; private List currentApprovers; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Timestamp createdTime; 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 6344860..5200362 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 @@ -113,21 +113,19 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { @Transactional public List getApprovalList(ApprovalListForm form) { List approvalList = new ArrayList<>(); - Set flowIds = new HashSet<>(); - flowIds.add(form.getUserId()); - flowIds.addAll(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + form.getUserId()))); + Set flowIds = new HashSet<>(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + form.getUserId()))); List ids = new ArrayList<>(flowIds); List todoList =bd.getBusinessDatabase() .viewQueryMode(true) .view("getTodoAndTemplate") .setVar("ids", ids) + .setVar("createBy", form.getUserId()) .setVar("templateName", form.getTemplateName()) .setVar("status", form.getStatus()) .setVar("createdTime", form.getCreateDate()) - .setVar("username", form.getUsername()) + .setVar("username",form.getUsername()) .doQuery(TodoAndTemplateView.class); setCurrentApprovers(approvalList, todoList); - return approvalList; } @@ -144,10 +142,6 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { item.setCurrentApprovers(approvalXdapUsers); item.setCurrentUsers(null); } - ApprovalXdapUsers approvalXdapUser = bd.getBusinessDatabase() - .eq("id", item.getCreateBy()) - .doQueryFirst(ApprovalXdapUsers.class); - item.setCreateBy(approvalXdapUser == null ? item.getCreateBy() : approvalXdapUser.getUsername()); }); approvalList.addAll(todoAndTemplateViews); } @@ -215,9 +209,11 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { // 处理驳回逻辑 if ("REJECT".equals(request.getResult())) { + // 审批人退回 cancelProcess(flow, "REJECTED"); return; } else if ("RETURN".equals(request.getResult())) { + // 申请人撤回 cancelProcess(flow, "RETURNED"); return; } @@ -354,16 +350,17 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService { } private void cancelProcess(ApprovalFlow flow, String status) { + // 更新流程状态 flow.setFlowStatus(status); bd.getBusinessDatabase() .rowid("id", flow.getRowId()) .update("status", flow.getFlowStatus()) .doUpdate(ApprovalFlow.class); - // 更新模板状态 + // 更新模板状态(重新打回草稿状态) Template template = bd.getBusinessDatabase() .eq("id", flow.getTemplateId()) .doQueryFirst(Template.class); - template.setStatus(status); + template.setStatus("DRAFT"); bd.getBusinessDatabase() .rowid("id", template.getRowId()) .update("status", template.getStatus())