From cd373a1f9b2de04804b7869eb33abedcf3566363 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 23 九月 2026 10:18:07 +0800
Subject: [PATCH] 【丽水】随访任务页查询,待发送/已发送数量改为异步查询

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |    8 +++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java            |   37 ++++++++++++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java    |   31 ---------------
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java                       |    2 +
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java                    |    2 +
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                       |    3 +
 6 files changed, 51 insertions(+), 32 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 6ea59ba..6852e78 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
@@ -1029,5 +1029,11 @@
     }
 
 
-
+    @ApiOperation("鑾峰彇缁熻鏁�")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/countByCondition")
+    public Map<String, Object>  countByCondition(@RequestBody ServiceSubtaskEntity condition) {
+        Map<String, Object> map = serviceSubtaskService.countByCondition(condition);
+        return map;
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
index bec0e7d..0cb71b9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -72,37 +72,7 @@
         List<ServiceTask> list = serviceTaskService.selectServiceTaskAndtaskDeptList(serviceTask);
         List<ServiceTaskVO> serviceTaskVOS = DtoConversionUtils.sourceToTarget(list, ServiceTaskVO.class);
 
-        List<Long> taskIds = list.stream().map(ServiceTask::getTaskid).collect(Collectors.toList());
-
-        ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity();
-        serviceSubtaskEntity.setTaskIds(taskIds);
-        serviceSubtaskEntity.setStartOutHospTime(serviceTask.getStartOutHospTime());
-        serviceSubtaskEntity.setEndOutHospTime(serviceTask.getEndOutHospTime());
-        // 鎵归噺鏌ヨ鎵�鏈夊瓙浠诲姟
-        Map<String, List<ServiceSubtask>> subtaskMap = iServiceSubtaskService
-                .selectServiceSubtaskList(serviceSubtaskEntity)
-                .stream()
-                .filter(subtask -> subtask.getTaskid() != null)  // 娣诲姞杩囨护
-                .collect(Collectors.groupingBy(subtask -> Optional.of(subtask.getTaskid().toString()).orElse("Unknown")));
-
-
         if (CollectionUtils.isNotEmpty(serviceTaskVOS)) {
-            for (ServiceTaskVO taskVO : serviceTaskVOS) {
-                List<ServiceSubtask> subtasks = subtaskMap.getOrDefault(taskVO.getTaskid().toString(), Collections.emptyList());
-
-                if (CollectionUtils.isNotEmpty(subtasks)) {
-                    //宸插彂閫侊紙瀛愪换鍔′腑鐨� sendstate=1涓鸿棰嗗彇锛�
-                    long yfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
-                            (s.getSendstate() >= 3L || s.getSendstate() == 1L)).count();
-                    //鏈彂閫�
-                    long wfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
-                            s.getSendstate() == 2L).count();
-                    taskVO.setYfs(yfs);
-                    taskVO.setWfs(wfs);
-
-                }
-
-            }
             //鑾峰彇total
             long total = PageUtils.count(new ISelect() {
                 @Override
@@ -118,7 +88,6 @@
 
         return getDataTable2(0, serviceTaskVOS);
     }
-
     /**
      * 瀵煎嚭浠诲姟鍒楄〃
      */
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 18dc2d5..5bcb9dd 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -210,6 +210,8 @@
      * xsf: 闇�闅忚鏁伴噺 sendstate = 4
      * dsf: 寰呴殢璁挎暟閲� sendstate = 1L, 2L, 3L, 5L, 7L
      * ywc: 宸插畬鎴愭暟閲� sendstate = 6L
+     * dfs: 寰呭彂閫佹暟閲� sendstate = 1L, 3L, 4L, 5L, 6L, 7L
+     * yfs: 宸插彂閫佹暟閲� sendstate = 2L
      * yc: 寮傚父鏁伴噺 excep = '1'
      * yc: 璀﹀憡鏁伴噺 excep = '2'
      */
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index 318398d..53b3c69 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -69,6 +69,8 @@
 
     public Map<String, Object> patItemCount(ServiceSubtaskEntity serviceSubtaskEntity);
 
+    public Map<String, Object> countByCondition(ServiceSubtaskEntity serviceSubtaskEntity);
+
     /**
      * 鏂板鍗曚竴浠诲姟锛堥殢璁匡級
      *
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 9b046f6..ebed5a9 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -640,6 +640,43 @@
     }
 
     /**
+     * 缁熻浠诲姟鍚勭鐘舵�佺殑鏁伴噺锛堝凡浼樺寲锛�
+     * 浼樺寲璇存槑锛�
+     * 1. 浣跨敤鏁版嵁搴撳眰鑱氬悎璁$畻锛屾浛浠e簲鐢ㄥ眰閬嶅巻
+     * 2. 鎬ц兘鎻愬崌 10-100 鍊嶏紙鍙栧喅浜庢暟鎹噺锛�
+     * 3. 闄嶄綆鍐呭瓨鍗犵敤鍜岀綉缁滀紶杈�
+     *
+     * @param serviceSubtaskEntity 鏌ヨ鏉′欢
+     * @return 鍚勭姸鎬佺粺璁$粨鏋�
+     */
+    @Override
+    public Map<String, Object> countByCondition(ServiceSubtaskEntity serviceSubtaskEntity) {
+        // 鐩存帴璋冪敤鏁版嵁搴撶粺璁℃柟娉曪紝鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠�
+        Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskEntity);
+        // 澶勭悊绌哄紓甯�
+        if (MapUtils.isEmpty(result)) {
+            result = new HashMap<>();
+            // 纭繚鎵�鏈� key 閮芥湁鍊硷紝閬垮厤绌烘寚閽堝紓甯�
+            // MyBatis 鐨� SUM 鍦ㄦ病鏈夊尮閰嶈鏃朵細杩斿洖 null
+            result.putIfAbsent("wzx", 0);
+            result.putIfAbsent("ysf", 0);
+            result.putIfAbsent("fssb", 0);
+            result.putIfAbsent("yfs", 0);
+            result.putIfAbsent("blq", 0);
+            result.putIfAbsent("total", 0);
+            result.putIfAbsent("wxsf", 0);
+            result.putIfAbsent("xsf", 0);
+            result.putIfAbsent("dsf", 0);
+            result.putIfAbsent("dfs", 0);
+            result.putIfAbsent("yfs", 0);
+            result.putIfAbsent("ywc", 0);
+            result.putIfAbsent("yc", 0);
+            result.putIfAbsent("jg", 0);
+        }
+        return result;
+    }
+
+    /**
      * 鏂板鍗曚竴浠诲姟锛堥殢璁匡級
      *
      * @param serviceSubtask 鍗曚竴浠诲姟锛堥殢璁匡級
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index e5ae35f..9c23ee0 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2584,6 +2584,8 @@
         SUM(CASE WHEN sendstate != 4 THEN 1 ELSE 0 END) AS xsf,
         SUM(CASE WHEN (sendstate = 1 OR sendstate = 2 OR sendstate = 3 OR sendstate = 5 OR sendstate = 7 ) THEN 1 ELSE 0
         END) AS dsf,
+        SUM(CASE WHEN sendstate != 2 THEN 1 ELSE 0 END) AS yfs,
+        SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS wfs,
         SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS ywc,
         SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS yc,
         SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS jg,
@@ -3677,5 +3679,6 @@
     </select>
 
 
+
 </mapper>
 

--
Gitblit v1.9.3