From ca7685886ae8a4a4bb6717d48a1c48cf3934faf3 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 21 十一月 2025 22:20:25 +0800
Subject: [PATCH] oa调整

---
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java        |    6 -
 ruoyi-admin-ztns/src/main/resources/application-ztns.yml                              |   20 ++++++
 ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java                         |    2 
 cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java |   48 +++++++++++++---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtil.java                      |   10 +++
 cnas-device/src/main/java/com/ruoyi/device/pojo/CollectBridge.java                    |    6 +
 cnas-device/src/main/java/com/ruoyi/device/constant/ElongationMqttConstants.java      |    1 
 cnas-device/src/main/java/com/ruoyi/device/service/CollectBridgeService.java          |    4 
 cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java                       |   12 +++
 ruoyi-admin-ztns/src/main/resources/application-druid.yml                             |   27 +++++++-
 cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java                 |   44 ++++++++++++++
 11 files changed, 153 insertions(+), 27 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/constant/ElongationMqttConstants.java b/cnas-device/src/main/java/com/ruoyi/device/constant/ElongationMqttConstants.java
index 1d8026c..c8ec83e 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/constant/ElongationMqttConstants.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/constant/ElongationMqttConstants.java
@@ -5,6 +5,7 @@
  */
 public class ElongationMqttConstants {
     public final static String  NSTSSC_TSSC_SCL = "NSTSSC.TSSC.SCL";
+    public final static String  NSTSSC1_TSSC_SCL = "NSTSSC1.TSSC.SCL";
 
     public final static String  NSTSSC_TSSC_LSSDSD = "NSTSSC.TSSC.LSSDSD";
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java b/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
index 1b7d540..5ff8c3e 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
@@ -72,11 +72,19 @@
             switch (topic){
                 case "/ztt/v3/2455220/publish":
                     //鑰愪笣锛氱洿娴佺數闃绘暟鎹В鏋怤S-ER02001
-                    mqCallback.collectBridgeService.dcResistanceDataAnalysis(parse);
+                    mqCallback.collectBridgeService.dcResistanceDataAnalysis(parse,"NS-ER02001");
                     break;
+//                case "/aiot/8fac9fa0-c517-11f0-954c-255ce11213f1":
+//                    //鑰愪笣锛氱洿娴佺數闃绘暟鎹В鏋怤S-ER02002
+//                    mqCallback.collectBridgeService.dcResistanceDataAnalysis(parse,"NS-ER02002");
+//                    break;
                 case "/ztt/v3/2455221/publish":
                     //鑰愪笣锛氫几闀跨巼鏁版嵁瑙f瀽NS-FM05003
-                    mqCallback.collectBridgeService.elongationDataAnalysis(parse);
+                    mqCallback.collectBridgeService.elongationDataAnalysis(parse,"NS-FM05003");
+//                    break;
+//                case "/aiot/38568140-c697-11f0-8b13-c14e8310d70b":
+//                    //鑰愪笣锛氫几闀跨巼鏁版嵁瑙f瀽NS-FM05002
+//                    mqCallback.collectBridgeService.elongationDataAnalysis(parse,"NS-FM05002");
                     break;
             }
         } catch (Exception e) {
diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/CollectBridge.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/CollectBridge.java
index 8d65fc2..0e672b4 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/pojo/CollectBridge.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/CollectBridge.java
@@ -27,6 +27,9 @@
     @ApiModelProperty("濮旀墭缂栧彿")
     private String entrustCode;
 
+    @ApiModelProperty("璁惧缂栧彿")
+    private String deviceCode;
+
     @ApiModelProperty("閲囬泦鍊�")
     private BigDecimal collectValue;
 
@@ -39,8 +42,9 @@
     @ApiModelProperty("鏈�鍚庝竴娆¢噰闆嗘椂闂�")
     private LocalDateTime lastCollectDate;
 
-    public CollectBridge(String entrustCode, BigDecimal collectValue, Double collectTemperature, LocalDateTime firstCollectDate, LocalDateTime lastCollectDate) {
+    public CollectBridge(String entrustCode,String deviceCode, BigDecimal collectValue, Double collectTemperature, LocalDateTime firstCollectDate, LocalDateTime lastCollectDate) {
         this.entrustCode = entrustCode;
+        this.deviceCode = deviceCode;
         this.collectValue = collectValue;
         this.collectTemperature = collectTemperature;
         this.firstCollectDate = firstCollectDate;
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/CollectBridgeService.java b/cnas-device/src/main/java/com/ruoyi/device/service/CollectBridgeService.java
index 4e9faf5..3b1846d 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/CollectBridgeService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/CollectBridgeService.java
@@ -18,8 +18,8 @@
      */
     void addBridgeValue(JSONObject jsonObject);
 
-    void dcResistanceDataAnalysis(String jsonStr);
+    void dcResistanceDataAnalysis(String jsonStr,String deviceCode);
 
-    void elongationDataAnalysis(String jsonStr);
+    void elongationDataAnalysis(String jsonStr,String deviceCode);
 }
 
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
index 5968267..6c7ac21 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java
@@ -17,13 +17,12 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.Duration;
-import java.time.Instant;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -113,7 +112,8 @@
     }
 
     @Override
-    public void dcResistanceDataAnalysis(String jsonStr) {
+    @Transactional(rollbackFor = Exception.class)
+    public void dcResistanceDataAnalysis(String jsonStr,String deviceCode) {
         Map<String, Object> dataMap = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){}.getType());
         if(CollectionUtil.isNotEmpty(dataMap) && Objects.nonNull(dataMap.get("data"))){
             List<DeviceMqttVO> dataList = JSONArray.parseObject(dataMap.get("data").toString(), new TypeReference<List<DeviceMqttVO>>(){}.getType());
@@ -131,20 +131,23 @@
                         .set(CollectBridge::getCollectValue,value)
                         .set(CollectBridge::getCollectTemperature,tempValue)
                         .set(CollectBridge::getLastCollectDate,LocalDateTime.now())
+                        .eq(CollectBridge::getDeviceCode,deviceCode)
                         .eq(CollectBridge::getEntrustCode,entrustCode));
             }else{
-                collectBridgeMapper.insert(new CollectBridge(entrustCode,value,tempValue,LocalDateTime.now(),LocalDateTime.now()));
+                collectBridgeMapper.insert(new CollectBridge(entrustCode,deviceCode,value,tempValue,LocalDateTime.now(),LocalDateTime.now()));
             }
         }
     }
 
     @Override
