From a993043a20a6c9bccb0ab563e2d955b36a801408 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 02 十一月 2026 14:51:57 +0800
Subject: [PATCH] 【丽水】28天数据生成问题处理

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index c3a17ac..6c33995 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -302,8 +302,7 @@
     public AjaxResult querySubtaskList(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
         ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
         serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null);
-        PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize());
-        serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskEntity);
+        // 璇� SQL 宸插唴缃� limit ${pageSize} OFFSET ${pageNum}锛屼笉鍐嶈蛋 PageHelper锛岄伩鍏嶄袱濂楀垎椤靛彔鍔犱骇鐢熶袱涓� LIMIT
         return success(serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskEntity));
     }
 
@@ -317,8 +316,8 @@
     public TableDataInfo querySubtaskListAgain(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
         ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
         serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null);
+        // 璇� SQL 鏈唴缃� limit锛屼娇鐢� PageHelper 鍒嗛〉锛涘彧璋冪敤涓�娆★紝getDataTable 鍙熀浜� Page 鍙栧埌姝g‘ total
         PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize());
-        serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskEntity);
         return getDataTable(serviceSubtaskService.selectServiceSubtaskListAgain(serviceSubtaskEntity));
     }
 
@@ -692,6 +691,10 @@
      * manualInfo - visitCount = 1 && currentPreachForm = "1"
      * voiceInfo - visitCount = 1 && currentPreachForm = "3"
      * smsInfo - visitCount = 1 && currentPreachForm = "4"
+     * manualSuccessInfo - visitCount = 1 && currentPreachForm = "1" && sendstate = 6
+     * voiceSuccessInfo - visitCount = 1 && currentPreachForm = "3" && sendstate = 6
+     * smsSuccessInfo - visitCount = 1 && currentPreachForm = "4" && sendstate = 6
+     * wechatSuccessInfo - visitCount = 1 && currentPreachForm = "5" && sendstate = 6
      * wechatInfo - visitCount = 1 && currentPreachForm = "5"
      * abnormalInfo - visitCount = 1 && excep = "1"
      * needFollowUpAgainInfo - visitCount > 1 && sendstate != 4
@@ -709,6 +712,19 @@
      * taskSituation4Info - taskSituation = 4
      * taskSituation5Info - taskSituation = 5
      * taskSituation6Info - taskSituation = 7
+     * manuallyCalledInfo - isManuallyCalled = 1L
+     * manualCallTimeoutInfo - visitCount = 1 && sendstate = 7 && isManuallyCalled = 0
+     * manualCallTimeoutAgainInfo - visitCount > 1 && sendstate = 7 && isManuallyCalled = 0
+     * pendingFollowUpAllInfo - visitCount = 1 && sendstate in (1,2,3,7)
+     * pendingFollowUpAllAgainInfo - visitCount > 1 && sendstate in (1,2,3,7)
+     * pendingFollowUpWaitSendInfo - visitCount = 1 && sendstate in (1,2)
+     * pendingFollowUpWaitSendAgainInfo - visitCount > 1 && sendstate in (1,2)
+     * pendingFollowUpSentInfo - visitCount = 1 && sendstate in (3,7)
+     * pendingFollowUpSentAgainInfo - visitCount > 1 && sendstate in (3,7)
+     * sentInfo - visitCount = 1 && sendstate = 3
+     * sentAgainInfo - visitCount > 1 && sendstate = 3
+     * firstDischargeCountInfo - visitCount = 1
+     * againFollowUpPushCountInfo - visitCount = 2 && visitDeptCode = sys.smartor.center.dept
      * filterCountList - taskSituation = 6 && sendstate = 4
      *
      */
@@ -781,6 +797,9 @@
             log.error(logInfo);
             return error(logInfo);
         }
+        // 鍒嗙被缁熻涓烘眹鎬荤粨鏋滐紝涓嶅弬涓庡垎椤碉紱鍚屾椂閬垮厤 pageNum/pageSize 褰卞搷鍒嗙粍 key 鐨勬敹闆嗐��
+        serviceSubtaskCountReq.setPageNum(null);
+        serviceSubtaskCountReq.setPageSize(null);
         List<ServiceSubtaskStatistic> serviceSubtaskStatistics = serviceSubtaskService.getSfStatisticsScript(serviceSubtaskCountReq);
         return success(serviceSubtaskStatistics);
     }
@@ -811,8 +830,18 @@
         LoginUser loginUser = getLoginUser();
         String orgid = loginUser.getUser().getOrgid();
         serviceSubtaskCountReq.setOrgid(orgid);
