From 83c49918bb3709fce818fcdeb8c1db147eadcede Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 16 七月 2026 16:44:15 +0800
Subject: [PATCH] Merge branch 'master' into master-任务组

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                    |   20 ++++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java   |   35 ++++++++++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java |   54 +++++++++++++++++-
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml              |    6 +-
 smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java               |   16 ++++
 5 files changed, 117 insertions(+), 14 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index 9786459..8704753 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -3,6 +3,7 @@
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.enums.PhotoEnum;
 import com.ruoyi.common.enums.RadioEnum;
 import com.ruoyi.common.enums.VadioEnum;
@@ -38,9 +39,7 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import java.io.*;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
+import java.util.*;
 
 /**
  * 閫氱敤璇锋眰澶勭悊
@@ -58,6 +57,9 @@
 
     @Autowired
     private SysConfigMapper sysConfigMapper;
+
+    @Autowired
+    private RedisCache redisCache;
 
     private static final String FILE_DELIMETER = ",";
 
@@ -350,6 +352,52 @@
         String fileName = filePath.toLowerCase();
         return fileName.endsWith(".doc") || fileName.endsWith(".docx");
     }
+
+    /**
+     * @param
+     * @return
+     */
+    @ApiOperation("鑾峰彇RedisCache")
+    @PostMapping("/getRedisCache")
+    public String getRedisCache(@RequestBody String key) {
+        String object = redisCache.getCacheObject(key);
+        return object;
+    }
+
+    /**
+     * @param
+     * @return
+     */
+    @ApiOperation("鏌ヨRedisCache")
+    @PostMapping("/findRedisCacheList")
+    public Set<String> findRedisCacheList(@RequestBody String key) {
+        Set<String> allKeys =  redisCache.getAllKeys();
+        Set<String> matchKeys = new HashSet<>();
+        for (String redisKey : allKeys) {
+            if(redisKey.contains(key)) {
+                matchKeys.add(redisKey);
+            }
+        }
+        return matchKeys;
+    }
+
+    /**
+     * @param
+     * @return
+     */
+    @ApiOperation("鍒犻櫎RedisCache")
+    @PostMapping("/deleteRedisCache")
+    public Set<String> deleteRedisCache(@RequestBody String key) {
+        Set<String> allKeys =  redisCache.getAllKeys();
+        Set<String> matchKeys = new HashSet<>();
+        for (String redisKey : allKeys) {
+            if(redisKey.contains(key)) {
+                redisCache.deleteObject(redisKey);
+                matchKeys.add(redisKey);
+            }
+        }
+        return matchKeys;
+    }
 }
 
 
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index f31c02d..6b8666f 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1094,8 +1094,26 @@
             if (dateToday) {
                 try {
                     String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                    String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
                     String url = null;
-                    url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
+                    url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId +
+                            "&param2=" +  patid +
+                            "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) +
+                            "&param5=false" +
+                            "$param6=" + subId;
+
+                    ServiceOutPath serviceOutPath = new ServiceOutPath();
+                    serviceOutPath.setParam1(taskId);
+                    serviceOutPath.setParam2(patid);
+                    serviceOutPath.setParam3(ivrTask1.getTaskName());
+                    serviceOutPath.setParam6(subId);
+                    serviceOutPath.setCreateTime(new Date());
+                    serviceOutPath.setOrgid(serviceSubtask.getOrgid());
+                    iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                    String format = String.format("%03X", serviceOutPath.getId());
+                    serviceOutPath.setRadix(format);
+                    serviceOutPath.setUpdateTime(new Date());
+                    iServiceOutPathService.updateServiceOutPath(serviceOutPath);
 
                     //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
                     List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
diff --git a/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
index c398c38..405e3a0 100644
--- a/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
+++ b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
@@ -41,11 +41,23 @@
     @ApiModelProperty(value = "鏈烘瀯ID")
     private String orgid;
 
-    @ApiModelProperty("鍙戦�佺姸鎬�")
-    private String sendstate;
+    /**
+     * 鍙戦�佺姸鎬�
+     */
+    @Excel(name = " 鍙戦�佺姸鎬� ")
+    @ApiModelProperty(value = "鍙戦�佺姸鎬� 1 琚鍙�(鍦ㄤ换鍔′腑鏄柊寤猴紝鍦ㄦ湇鍔′腑鏄棰嗗彇)  2 寰呭彂閫�  3 宸插彂閫�  4 涓嶆墽琛�  5 鍙戦�佸け璐� 6 宸插畬鎴� 7 瓒呮椂(浜哄伐)")
+    private Long sendstate;
 
     @ApiModelProperty("瀹屾垚鐘舵�侊紙0鏈畬鎴� 1宸插畬鎴� 瀵瑰簲finishtime鏄惁鏈夊�硷級")
     private String isFinished;
+    /**
+     * 瓒呴摼鎺ョ粺璁″垪琛ㄧ被鍨� - 瀹f暀瓒呴摼鎺ョ粺璁�
+     * totalCountInfo - 瀹f暀鍙戦�佹�婚噺
+     * sendSuccessCountInfo - 鍙戦�佹垚鍔熼噺 sendstate = 6
+     * readCountInfo - 宸茶閲� finishtime 锛�= null
+     */
+    @ApiModelProperty("瓒呴摼鎺ョ粺璁″垪琛ㄧ被鍨�")
+    private String hyperLinkInfoType;
 
     /**
      * pageNum
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index ccdf832..e1e7b6c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2938,15 +2938,15 @@
                 //棣栨鍑洪櫌闅忚
                 if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
                     //棣栨搴旈殢璁�
-                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L)) {
                         serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
                     }
                     //棣栨鏃犻渶闅忚
-                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(4L)) {
                         serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
                     }
                     //棣栨闅忚澶辫触(鍖呮嫭闅忚澶辫触+浜哄伐瓒呮椂)
-                    if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
+                    if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(5L) || serviceSubtask.getSendstate().equals(7L))) {
                         serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
                     }
                     /**
@@ -2959,7 +2959,7 @@
                         }
                         //棣栨鏃犻渶闅忚
                         if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
-                            serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+                            serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
                         }
                         //棣栨闅忚浜哄伐 (涓嶇粺璁′笉鎵ц)
                         if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
@@ -2982,6 +2982,10 @@
                         if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L))) {
                             serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
                         }
+                        //棣栨鏃犻渶闅忚
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+                            serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
+                        }
                         //棣栨闅忚浜哄伐 (鍙粺璁″凡瀹屾垚)
                         if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(6L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                             serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
@@ -3002,6 +3006,10 @@
                         //棣栨闅忚鎴愬姛 - 缁熻鏃跺�欏姞涓婁笉鎵ц鐨勶紝宸插彂閫佺殑
                         if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
                             serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+                        }
+                        //棣栨鏃犻渶闅忚
+                        if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+                            serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
                         }
                         //棣栨闅忚浜哄伐 (缁熻涓嶆墽琛�)
                         if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
@@ -3191,7 +3199,7 @@
                     serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
                 }
                 //棣栨鏃犻渶闅忚
-                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+                if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
                     serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
                 }
                 //棣栨寰呴殢璁�
@@ -4603,6 +4611,23 @@
 
     @Override
     public List<ServiceSubtask> gethelibraryCountHyperlink(HeLibraryCountVO heLibraryCountVO){
+        String hyperLinkInfoType = heLibraryCountVO.getHyperLinkInfoType();
+        if(StringUtils.isNotEmpty(hyperLinkInfoType)){
+            heLibraryCountVO.setSendstate(null);
+            heLibraryCountVO.setIsFinished(null);
+            switch (hyperLinkInfoType) {
+                case "totalCountInfo":
+                    break;
+                case "sendSuccessCountInfo":
+                    heLibraryCountVO.setSendstate(6L);
+                    break;
+                case "readCountInfo":
+                    heLibraryCountVO.setIsFinished("1");
+                    break;
+                default:
+                    break;
+            }
+        }
         List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.gethelibraryCountHyperlink(heLibraryCountVO);
         return serviceSubtasks;
     }
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 6982d8f..32ead8b 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2898,7 +2898,7 @@
         <if test="sendstate != null">
             AND sendstate = #{sendstate}
         </if>
-        <if test="isFinished != null and isFinished != '0'">
+        <if test="isFinished != null and isFinished == '1'">
             AND finishtime is not null
         </if>
         <if test="starttime != null">AND starttime &gt;= #{starttime}</if>
@@ -2994,10 +2994,10 @@
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
         </if>
-        <if test="sendstate != null and isFinished != '0'">
+        <if test="sendstate != null">
             AND sendstate = #{sendstate}
         </if>
-        <if test="isFinished != null">
+        <if test="isFinished != null and isFinished == '1'">
             AND finishtime is not null
         </if>
         <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">

--
Gitblit v1.9.3