-    public void elongationDataAnalysis(String jsonStr) {
+    public void elongationDataAnalysis(String jsonStr,String deviceCode) {
         Map<String, Object> dataMap = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){}.getType());
         if(CollectionUtil.isNotEmpty(dataMap) && Objects.nonNull(dataMap.get("data"))){
             List<DeviceMqttVO> dataList = JSONArray.parseObject(dataMap.get("data").toString(), new TypeReference<List<DeviceMqttVO>>(){}.getType());
             // 浼搁暱鐜囷細澶勭悊 NSTSSC.TSSC.SCL 鏁版嵁
-            processMultipleValueDataStream(dataList, ElongationMqttConstants.NSTSSC_TSSC_SCL,3,10.0);
+            processMultipleValueDataStream(dataList, ElongationMqttConstants.NSTSSC_TSSC_SCL,3,10.0,deviceCode);
+        }else{
+            processMultipleValueDataStream(dataMap, ElongationMqttConstants.NSTSSC1_TSSC_SCL,3,10.0,deviceCode);
         }
     }
 
@@ -171,11 +174,11 @@
      * @param dataStream 鏁版嵁娴佹爣璇�
      * @param maxSize 淇濆瓨鐨勬渶澶т釜鏁�
      * @param minVal 瀛樺偍鏁版嵁鐨勬渶灏忓�硷紝浣庝簬璇ュ�煎垯璺宠繃锛�-1浠h〃涓嶉檺鍒�
+     * @param deviceCode 璁惧缂栧彿
      */
