This commit is contained in:
=
2026-07-29 16:50:05 +08:00
parent e8ed1d93f9
commit ff3e8075b5
@@ -79,14 +79,19 @@ public class ProposalDashboardController {
// 节点
ProcessDefine define = processDefineService.getLastByName("JDHTA_NC");
ProcessModel processModel = processDefineService.processDefineToModel(define);
List<TaskModel> taskModels = processModel.getTasks();
// 按流程图的连线关系遍历任务节点,保证看板展示顺序与流程图一致。
List<TaskModel> taskModels = processModel.getModels(TaskModel.class);
List<String> excludeNodes = new ArrayList<>(3);
excludeNodes.add("撰写提案");
excludeNodes.add("邀请附议人");
excludeNodes.add("提案附议");
List<NutMap> taskNodes = taskModels.stream().filter(taskModel -> !excludeNodes.contains(taskModel.getDisplayName()))
// opinion_unit_reply、two_unit_reply 为临时屏蔽的承办单位答复节点,不在看板展示。
List<String> hiddenNodeIds = List.of("opinion_unit_reply", "two_unit_reply");
List<NutMap> 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<Sys_dict> caseFilingResult = sysDictService.getSubListByCode("PROPOSAL_CASE_FILING_RESULT");
List<NutMap> 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<NutMap> 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