From 52e9ef7d0a66500d596c2d4a3e8fc635c9f3e742 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 17 三月 2025 11:50:18 +0800 Subject: [PATCH] 流程图查看,容缺、跳过显示 --- flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java | 10 ++++++++++ business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 8 ++++++-- business/src/main/java/com/ycl/service/ProcessLogService.java | 18 ++++++++++++++++++ business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java | 20 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/business/src/main/java/com/ycl/service/ProcessLogService.java b/business/src/main/java/com/ycl/service/ProcessLogService.java index 8609d33..9c7141e 100644 --- a/business/src/main/java/com/ycl/service/ProcessLogService.java +++ b/business/src/main/java/com/ycl/service/ProcessLogService.java @@ -79,6 +79,24 @@ Boolean taskIsHangup(String taskId, String processInsId); /** + * 妫�鏌ヤ换鍔℃槸鍚﹀缂� + * + * @param taskId + * @param processInsId + * @return + */ + Boolean taskIsWait(String taskId, String processInsId); + + /** + * 妫�鏌ヤ换鍔℃槸鍚﹁烦杩� + * + * @param taskId + * @param processInsId + * @return + */ + Boolean taskIsJump(String taskId, String processInsId); + + /** * 妫�鏌ヤ换鍔℃槸鍚﹀崗鍚屽姙鐞嗕簡 * * @param taskId 浠诲姟id diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index 0c2d7a4..d1e99b7 100644 --- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java @@ -1336,6 +1336,8 @@ if (StringUtils.isBlank(s.getDeleteReason())) { flowViewerList.add(flowViewerDto); } + flowViewerDto.setHasJump(processLogService.taskIsJump(s.getTaskId(), procInsId)); + flowViewerDto.setHasWait(processLogService.taskIsWait(s.getTaskId(), procInsId)); }); // 鑾峰彇浠e姙鑺傜偣 @@ -1353,8 +1355,10 @@ // 鎵╁睍鍐呭 浠e姙鐨勯�氳繃褰撳墠鏃堕棿浣滀负endTime ProcessCoding processCoding = processCodingMap.get(s.getTaskId()); //濡傛灉鏈夌洃鎺ф暟鎹� 涓嶅弽鐨勮瘽鍓嶇榛樿鏄繘琛屼腑(钃濊壊) - if (processCoding != null && (RED.equals(processCoding.getStatus()) || YELLOW.equals(processCoding.getStatus()))) { - flowViewerDto.setOvertime(processCoding.getStatus()); + if (Objects.nonNull(processCoding)) { + if (RED.equals(processCoding.getStatus()) || YELLOW.equals(processCoding.getStatus())) { + flowViewerDto.setOvertime(processCoding.getStatus()); + } } flowViewerList.add(flowViewerDto); }); diff --git a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java index e3f8512..306abc1 100644 --- a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java @@ -145,6 +145,26 @@ } @Override + public Boolean taskIsWait(String taskId, String processInsId) { + List<ProcessLog> list = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProcessLog::getProcessInsId, processInsId) + .eq(ProcessLog::getTaskId, taskId) + .list(); + return list.stream().anyMatch(log -> ProcessLogEventTypeEnum.WAIT.equals(log.getEventType())) + && list.stream().filter(log -> ProcessLogEventTypeEnum.FINISHED.equals(log.getEventType())).count() < 1; + } + + @Override + public Boolean taskIsJump(String taskId, String processInsId) { + List<ProcessLog> list = new LambdaQueryChainWrapper<>(baseMapper) + .eq(ProcessLog::getProcessInsId, processInsId) + .eq(ProcessLog::getTaskId, taskId) + .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP) + .list(); + return list.size() > 0; + } + + @Override public Boolean taskIsTeamwork(String taskId, String processInsId) { ProcessLog log = new LambdaQueryChainWrapper<>(baseMapper) .eq(ProcessLog::getProcessInsId, processInsId) diff --git a/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java b/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java index 73ba121..9bad65e 100644 --- a/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java +++ b/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java @@ -25,4 +25,14 @@ * 椤圭洰瓒呮椂棰滆壊鐮� green/yellow/red */ private String overtime; + + /** + * 鏄惁瀹圭己浜� + */ + private Boolean hasWait; + + /** + * 鏄惁璺宠繃浜� + */ + private Boolean hasJump; } -- Gitblit v1.8.0