-    private void processMultipleValueDataStream(List<DeviceMqttVO> dataList, String dataStream,int maxSize,Double minVal){
+    private void processMultipleValueDataStream(List<DeviceMqttVO> dataList, String dataStream,int maxSize,Double minVal,String deviceCode){
         // 绛涢�夊嚭褰撳墠鏁版嵁娴佸搴旂殑鏁版嵁
         Double value = Double.parseDouble(getValueByDataStream(dataList, dataStream));
-//        Double value = BigDecimal.valueOf(Math.random()*100).setScale(7, RoundingMode.HALF_EVEN).doubleValue();
         //濡傛灉鏈�灏忓�间笉涓虹┖涓斾笉涓�-1锛岃幏鍙栧埌鐨勫�煎皬浜庢渶灏忓�煎垯璺宠繃涓嶅仛澶勭悊
         if(Objects.nonNull(minVal)&&minVal!=-1&&value<minVal){
             return;
@@ -189,7 +192,34 @@
                 RedisUtil.delZSetRange(dataStream,0,0);
             }
         }
-        RedisUtil.addZSet(dataStream,System.currentTimeMillis(),value);
+        RedisUtil.addZSet(dataStream+"."+deviceCode,System.currentTimeMillis(),value);
+    }
+
+    /**
+     * 澶勭悊闇�瑕佷繚瀛樺涓�肩殑鏁版嵁娴侊紝骞朵繚瀛樺埌 Redis
+     * @param dataMap 鏁版嵁鍒楄〃
+     * @param dataStream 鏁版嵁娴佹爣璇�
+     * @param maxSize 淇濆瓨鐨勬渶澶т釜鏁�
+     * @param minVal 瀛樺偍鏁版嵁鐨勬渶灏忓�硷紝浣庝簬璇ュ�煎垯璺宠繃锛�-1浠h〃涓嶉檺鍒�
+     * @param deviceCode 璁惧缂栧彿
+     */
+    private void processMultipleValueDataStream(Map<String,Object> dataMap, String dataStream,int maxSize,Double minVal,String deviceCode){
+        // 绛涢�夊嚭褰撳墠鏁版嵁娴佸搴旂殑鏁版嵁
+        Double value = Double.parseDouble(dataMap.get(dataStream).toString());
+        //濡傛灉鏈�灏忓�间笉涓虹┖涓斾笉涓�-1锛岃幏鍙栧埌鐨勫�煎皬浜庢渶灏忓�煎垯璺宠繃涓嶅仛澶勭悊
+        if(Objects.nonNull(minVal)&&minVal!=-1&&value<minVal){
+            return;
+        }
+        //鍒ゆ柇key鏄惁瀛樺湪
+        boolean existKey = RedisUtil.hasKey(dataStream);
+        if(existKey){
+            long zSetSize = RedisUtil.getZSetSize(dataStream);
+            //濡傛灉鏁版嵁闀垮害瓒呰繃鏈�澶т釜鏁帮紝鍒欏垹闄ゅ垎鏁版渶浣庣殑鏁版嵁
+            if(zSetSize>=maxSize){
+                RedisUtil.delZSetRange(dataStream,0,0);
+            }
+        }
+        RedisUtil.addZSet(dataStream+"."+deviceCode,System.currentTimeMillis(),value);
     }
 
     /**
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
index 69a54bf..3b67be8 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -276,10 +276,6 @@
                 String dbPassword = StringUtils.isNotBlank(dto.getDbPassword())?dto.getDbPassword():"";
                 String dbTable = StringUtils.isNotBlank(dto.getDbTable())?dto.getDbTable():"";
                 map.putAll(DataAcquisition.dataAcquisitionEntrance(list, device, dto.getEntrustCode(), dto.getLotBatchNo(),dto.getLotBatchNo(), ip, insProducts.get(0).getCableTag(),dbUserName,dbPassword,dbTable));
-                if(StringUtils.equals(".mysql",device.getFileType())){
-
-                }else{
-                }
             }
         }
 
@@ -327,7 +323,7 @@
                     list.add(2,collectBridge.getCollectValue());//瀹為檯鐢甸樆鍊�
                 }else {
                     // 浠� Redis 涓幏鍙栧垪琛ㄦ暟鎹�
-                    Set<Object> objectList = RedisUtil.getZSetRange(refery, 0, -1);
+                    Set<Object> objectList = RedisUtil.getZSetRange(refery, 0, -1,"DESC");
                     list.addAll(objectList);
                 }
                 numberOfDataEntries.getAndIncrement();
diff --git a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
index 622525b..05308ae 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
@@ -128,11 +128,12 @@
                 case ".docx":
                     map = analysisString(data, userMap, device, entrustCode, sampleCode);
                     break;
+                case ".xls":
                 case ".xlsx":
                     map = analysisList(data, userMap, device, entrustCode, sampleCode);
                     break;
-                case ".xls":
-                    map = analysisTxt(data, userMap, device, entrustCode, sampleCode);
+                case ".pngInExcel":
+                    map = analysisPngInExcel(data, userMap, device, entrustCode, sampleCode);
                     break;
                 case ".txt":
                     map = analysisTxt(data, userMap, device, entrustCode, sampleCode);
@@ -571,6 +572,45 @@
     }
 
     /**
+     * 瑙f瀽excel涓瘑鍒埌鐨勫浘鐗囧唴瀹�
+     *
+     * @param data       閲囬泦鍒扮殑鏂囦欢瀛楃涓�
+     * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
+     * @return
+     */
+    private static Map<String, Object> analysisPngInExcel(String data, Map<String, List<DataConfig>> dataConfig,
+                                                   Device device, String entrustCode, String sampleCode) {
+        Map<String, Object> map = new HashMap<>();
+        //澶勭悊data
+        Map<String,List<Object>> dataMap = new HashMap<>();
+        String[] rows = data.split("\n");
+        String[] headRow = rows[0].split(" ");//鑾峰彇琛ㄥご鍒楄〃
+        for (int i = 0; i < headRow.length; i++) {
+            //鏁版嵁鏈�澶氫簲鏉�
+            List<Object> vals = new ArrayList<>();
+            for (int j = 1; j <= 5; j++) {
+                String[] cols = rows[j].split(" ");
+                vals.add(cols[i]);
+            }
+            dataMap.put(headRow[i],vals);
+        }
+        dataConfig.forEach((k, v) -> {
+            List<Object> list = new ArrayList<>();
+            v.stream().sorted(Comparator.comparing(DataConfig::getX)).forEach(config->{
+                for (Map.Entry<String, List<Object>> entry : dataMap.entrySet()) {
+                    if(entry.getKey().contains(config.getReferx())){
+                        list.addAll(entry.getValue());
+                    }
+                }
+            });
+            // 杩涜鍏紡璁$畻
+            Object resultValue = calculationFormula(list, v.get(0), k, device);
+            map.put(k, resultValue);
+        });
+        return map;
+    }
+
+    /**
      * @param data       閲囬泦鍒扮殑鏂囦欢瀛楃涓�
      * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗�
      * @return
diff --git a/ruoyi-admin-ztns/src/main/resources/application-druid.yml b/ruoyi-admin-ztns/src/main/resources/application-druid.yml
index e4dd6da..352bfed 100644
--- a/ruoyi-admin-ztns/src/main/resources/application-druid.yml
+++ b/ruoyi-admin-ztns/src/main/resources/application-druid.yml
@@ -78,7 +78,7 @@
     lettuce:
       pool:
         # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
-        min-idle: 0
+        min-idle: 2
         # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
         max-idle: 8
         # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
@@ -177,7 +177,7 @@
     completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
     clientId: ztns01a # clientId
     subscribe: /ztt/v3/2455220/publish # 璁㈤槄涓婚
-    client: true # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
+    client: false # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
   - url: tcp://mqtt-ztt.zttiot.com:1883 # 鏈嶅姟鍣╥p
     username: 2455221 # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
     password: 108295 # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
@@ -187,5 +187,24 @@
     completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
     clientId: ztns02b # clientId
     subscribe: /ztt/v3/2455221/publish # 璁㈤槄涓婚
-    client: true # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
-
+    client: false # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
+  - url: tcp://mqtt.ztt.cn:1883 # 鏈嶅姟鍣╥p
+    username: admin # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
+    password: public # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
+    timeout: 100 # 瓒呮椂鏃堕棿 锛堝崟浣嶏細绉掞級
+    keepalive: 60 # 蹇冭烦 锛堝崟浣嶏細绉掞級
+    qos: 1 # 蹇冭烦鍖呯骇鍒�
+    completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
+    clientId: ztns_gc_scl_108303 # clientId,杩囩▼璇曢獙瀹や几闀跨巼璁惧
+    subscribe: /aiot/38568140-c697-11f0-8b13-c14e8310d70b # 璁㈤槄涓婚
+    client: false # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
+  - url: tcp://mqtt.ztt.cn.com:1883 # 鏈嶅姟鍣╥p
+    username: admin # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
+    password: public # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
+    timeout: 100 # 瓒呮椂鏃堕棿 锛堝崟浣嶏細绉掞級
+    keepalive: 60 # 蹇冭烦 锛堝崟浣嶏細绉掞級
+    qos: 1 # 蹇冭烦鍖呯骇鍒�
+    completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
+    clientId: ztns_gc_dz_108301 # clientId
+    subscribe: /aiot/8fac9fa0-c517-11f0-954c-255ce11213f1 # 璁㈤槄涓婚
+    client: false # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
diff --git a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
index 2f44f7a..37009d6 100644
--- a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
+++ b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
@@ -189,3 +189,23 @@
     clientId: ztns02 # clientId
     subscribe: /ztt/v3/2455221/publish # 璁㈤槄涓婚
     client: true # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
+#  - url: tcp://mqtt.ztt.cn:1883 # 鏈嶅姟鍣╥p
+#    username: admin # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
+#    password: public # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
+#    timeout: 100 # 瓒呮椂鏃堕棿 锛堝崟浣嶏細绉掞級
+#    keepalive: 60 # 蹇冭烦 锛堝崟浣嶏細绉掞級
+#    qos: 1 # 蹇冭烦鍖呯骇鍒�
+#    completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
+#    clientId: ztns_gc_scl_108303 # clientId,杩囩▼璇曢獙瀹や几闀跨巼璁惧
+#    subscribe: /aiot/38568140-c697-11f0-8b13-c14e8310d70b # 璁㈤槄涓婚
+#    client: true # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
+#  - url: tcp://mqtt.ztt.cn.com:1883 # 鏈嶅姟鍣╥p
+#    username: admin # MQTT-鏈嶅姟绔�-鐢ㄦ埛鍚�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍鍚�
+#    password: public # MQTT-鏈嶅姟绔�-瀵嗙爜锛�,鍚庢湡浼氫慨鏀逛负鐢ㄦ埛鐧诲綍瀵嗙爜
+#    timeout: 100 # 瓒呮椂鏃堕棿 锛堝崟浣嶏細绉掞級
+#    keepalive: 60 # 蹇冭烦 锛堝崟浣嶏細绉掞級
+#    qos: 1 # 蹇冭烦鍖呯骇鍒�
+#    completion-timeout: 3000 # 杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶏細绉掞級
+#    clientId: ztns_gc_dz_108301 # clientId
+#    subscribe: /aiot/8fac9fa0-c517-11f0-954c-255ce11213f1 # 璁㈤槄涓婚
+#    client: true # 濡傛灉寮�鍙戦渶瑕佸惎鍔ㄦ祴璇曪紝闇�瑕佹敼涓篺alse涓嶇劧浼氫竴鐩存姤閿�
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java b/ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java
index fd90aba..a336781 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java
@@ -51,7 +51,7 @@
         wri.setRequestName(requestName);
         //todo: oa鎻愪氦 1: 鐩存帴鍙戦�佹祦绋�, 0:瀛樺叆鑽夌绠�
 //        wri.setIsnextflow("1");
-        wri.setIsnextflow("0");
+//        wri.setIsnextflow("0");
         //鍒涘缓涓昏〃
         OAWorkflowTable wmi = oaService.createOAMainWorkflowTable(mainFields);
         // 灏嗕富琛ㄤ俊鎭~鍏呭埌娴佺▼淇℃伅閲�
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtil.java
index 069773e..2d4f328 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtil.java
@@ -679,10 +679,14 @@
      * @param key   閿�
      * @param start 寮�濮嬬储寮�
      * @param end   缁撴潫绱㈠紩
+     * @param sort   椤哄簭鎴栧�掑簭
      * @return
      */
-    public static Set<Object> getZSetRange(String key,long start,long end){
+    public static Set<Object> getZSetRange(String key,long start,long end,String sort){
         try {
+            if(StringUtils.equals("DESC",sort)){
+                return redisTemplate.opsForZSet().reverseRange(key,start,end);
+            }
             return redisTemplate.opsForZSet().range(key,start,end);
         }catch(Exception e){
             e.printStackTrace();
@@ -690,5 +694,9 @@
         }
     }
 
+    public static Set<Object> getZSetRange(String key,long start,long end){
+        return getZSetRange(key,start,end,"ASC");
+    }
+
 }
 

--
Gitblit v1.9.3