From 18668d8aa56addae9e488f32102f7ce808d8eab1 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 26 十二月 2024 17:58:32 +0800
Subject: [PATCH] 赋码demo
---
flowable/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 49 insertions(+), 1 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..09202bf 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,18 +1117,36 @@
@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> taskHistoryList = historyService.createHistoricTaskInstanceQuery()
+ .processInstanceId(procInsId)
+ .finished()
+ .list();
+ //鑾峰彇鎵�鏈夊綋鍓嶄换鍔¤妭鐐逛俊鎭�(鎵╁睍)
+ List<Task> taskList = taskService.createTaskQuery()
+ .processInstanceId(procInsId)
+ .list();
// 淇濆瓨宸茬粡瀹屾垚鐨勬祦绋嬭妭鐐圭紪鍙�
listFinished.forEach(s -> {
FlowViewerDto flowViewerDto = new FlowViewerDto();
flowViewerDto.setKey(s.getActivityId());
flowViewerDto.setCompleted(true);
+ //鎵╁睍鍐呭 宸插畬鎴愮殑鐢ㄥ畬鎴愭椂闂村垽鏂�
+ Date endTime = s.getEndTime();
+ for (HistoricTaskInstance task : taskHistoryList) {
+ 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 +1166,14 @@
FlowViewerDto flowViewerDto = new FlowViewerDto();
flowViewerDto.setKey(s.getActivityId());
flowViewerDto.setCompleted(false);
+ //鎵╁睍鍐呭 浠e姙鐨勯�氳繃褰撳墠鏃堕棿鍘诲垽鏂�
+ for (Task 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