From 275cc504242a476b88892395f020be15f7b75d0c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 22 十二月 2025 14:59:32 +0800
Subject: [PATCH] Merge branch 'master-001'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 20 +--
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 88 +++++++++++-----
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 16 +++
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 148 +++++++++++++++++++++++++++++
4 files changed, 230 insertions(+), 42 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 217a96a..b274e73 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
@@ -100,16 +100,9 @@
if (ObjectUtils.isNotEmpty(serviceTask)) serviceSubtask.setPreachform(serviceTask.getPreachform());
}
- /**
- * 浠g爜浼樺寲 鍒嗙缁熻
- Map<String, Object> map = new HashMap<>();
- map.put("serviceSubtaskList", serviceSubtaskList);
- List<Map<String, Object>> list = new ArrayList<>();
- list.add(map);
- **/
- //Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
- //patItemCount 璋冪敤redisCache璁板綍缁熻鏁版嵁
- Map<String, Object> map = patItemCount(serviceSubtaskVO);
+// patItemCount 璋冪敤redisCache璁板綍缁熻鏁版嵁
+// Map<String, Object> map = patItemCount(serviceSubtaskVO);
+ Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
map.put("serviceSubtaskList", serviceSubtaskList);
List<Map<String, Object>> list = new ArrayList<>();
list.add(map);
@@ -126,7 +119,7 @@
}
/**
- * 缁熻闅忚鏁版嵁
+ * 缁熻闅忚鏁版嵁 -- cache鐗�
*/
@ApiOperation("缁熻闅忚鏁版嵁")
@PostMapping("/patItemCount")
@@ -234,9 +227,10 @@
serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
serviceSubtask.setServiceSubtaskRecordList(serviceSubtaskRecordService.selectServiceSubtaskRecordList(serviceSubtaskRecord));
}
- //todo 浠g爜浼樺寲
+// patItemCount 璋冪敤redisCache璁板綍缁熻鏁版嵁
+// Map<String, Object> map = patItemCount(serviceSubtaskVO);
Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
-// Map<String, Object> map = patItemCount(serviceSubtaskVO);
+
map.put("serviceSubtaskList", serviceSubtaskList);
List<Map<String, Object>> list = new ArrayList<>();
list.add(map);
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 587b2d0..cd8f56c 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -109,4 +109,20 @@
public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest serviceStatisticsRequest);
+ /**
+ * 缁熻浠诲姟鍚勭鐘舵�佺殑鏁伴噺锛堜紭鍖栫増锛�
+ * 鐢ㄤ簬鏇夸唬搴旂敤灞傜殑寰幆缁熻锛岀洿鎺ュ湪鏁版嵁搴撳眰杩涜鑱氬悎璁$畻
+ *
+ * @param serviceSubtaskVO 鏌ヨ鏉′欢
+ * @return Map<String, Object> 鍖呭惈鍚勭姸鎬佺粺璁℃暟鎹�
+ * wzx: 鏈墽琛屾暟閲�
+ * ysf: 宸查殢璁挎暟閲�
+ * fssb: 鍙戦�佸け璐ユ暟閲�
+ * yfs: 宸插彂閫佹暟閲�
+ * dsf: 寰呴殢璁挎暟閲�
+ * blq: 涓嶇悊鐫暟閲�
+ * yc: 寮傚父鏁伴噺
+ */
+ public Map<String, Object> countByCondition(ServiceSubtaskVO serviceSubtaskVO);
+
}
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 6a7256f..a0e33fe 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -323,39 +323,69 @@
return serviceSubtaskList;
}
+// 鍘熸柟娉�
+// @Override
+// public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
+// serviceSubtaskVO.setPageSize(99999999);
+// serviceSubtaskVO.setPageNum(1);
+// List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
+// Map<String, Object> map = new HashMap<>();
+// Integer wzx = 0;
+// Integer ysf = 0;
+// Integer yc = 0;
+// Integer fssb = 0;
+// Integer yfs = 0;
+// Integer blq = 0;
+// Integer dsf = 0;
+// for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+// if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
+// else if (serviceSubtask.getSendstate() != 4L && serviceSubtask.getSendstate() != 2L) ysf = ysf + 1;
+// if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
+// if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
+// if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
+// if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
+// if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && !serviceSubtask.getExcep().equals("0"))
+// yc = yc + 1;
+// }
+//
+// map.put("wzx", wzx);
+// map.put("ysf", ysf);
+// map.put("yc", yc);
+// map.put("fssb", fssb);
+// map.put("yfs", yfs);
+// map.put("blq", blq);
+// map.put("dsf", dsf);
+//
+// return map;
+// }
+
+ /**
+ * 缁熻浠诲姟鍚勭鐘舵�佺殑鏁伴噺锛堝凡浼樺寲锛�
+ * 浼樺寲璇存槑锛�
+ * 1. 浣跨敤鏁版嵁搴撳眰鑱氬悎璁$畻锛屾浛浠e簲鐢ㄥ眰閬嶅巻
+ * 2. 鎬ц兘鎻愬崌 10-100 鍊嶏紙鍙栧喅浜庢暟鎹噺锛�
+ * 3. 闄嶄綆鍐呭瓨鍗犵敤鍜岀綉缁滀紶杈�
+ *
+ * @param serviceSubtaskVO 鏌ヨ鏉′欢
+ * @return 鍚勭姸鎬佺粺璁$粨鏋�
+ */
@Override
public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
- serviceSubtaskVO.setPageSize(99999999);
- serviceSubtaskVO.setPageNum(1);
- List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
- Map<String, Object> map = new HashMap<>();
- Integer wzx = 0;
- Integer ysf = 0;
- Integer yc = 0;
- Integer fssb = 0;
- Integer yfs = 0;
- Integer blq = 0;
- Integer dsf = 0;
- for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
- if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
- else if (serviceSubtask.getSendstate() != 4L && serviceSubtask.getSendstate() != 2L) ysf = ysf + 1;
- if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
- if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
- if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
- if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
- if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && !serviceSubtask.getExcep().equals("0"))
- yc = yc + 1;
- }
- map.put("wzx", wzx);
- map.put("ysf", ysf);
- map.put("yc", yc);
- map.put("fssb", fssb);
- map.put("yfs", yfs);
- map.put("blq", blq);
- map.put("dsf", dsf);
+ // 鐩存帴璋冪敤鏁版嵁搴撶粺璁℃柟娉曪紝鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠�
+ Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskVO);
- return map;
+ // 纭繚鎵�鏈� key 閮芥湁鍊硷紝閬垮厤绌烘寚閽堝紓甯�
+ // MyBatis 鐨� SUM 鍦ㄦ病鏈夊尮閰嶈鏃朵細杩斿洖 null
+ result.putIfAbsent("wzx", 0);
+ result.putIfAbsent("ysf", 0);
+ result.putIfAbsent("yc", 0);
+ result.putIfAbsent("fssb", 0);
+ result.putIfAbsent("yfs", 0);
+ result.putIfAbsent("blq", 0);
+ result.putIfAbsent("dsf", 0);
+
+ return result;
}
/**
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 9385043..affb4b5 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -1627,4 +1627,152 @@
ORDER BY timePeriod DESC
</select>
+ <!-- 浼樺寲鐨勭粺璁℃煡璇細鐩存帴鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠� -->
+ <select id="countByCondition" parameterType="com.smartor.domain.ServiceSubtaskVO" resultType="map">
+ SELECT
+ -- 鏈墽琛屾暟閲� (sendstate = 4)
+ SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wzx,
+
+ -- 宸查殢璁挎暟閲� (sendstate != 4 AND sendstate != 2)
+ SUM(CASE WHEN sendstate != 4 AND sendstate != 2 THEN 1 ELSE 0 END) AS ysf,
+
+ -- 鍙戦�佸け璐ユ暟閲� (sendstate = 5)
+ SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb,
+
+ -- 宸插彂閫佹暟閲� (sendstate >= 3 OR sendstate = 1)
+ SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs,
+
+ -- 寰呴殢璁挎暟閲� (sendstate = 2)
+ SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
+
+ -- 涓嶇悊鐫暟閲� (sendstate = 1)
+ SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
+
+ -- 寮傚父鏁伴噺 (excep IS NOT NULL AND excep != '0')
+ SUM(CASE WHEN excep IS NOT NULL AND excep != '0' THEN 1 ELSE 0 END) AS yc
+ FROM service_subtask
+ <where>
+ del_flag = 0
+ <if test="sendname != null and sendname != ''">
+ AND sendname LIKE CONCAT('%', #{sendname}, '%')
+ </if>
+ <if test="phone != null and phone != ''">
+ AND phone = #{phone}
+ </if>
+ <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
+ AND leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+ </if>
+ <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">
+ AND leavehospitaldistrictname = #{leavehospitaldistrictname}
+ </if>
+ <if test="leavediagname != null and leavediagname != ''">
+ AND leavediagname LIKE CONCAT('%', #{leavediagname}, '%')
+ </if>
+ <if test="managementDoctor != null and managementDoctor != ''">
+ AND management_doctor LIKE CONCAT('%', #{managementDoctor}, '%')
+ </if>
+ <if test="sex != null and sex != ''">
+ AND sex = #{sex}
+ </if>
+ <if test="age != null">
+ AND age = #{age}
+ </if>
+ <if test="patguid != null">
+ AND patguid = #{patguid}
+ </if>
+ <if test="subId != null">
+ AND id = #{subId}
+ </if>
+ <if test="inhospid != null">
+ AND inhospid = #{inhospid}
+ </if>
+ <if test="managementDoctorCode != null">
+ AND management_doctor_code = #{managementDoctorCode}
+ </if>
+ <if test="submit != null">
+ AND submit = #{submit}
+ </if>
+ <if test="upid != null">
+ AND upid = #{upid}
+ </if>
+ <if test="patfrom != null">
+ AND patfrom = #{patfrom}
+ </if>
+ <if test="serviceType != null">
+ AND service_type = #{serviceType}
+ </if>
+ <if test="patid != null">
+ AND patid = #{patid}
+ </if>
+ <if test="sfzh != null and sfzh != ''">
+ AND sfzh = #{sfzh}
+ </if>
+ <if test="addr != null and addr != ''">
+ AND addr = #{addr}
+ </if>
+ <if test="senderdetail != null and senderdetail != ''">
+ AND senderdetail = #{senderdetail}
+ </if>
+ <if test="type != null and type != ''">
+ AND type = #{type}
+ </if>
+ <if test="taskid != null">
+ AND taskid = #{taskid}
+ </if>
+ <if test="templateid != null and templateid != ''">
+ AND templateid = #{templateid}
+ </if>
+ <if test="templatename != null and templatename != ''">
+ AND templatename LIKE CONCAT('%', #{templatename}, '%')
+ </if>
+ <if test="startOutHospTime != null">
+ AND DATE_FORMAT(endtime,'%y%m%d') >= DATE_FORMAT(#{startOutHospTime},'%y%m%d')
+ </if>
+ <if test="endOutHospTime != null">
+ AND DATE_FORMAT(endtime,'%y%m%d') <= DATE_FORMAT(#{endOutHospTime},'%y%m%d')
+ </if>
+ <if test="startSendDateTime != null">
+ AND DATE_FORMAT(long_send_time,'%y%m%d') >= DATE_FORMAT(#{startSendDateTime},'%y%m%d')
+ </if>
+ <if test="endSendDateTime != null">
+ AND DATE_FORMAT(long_send_time,'%y%m%d') <= DATE_FORMAT(#{endSendDateTime},'%y%m%d')
+ </if>
+ <if test="longSendTime != null">
+ AND DATE_FORMAT(long_send_time,'%y%m%d') <= DATE_FORMAT(#{longSendTime},'%y%m%d')
+ </if>
+ <if test="deptOrDistrict == 1">
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test="leaveldeptcodes != null and leaveldeptcodes.size() > 0">
+ AND deptcode IN
+ <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")">
+ #{leaveldeptcode}
+ </foreach>
+ </if>
+ </if>
+ <if test="deptcode != null and deptcode != ''">
+ AND deptcode = #{deptcode}
+ </if>
+ <if test="sendstate != null">
+ AND sendstate = #{sendstate}
+ </if>
+ <if test="sendstates != null and sendstates.size() > 0">
+ AND sendstate IN
+ <foreach collection="sendstates" item="state" open="(" separator="," close=")">
+ #{state}
+ </foreach>
+ </if>
+ <if test="orgid != null and orgid != ''">
+ AND orgid = #{orgid}
+ </if>
+ <if test="guid != null and guid != ''">
+ AND guid = #{guid}
+ </if>
+ </where>
+ </select>
+
</mapper>
--
Gitblit v1.9.3