From 96a893bcc673085f7d6fe3bc5ca7dc34e7ca1db2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 12 二月 2025 17:44:25 +0800
Subject: [PATCH] flowable模块中的FlowTaskService及controller移动到business模块,完成任务和驳回任务添加日志
---
business/src/main/java/com/ycl/task/FlowableTask.java | 61 +++++++++++++++++++-----------
1 files changed, 38 insertions(+), 23 deletions(-)
diff --git a/business/src/main/java/com/ycl/task/FlowableTask.java b/business/src/main/java/com/ycl/task/FlowableTask.java
index 190a405..ecc8ed0 100644
--- a/business/src/main/java/com/ycl/task/FlowableTask.java
+++ b/business/src/main/java/com/ycl/task/FlowableTask.java
@@ -67,46 +67,44 @@
String taskId = task.getId();
ProcessCoding processCoding = taskMap.get(taskId);
if (processCoding == null) {
- //涓嶉渶瑕佺洃鎺х殑浠诲姟鑺傜偣鐩存帴鏀逛负缁胯壊
+ //涓嶉渶瑕佺洃鎺х殑浠诲姟鑺傜偣椤圭洰鐮佺洿鎺ユ敼涓虹豢鑹�
List<String> processInsIds = map.get(GREEN);
processInsIds.add(task.getProcessInstanceId());
continue;
}
- //鍒ゆ柇鏄惁瓒呮椂
+ //鍒ゆ柇璧嬬爜缁熶竴鐢ㄧ浣滀负鍗曚綅
Date startTime = startTaskMap.get(processCoding.getStartTaskId());
try {
- Long yellowTime = null;
- Long redTime = null;
- String yellowTimeStr = processCoding.getYellowTime();
- if (StringUtils.isNotBlank(yellowTimeStr)) {
- String[] yellowTimeArr = yellowTimeStr.split("-");
- // 瑙f瀽澶╂暟鍜屽皬鏃舵暟
- int days = Integer.parseInt(yellowTimeArr[0]);
- int hours = Integer.parseInt(yellowTimeArr[1]);
- yellowTime = (days * 24L + hours) * 3600L;
- }
- String redTimeStr = processCoding.getRedTime();
- if (StringUtils.isNotBlank(redTimeStr)) {
- String[] redTimeArr = redTimeStr.split("-");
- // 瑙f瀽澶╂暟鍜屽皬鏃舵暟
- int days = Integer.parseInt(redTimeArr[0]);
- int hours = Integer.parseInt(redTimeArr[1]);
- redTime = (days * 24L + hours) * 3600L;
- }
+ Long redTime = getTime(processCoding.getRedTime());
+ Long yellowTime = getTime(processCoding.getYellowTime());
+ Long overtime = getTime(processCoding.getOvertime());
if (startTime == null) continue;
+ //鑺傜偣澶勭悊鏃堕棿
long durationDay = (now.getTime() - startTime.getTime()) / 1000;
String status = GREEN; // 榛樿鐘舵�佷负缁胯壊
- if (redTime != null && durationDay >= redTime) {
+ if (redTime != null && redTime !=0 && durationDay >= redTime) {
status = RED; // 濡傛灉瓒呰繃绾㈣壊鏃堕棿闃堝�硷紝鍒欑姸鎬佷负绾㈣壊
- } else if (yellowTime != null && durationDay >= yellowTime) {
+ } else if (yellowTime != null && yellowTime !=0 && durationDay >= yellowTime) {
status = YELLOW; // 鍚﹀垯锛屽鏋滆秴杩囬粍鑹叉椂闂撮槇鍊硷紝鍒欑姸鎬佷负榛勮壊
}
+ //澶勭悊鍔炵悊鏈熼檺
+ String overtimeStatus = NORMAL;
+ if (overtime != null && overtime !=0 && durationDay >= overtime) {
+ overtimeStatus = OVERTIME; // 濡傛灉瓒呰繃鍔炵悊鏈熼檺
+ }
+ else if (overtime != null && overtime != 0 && durationDay >= (overtime - 12 * 60 * 60)) {
+ overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
+ }
+// else if (overtime != null && overtime != 0 && durationDay >= (overtime - 60)) {
+// overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
+// }
List<String> processInsIds = map.get(status);
processInsIds.add(task.getProcessInstanceId());
+
processCoding.setStatus(status);
+ processCoding.setOvertimeStatus(overtimeStatus);
list.add(processCoding);
} catch (Exception e) {
- e.printStackTrace();
log.error(e.getMessage(),"璧嬬爜鏃堕棿鏍煎紡鏈夎");
}
}
@@ -118,6 +116,23 @@
log.info("缁撴潫璧嬬爜");
}
+ private Long getTime(String timeStr) {
+ Long time = null;
+ if (StringUtils.isNotBlank(timeStr)) {
+ String[] timeArr = timeStr.split("-");
+ // 瑙f瀽澶╂暟鍜屽皬鏃舵暟
+ int days = Integer.parseInt(timeArr[0]);
+ int hours = 0;
+ if (timeArr.length > 1) {
+ hours = Integer.parseInt(timeArr[1]);
+ }
+ time = (days * 24L + hours) * 3600L;
+// //鍒�-绉�
+// time= (days * 60L) + hours;
+ }
+ return time;
+ }
+
private Map<String, Date> getStartTaskList(List<ProcessCoding> processCodingList) {
//鏌ュ嚭浠诲姟璁℃椂璧峰鑺傜偣闆嗗悎
List<String> startTaskIds = processCodingList.stream().map(ProcessCoding::getStartTaskId).collect(Collectors.toList());
--
Gitblit v1.8.0