From 1519a7c81e6566dd0cbc6acfb1b5e92c3aaba7df Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期日, 02 三月 2025 10:53:57 +0800
Subject: [PATCH] 赋码定时任务只判断超时,且用红码时间判断
---
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 5 +++--
business/src/main/java/com/ycl/task/FlowableTask.java | 45 +++++++++++++++++++++++++++------------------
2 files changed, 30 insertions(+), 20 deletions(-)
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 7fb7052..ed9e5f5 100644
--- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -1191,8 +1191,9 @@
.list();
//鎵╁睍 鑾峰彇杩欎釜娴佺▼瀹炰緥鐨勭洃鎺т俊鎭� key:TaskId value:瀹炰綋绫�
- Map<String, ProcessCoding> processCodingMap = processCodingMapper
- .selectList(new QueryWrapper<ProcessCoding>().eq("process_ins_id", procInsId))
+ Map<String, ProcessCoding> processCodingMap = new LambdaQueryChainWrapper<>(processCodingMapper)
+ .eq(ProcessCoding::getProcessInsId, procInsId)
+ .list()
.stream()
.collect(Collectors.toMap(ProcessCoding::getTaskId, Function.identity()));
// 淇濆瓨宸茬粡瀹屾垚鐨勬祦绋嬭妭鐐圭紪鍙�
diff --git a/business/src/main/java/com/ycl/task/FlowableTask.java b/business/src/main/java/com/ycl/task/FlowableTask.java
index 37bc466..02c1455 100644
--- a/business/src/main/java/com/ycl/task/FlowableTask.java
+++ b/business/src/main/java/com/ycl/task/FlowableTask.java
@@ -1,6 +1,7 @@
package com.ycl.task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.domain.entity.ProcessCoding;
@@ -67,12 +68,17 @@
List<String> taskIds = taskList.stream().map(TaskInfo::getId).collect(Collectors.toList());
//鏌ヨ鑺傜偣鎸傝捣鏃ュ織
- Map<String, List<ProcessLog>> hangupLogMap = processLogService.list(new QueryWrapper<ProcessLog>()
- .in("event_type", Arrays.asList(HANGUP, CANCEL_HANGUP))
- .in("process_ins_id", taskIds)).stream()
+ Map<String, List<ProcessLog>> hangupLogMap = new LambdaQueryChainWrapper<>(processLogMapper)
+ .in(ProcessLog::getEventType, HANGUP, CANCEL_HANGUP)
+ .in(ProcessLog::getProcessInsId, taskIds)
+ .list()
+ .stream()
.collect(Collectors.groupingBy(ProcessLog::getTaskId));
+
//闇�瑕佺洃鎺х殑璧嬬爜浠诲姟
- List<ProcessCoding> processCodingList = processCodingMapper.selectList(new QueryWrapper<ProcessCoding>().in("task_id", taskIds));
+ List<ProcessCoding> processCodingList = new LambdaQueryChainWrapper<>(processCodingMapper)
+ .in(ProcessCoding::getTaskId, taskIds)
+ .list();
Map<String, ProcessCoding> taskMap = new HashMap<>();
Map<String, Date> startTaskMap = new HashMap<>();
if (!CollectionUtils.isEmpty(processCodingList)) {
@@ -97,33 +103,36 @@
map.get(GREEN).add(task.getProcessInstanceId());
continue;
}
- //鍒ゆ柇璧嬬爜缁熶竴鐢ㄧ浣滀负鍗曚綅
+ //鍒ゆ柇璧嬬爜缁熶竴鐢ㄧ浣滀负鍗曚綅锛屼笖鍙渶鐢ㄧ孩鐮佹椂闂村垽鏂秴鏃讹紝閫氳繃瓒呮椂鍘绘敼鍙橀」鐩殑璧嬬爜鐘舵�侊紝鑺傜偣鏈韩鏃犺祴鐮佺姸鎬�
Date startTime = startTaskMap.get(processCoding.getStartTaskId());
try {
Long redTime = getTime(processCoding.getRedTime());
- Long yellowTime = getTime(processCoding.getYellowTime());
- Long overtime = getTime(processCoding.getOvertime());
+// Long yellowTime = getTime(processCoding.getYellowTime());
+// Long overtime = getTime(processCoding.getOvertime());
if (startTime == null) continue;
//鑺傜偣澶勭悊鏃堕棿
long durationTime = (now.getTime() - startTime.getTime()) / 1000;
- //TODO锛氬噺鍘婚」鐩寕璧锋椂闀�
+ //TODO锛氬噺鍘绘祦绋嬫寕璧锋椂闀�
//鍑忓幓鑺傜偣鎸傝捣鏃堕暱
durationTime = subNodeHangupTime(hangupLogMap, task, durationTime);
String status = GREEN; // 榛樿鐘舵�佷负缁胯壊
- if (redTime != null && redTime != 0 && durationTime >= redTime) {
- status = RED; // 濡傛灉瓒呰繃绾㈣壊鏃堕棿闃堝�硷紝鍒欑姸鎬佷负绾㈣壊
- } else if (yellowTime != null && yellowTime != 0 && durationTime >= yellowTime) {
- status = YELLOW; // 鍚﹀垯锛屽鏋滆秴杩囬粍鑹叉椂闂撮槇鍊硷紝鍒欑姸鎬佷负榛勮壊
- }
- //澶勭悊鍔炵悊鏈熼檺
String overtimeStatus = NORMAL;
- if (overtime != null && overtime != 0 && durationTime >= overtime) {
- overtimeStatus = OVERTIME; // 濡傛灉瓒呰繃鍔炵悊鏈熼檺
- } else if (overtime != null && overtime != 0 && durationTime >= (overtime - 12 * 60 * 60)) {
- overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
+ if (redTime != null && redTime != 0 && durationTime >= redTime) {
+ status = RED; // 濡傛灉瓒呰繃绾㈣壊鏃堕棿闃堝�硷紝鍒欒〃鏄庤浠诲姟瓒呮椂
+ overtimeStatus = OVERTIME;
}
+// else if (yellowTime != null && yellowTime != 0 && durationTime >= yellowTime) {
+// status = YELLOW; // 鍚﹀垯锛屽鏋滆秴杩囬粍鑹叉椂闂撮槇鍊硷紝鍒欑姸鎬佷负榛勮壊
+// }
+// //澶勭悊鍔炵悊鏈熼檺
+// String overtimeStatus = NORMAL;
+// if (overtime != null && overtime != 0 && durationTime >= overtime) {
+// overtimeStatus = OVERTIME; // 濡傛灉瓒呰繃鍔炵悊鏈熼檺
+// } else if (overtime != null && overtime != 0 && durationTime >= (overtime - 12 * 60 * 60)) {
+// overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
+// }
// else if (overtime != null && overtime != 0 && durationDay >= (overtime - 60)) {
// overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
// }
--
Gitblit v1.8.0