-        PageUtils.startPageByPost(serviceSubtaskCountReq.getPageNum(), serviceSubtaskCountReq.getPageSize());
-        return success(serviceSubtaskService.getSfStatisticsScriptDetails(serviceSubtaskCountReq));
+        //娉ㄦ剰锛氳繖閲屼笉鑳藉啀璋冪敤 PageUtils.startPageByPost銆�
+        //杩斿洖缁撴瀯鏄� Map锛屼笖涓嶄紶 type 鏃朵細鎵ц涓ゆ潯 SQL锛孭ageHelper 鍙綔鐢ㄤ簬绗竴鏉� SQL锛�
+        //鍒嗛〉宸叉斁鍒� Service 閲屾寜棰樼洰锛坰criptid锛夊畬鎴愶紝淇濊瘉 total 鏄鐩�绘暟銆�
+        Map<String, Object> details = serviceSubtaskService.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
+        AjaxResult ajax = success(details.get("data"));
+        //鍏煎鏃у墠绔細data 浠嶇劧鏄� {scriptid: 棰樼洰} 鐨� Map锛�
+        //鍚屾椂鎸� RuoYi 涔犳儻琛ヤ笂 rows/total/pageNum/pageSize 鏂逛究鍓嶇鍒嗛〉
+        ajax.put("rows", details.get("rows"));
+        ajax.put("total", details.get("total"));
+        ajax.put("pageNum", details.get("pageNum"));
+        ajax.put("pageSize", details.get("pageSize"));
+        return ajax;
     }
 
     /**
@@ -832,17 +861,20 @@
     }
 
     /**
-     * 缁熻浠诲姟鍚勭鐘舵�佺殑鏁伴噺锛堜紭鍖栫増锛�
+     * 缁熻浠诲姟鍚勭鐘舵�佺殑鏁伴噺锛堜紭鍖栫増锛�-銆愰殢璁垮伐浣滃彴銆�
      *
+     * @param soonTimeoutHours 鍗冲皢瓒呮椂鏃堕棿锛堝皬鏃讹級锛岄粯璁� 48
      * @return Map<String, Object> 鍖呭惈鍚勭姸鎬佺粺璁℃暟鎹�
      * pendingVisitCount: 褰撳墠鐧诲綍浜烘埅姝粖鏃ュ緟闅忚鎬婚噺
      * failedVisitCount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔″け璐ユ�婚噺
      * abnormalVisitVount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔″紓甯告�婚噺
      * allVisitCount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔℃�婚噺
+     * soonTimeoutCount: 褰撳墠鐧诲綍浜哄嵆灏嗚秴鏃舵暟閲忥紙瓒呮椂鎴鏃堕棿鍦� soonTimeoutHours 灏忔椂鍐咃級
      */
     @ApiOperation("鑾峰彇褰撳墠鐢ㄦ埛闅忚鏁伴噺缁熻")
     @PostMapping("/getCurrentUserServiceSubtaskCount")
-    public Map<String, Object> getCurrentUserServiceSubtaskCount() {
+    public Map<String, Object> getCurrentUserServiceSubtaskCount(
+            @RequestParam(value = "soonTimeoutHours", required = false, defaultValue = "48") Integer soonTimeoutHours) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         if (loginUser == null || loginUser.getUser() == null) {
             return new HashMap<>();
@@ -862,6 +894,7 @@
         entity.setOrgid(sysUser.getOrgid());
         entity.setLeaveldeptcodes(deptCodes);
         entity.setLeavehospitaldistrictcodes(wardCodes);
+        entity.setSoonTimeoutHours(soonTimeoutHours);
         // admin 鏌ョ湅鍏ㄩ櫌锛涢潪 admin 鍙閰嶇疆浜嗙瀹ゆ垨鐥呭尯浠讳竴缁村害鍗冲彲鏌ヨ锛圫QL 涓负 OR 鍏崇郴锛�
         boolean isAdmin = "admin".equals(sysUser.getUserName());
         if (isAdmin || CollectionUtils.isNotEmpty(deptCodes) || CollectionUtils.isNotEmpty(wardCodes)) {
@@ -874,6 +907,7 @@
         empty.put("abnormalVisitCount", 0);
         empty.put("warnningVisitCount", 0);
         empty.put("allVisitCount", 0);
+        empty.put("soonTimeoutCount", 0);
         return empty;
     }
 
@@ -903,6 +937,17 @@
     }
 
     /**
+     * 鎵嬪姩鍙戦�侀棶鍗锋ā鏉跨殑寰俊鍔熻兘
+     *
+     * @param subid
+     * @return
+     */
+    @GetMapping(value = "/weChatSubTask/{subid}")
+    public Map<String, Object> weChatSubTask(@PathVariable("subid") Long subid) {
+        return serviceSubtaskService.weChatSubTask(subid);
+    }
+
+    /**
      * 璺宠浆涓棿椤�
      *
      * @param taskId

--
Gitblit v1.9.3