From 2a9c68fe5130227d88b71e8eb57aced6b10d4d91 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 17 十二月 2025 15:47:35 +0800
Subject: [PATCH] 【丽水】统计随访数据 增加redis记录结果 提高查询效率
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 45 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 36 insertions(+), 9 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 89a1e35..6dd0e49 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
@@ -17,6 +17,7 @@
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.smartor.domain.*;
import com.smartor.mapper.PatMedInhospMapper;
@@ -106,9 +107,9 @@
List<Map<String, Object>> list = new ArrayList<>();
list.add(map);
**/
- //todo 浠g爜浼樺寲
- Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
-// Map<String, Object> map = patItemCount(serviceSubtaskVO);
+ //Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
+ //patItemCount 璋冪敤redisCache璁板綍缁熻鏁版嵁
+ Map<String, Object> map = patItemCount(serviceSubtaskVO);
map.put("serviceSubtaskList", serviceSubtaskList);
List<Map<String, Object>> list = new ArrayList<>();
list.add(map);
@@ -145,14 +146,24 @@
if(ObjectUtils.isNotEmpty(userId)){
redisMap = redisCache.getCacheObject(userId + "patItemCount");
//璁板綍鏄惁鏈夊彲鐢ㄧ紦瀛�
-// Boolean redisFlag = false;
-// Map oldConditionMap = (Map)redisMap.get("searchCondition");
+ Boolean redisFlag = false;
+ ServiceSubtaskVO oldCondition = null;
if(MapUtils.isNotEmpty(redisMap)){
- map = redisMap;
- redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
- }else {
+ oldCondition = (ServiceSubtaskVO)redisMap.get(userId + "searchCondition");
+ // 姣旇緝鏌ヨ鏉′欢鏄惁涓�鑷�
+ if(ObjectUtils.isNotEmpty(oldCondition) &&
+ isSameCondition(oldCondition, serviceSubtaskVO)){
+ // 鏉′欢涓�鑷达紝浣跨敤缂撳瓨
+ redisFlag = true;
+ map = redisMap;
+ redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
+ }
+ }
+
+ // 濡傛灉娌℃湁缂撳瓨鎴栬�呮潯浠朵笉涓�鑷达紝閲嶆柊鏌ヨ
+ if(!redisFlag){
map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
-// map.put("searchCondition",serviceSubtaskVO);
+ map.put(userId + "searchCondition", serviceSubtaskVO);
redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
}
}
@@ -161,6 +172,22 @@
return map;
}
+ /**
+ * 姣旇緝涓や釜ServiceSubtaskVO鐨勬煡璇㈡潯浠舵槸鍚︿竴鑷�
+ * 浣跨敤鍙嶅皠姣旇緝鎵�鏈夊瓧娈碉紝鎺掗櫎鍒嗛〉鍙傛暟鍜屾棤鍏冲瓧娈�
+ */
+ private boolean isSameCondition(ServiceSubtaskVO oldCondition, ServiceSubtaskVO newCondition) {
+ // 浣跨敤ReflectUtils鐨勯�氱敤鏂规硶姣旇緝锛屾帓闄ゅ垎椤靛弬鏁扮瓑鏃犲叧瀛楁
+ return ReflectUtils.equalsAllFields(
+ oldCondition,
+ newCondition,
+ // 鎺掗櫎鐨勫瓧娈碉細鍒嗛〉鍙傛暟銆佸簭鍒楀寲ID銆佹椂闂存埑绛�
+ "pageNum", "pageSize", "serialVersionUID",
+ "createBy", "createTime", "updateBy", "updateTime",
+ "searchValue", "params"
+ );
+ }
+
/**
* 瀵煎嚭鍗曚竴浠诲姟锛堥殢璁垮鏁欙級鍒楄〃
--
Gitblit v1.9.3