From ff3e8075b5dcd2119026c573ad7331e2bfbb21e4 Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jul 2026 16:50:05 +0800 Subject: [PATCH] commit --- .../ProposalDashboardController.java | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/dashboard/ProposalDashboardController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/dashboard/ProposalDashboardController.java index f4b5b30b..8dfce38c 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/dashboard/ProposalDashboardController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/dashboard/ProposalDashboardController.java @@ -79,14 +79,19 @@ public class ProposalDashboardController { // 节点 ProcessDefine define = processDefineService.getLastByName("JDHTA_NC"); ProcessModel processModel = processDefineService.processDefineToModel(define); - List taskModels = processModel.getTasks(); + // 按流程图的连线关系遍历任务节点,保证看板展示顺序与流程图一致。 + List taskModels = processModel.getModels(TaskModel.class); List excludeNodes = new ArrayList<>(3); excludeNodes.add("撰写提案"); excludeNodes.add("邀请附议人"); excludeNodes.add("提案附议"); - List taskNodes = taskModels.stream().filter(taskModel -> !excludeNodes.contains(taskModel.getDisplayName())) + // opinion_unit_reply、two_unit_reply 为临时屏蔽的承办单位答复节点,不在看板展示。 + List hiddenNodeIds = List.of("opinion_unit_reply", "two_unit_reply"); + List taskNodes = new ArrayList<>(taskModels.stream() + .filter(taskModel -> !excludeNodes.contains(taskModel.getDisplayName())) + .filter(taskModel -> !hiddenNodeIds.contains(taskModel.getName())) .map(taskModel -> NutMap.NEW() .addv("name", taskModel.getDisplayName()) .addv("id", taskModel.getName()) @@ -94,19 +99,35 @@ public class ProposalDashboardController { .addv("count", 0) .addv("todoCount", 0) .addv("doneCount", 0) - ).toList(); - nodes.addAll(taskNodes); + ).toList()); // 立案结果 List caseFilingResult = sysDictService.getSubListByCode("PROPOSAL_CASE_FILING_RESULT"); + List caseFilingResultNodes = new ArrayList<>(); for (Sys_dict dict : caseFilingResult) { - nodes.add(NutMap.NEW() + caseFilingResultNodes.add(NutMap.NEW() .addv("name", dict.getName()) .addv("id", dict.getCode()) .addv("type", "caseFilingResult") .addv("count", 0)); } + // 立案结果需展示在委员会确认承办单位之前,反馈评价统一固定到看板末尾。 + List feedbackNodes = taskNodes.stream() + .filter(taskNode -> "feedback".equals(taskNode.getString("id"))) + .toList(); + taskNodes.removeIf(taskNode -> "feedback".equals(taskNode.getString("id"))); + int committeeFilingUnitIndex = taskNodes.size(); + for (int i = 0; i < taskNodes.size(); i++) { + if ("committeeFilingUnit".equals(taskNodes.get(i).getString("id"))) { + committeeFilingUnitIndex = i; + break; + } + } + taskNodes.addAll(committeeFilingUnitIndex, caseFilingResultNodes); + nodes.addAll(taskNodes); + nodes.addAll(feedbackNodes); + // 查询待办任务 Sql todoSql = Sqls.create(""" SELECT