From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/FlowJobUtil.java |  125 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 125 insertions(+), 0 deletions(-)

diff --git a/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/FlowJobUtil.java b/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/FlowJobUtil.java
new file mode 100644
index 0000000..964f400
--- /dev/null
+++ b/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/FlowJobUtil.java
@@ -0,0 +1,125 @@
+
+package jnpf.flowable.job;
+
+import jnpf.flowable.model.time.FlowTimeModel;
+import jnpf.flowable.util.TimeUtil;
+import jnpf.util.JsonUtil;
+import jnpf.util.RedisUtil;
+import jnpf.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author JNPF寮�鍙戝钩鍙扮粍
+ * @version V3.3.0 flowable
+ * @copyright 寮曡繄淇℃伅鎶�鏈湁闄愬叕鍙�
+ * @date 2022/6/15 17:37
+ */
+@Slf4j
+public class FlowJobUtil {
+
+    private FlowJobUtil() {}
+    /**
+     * 鑷姩瀹℃壒
+     */
+    public static final String OPERATOR_REDIS_KEY = "flowable_operator";
+
+    /**
+     * 鑷姩杞
+     */
+    public static final String OPERATOR_TRANSFER = "flowable_transfer";
+
+    /**
+     * 瓒呮椂
+     */
+    public static final String TIME_REDIS_KEY = "flowable_timeModel";
+
+    /**
+     * 鎻愰啋
+     */
+    public static final String NOTICE_REDIS_KEY = "flowable_notice";
+
+    public static FlowTimeModel getModel(FlowTimeModel model, RedisUtil redisUtil) {
+        String id = model.getOperatorId();
+        String hashValues = redisUtil.getHashValues(Boolean.TRUE.equals(model.getOverTime()) ? TIME_REDIS_KEY : NOTICE_REDIS_KEY, id);
+        return StringUtil.isNotEmpty(hashValues) ? JsonUtil.getJsonToBean(hashValues, FlowTimeModel.class) : null;
+    }
+
+    public static void insertModel(FlowTimeModel model, RedisUtil redisUtil) {
+        String integrateId = model.getOperatorId();
+        redisUtil.insertHash(Boolean.TRUE.equals(model.getOverTime()) ? TIME_REDIS_KEY : NOTICE_REDIS_KEY, integrateId, JsonUtil.getObjectToString(model));
+    }
+
+    public static void removeModel(FlowTimeModel model, RedisUtil redisUtil) {
+        redisUtil.removeHash(Boolean.TRUE.equals(model.getOverTime()) ? TIME_REDIS_KEY : NOTICE_REDIS_KEY, model.getOperatorId());
+    }
+
+    //-----------------------瀹℃壒------------------------------
+
+    public static void insertOperator(FlowTimeModel model, RedisUtil redisUtil) {
+        redisUtil.insertHash(OPERATOR_REDIS_KEY, model.getOperatorId(), JsonUtil.getObjectToString(model));
+    }
+
+    public static List<FlowTimeModel> getOperator(RedisUtil redisUtil) {
+        List<FlowTimeModel> list = new ArrayList<>();
+        List<String> hashValues = redisUtil.getHashValues(OPERATOR_REDIS_KEY);
+        if (!hashValues.isEmpty()) {
+            for (String hashValue : hashValues) {
+                FlowTimeModel integrateModel = StringUtil.isNotEmpty(hashValue) ? JsonUtil.getJsonToBean(hashValue, FlowTimeModel.class) : null;
+                list.add(integrateModel);
+            }
+        }
+        return list;
+    }
+
+    //-----------------------杞------------------------------
+
+    public static void removeTransfer(FlowTimeModel model, RedisUtil redisUtil) {
+        redisUtil.removeHash(OPERATOR_TRANSFER, model.getOperatorId());
+    }
+
+    public static void insertTransfer(FlowTimeModel model, RedisUtil redisUtil) {
+        redisUtil.insertHash(OPERATOR_TRANSFER, model.getOperatorId(), JsonUtil.getObjectToString(model));
+    }
+
+    public static List<FlowTimeModel> getTransfer(RedisUtil redisUtil) {
+        List<FlowTimeModel> list = new ArrayList<>();
+        List<String> hashValues = redisUtil.getHashValues(OPERATOR_TRANSFER);
+        if (!hashValues.isEmpty()) {
+            for (String hashValue : hashValues) {
+                FlowTimeModel integrateModel = StringUtil.isNotEmpty(hashValue) ? JsonUtil.getJsonToBean(hashValue, FlowTimeModel.class) : null;
+                list.add(integrateModel);
+            }
+        }
+        return list;
+    }
+
+
+    //-----------------------鍒犻櫎------------------------------
+
+    public static void deleteByOperatorId(String operatorId, RedisUtil redisUtil) {
+        FlowTimeModel timeModel = new FlowTimeModel();
+        timeModel.setOperatorId(operatorId);
+        FlowTimeModel flowTimeModel = getModel(timeModel, redisUtil);
+        if (null != flowTimeModel) {
+            TimeUtil.deleteJob(flowTimeModel.getId());
+            remove(flowTimeModel, redisUtil);
+        }
+        timeModel.setOverTime(true);
+        FlowTimeModel overTimeModel = getModel(timeModel, redisUtil);
+        if (null != overTimeModel) {
+            TimeUtil.deleteJob(overTimeModel.getId());
+            remove(overTimeModel, redisUtil);
+        }
+    }
+
+    public static void remove(FlowTimeModel model, RedisUtil redisUtil) {
+        redisUtil.removeHash(OPERATOR_TRANSFER, model.getOperatorId());
+        redisUtil.removeHash(OPERATOR_REDIS_KEY, model.getOperatorId());
+        redisUtil.removeHash(TIME_REDIS_KEY, model.getOperatorId());
+        redisUtil.removeHash(NOTICE_REDIS_KEY, model.getOperatorId());
+    }
+}

--
Gitblit v1.8.0