From b809036ade43c97f86a0802fed57177884cc61f7 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 26 十二月 2024 17:46:34 +0800 Subject: [PATCH] 赋码demo --- flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-) diff --git a/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index aff08d2..4486c01 100644 --- a/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java @@ -792,6 +792,11 @@ .processInstanceId(procInsId) .orderByHistoricActivityInstanceStartTime() .desc().list(); + Date now =new Date(); + //鎵╁睍 + List<HistoricTaskInstance> taskList = historyService.createHistoricTaskInstanceQuery() + .processInstanceId(procInsId) + .list(); List<FlowTaskDto> hisFlowList = new ArrayList<>(); for (HistoricActivityInstance histIns : list) { // 灞曠ず寮�濮嬭妭鐐� @@ -850,6 +855,23 @@ } flowTask.setDuration(histIns.getDurationInMillis() == null || histIns.getDurationInMillis() == 0 ? null : getDate(histIns.getDurationInMillis())); + String taskId = histIns.getTaskId(); + + //鎵╁睍 鍒ゆ柇鏄惁瓒呮椂 + for (HistoricTaskInstance taskInstance : taskList) { + Date dueDate = taskInstance.getDueDate(); + //鎵惧埌瀵瑰簲浠诲姟鑺傜偣 + if(dueDate!=null && taskInstance.getId().equals(taskId) ) { + //濡傛灉浠诲姟杩樻病瀹屾垚 + if(flowTask.getDuration()==null) { + //鍒ゆ柇褰撳墠鏃堕棿鏄惁瓒呰繃鍒版湡鏃堕棿 + if (now.after(dueDate)) flowTask.setOvertime(Boolean.TRUE); + }else { + //濡傛灉浠诲姟鑺傜偣宸茬粡瀹屾垚浜嗭紝鐢ㄥ畬鎴愭椂闂村垽鏂� + if(histIns.getEndTime().after(dueDate)) flowTask.setOvertime(Boolean.TRUE); + } + } + } // 鑾峰彇鎰忚璇勮鍐呭 List<Comment> commentList = taskService.getProcessInstanceComments(histIns.getProcessInstanceId()); commentList.forEach(comment -> { @@ -1095,9 +1117,15 @@ @Override public AjaxResult flowXmlAndNode(String procInsId, String deployId) { try { + Date now = new Date(); List<FlowViewerDto> flowViewerList = new ArrayList<>(); // 鑾峰彇宸茬粡瀹屾垚鐨勮妭鐐� List<HistoricActivityInstance> listFinished = historyService.createHistoricActivityInstanceQuery() + .processInstanceId(procInsId) + .finished() + .list(); + //鑾峰彇鎵�鏈変换鍔¤妭鐐逛俊鎭�(鎵╁睍) + List<HistoricTaskInstance> taskList = historyService.createHistoricTaskInstanceQuery() .processInstanceId(procInsId) .finished() .list(); @@ -1107,6 +1135,15 @@ FlowViewerDto flowViewerDto = new FlowViewerDto(); flowViewerDto.setKey(s.getActivityId()); flowViewerDto.setCompleted(true); + //鎵╁睍鍐呭 宸插畬鎴愮殑鐢ㄥ畬鎴愭椂闂村垽鏂� + Date endTime = s.getEndTime(); + for (HistoricTaskInstance task : taskList) { + if(s.getTaskId()!=null && s.getTaskId().equals(task.getId())){ + if(task.getDueDate()!=null && endTime.after(task.getDueDate())){ + flowViewerDto.setOvertime(true); + } + } + } // 閫�鍥炶妭鐐逛笉杩涜灞曠ず if (StringUtils.isBlank(s.getDeleteReason())) { flowViewerList.add(flowViewerDto); @@ -1126,6 +1163,14 @@ FlowViewerDto flowViewerDto = new FlowViewerDto(); flowViewerDto.setKey(s.getActivityId()); flowViewerDto.setCompleted(false); + //鎵╁睍鍐呭 浠e姙鐨勯�氳繃褰撳墠鏃堕棿鍘诲垽鏂� + for (HistoricTaskInstance task : taskList) { + if(s.getTaskId()!=null && s.getTaskId().equals(task.getId())){ + if(task.getDueDate()!=null && now.after(task.getDueDate())){ + flowViewerDto.setOvertime(true); + } + } + } flowViewerList.add(flowViewerDto); }); Map<String, Object> result = new HashMap(); -- Gitblit v1.8.0