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