From 0d10bc99eec75672b049339399e4f762fbd9746e Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 11 九月 2026 11:45:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 137 ++++++++++++++++++++++-----------------------
1 files changed, 67 insertions(+), 70 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 3db95ac..a4357cf 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
@@ -24,10 +24,8 @@
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDeptService;
import com.smartor.domain.*;
-import com.smartor.domain.VO.HeLibraryCountVO;
-import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
-import com.smartor.domain.VO.ServiceSubtaskVO;
-import com.smartor.domain.VO.TransferDeptVO;
+import com.smartor.domain.DTO.QuestionResultDTO;
+import com.smartor.domain.VO.*;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.service.IServiceSubtaskRecordService;
import com.smartor.service.IServiceSubtaskService;
@@ -191,59 +189,6 @@
}
/**
- * 甯edis缂撳瓨鐨勭粺璁℃煡璇紝渚沺atItem鍜宲atItemCount鍏辩敤锛屾潯浠朵笉鍙樻椂鐩存帴鍛戒腑缂撳瓨
- */
- private Map<String, Object> getPatItemCountWithCache(ServiceSubtaskEntity serviceSubtaskEntity) {
- Map<String, Object> map = new HashMap<>();
- LoginUser loginUser = getLoginUser();
- Long userId = null;
- if (ObjectUtils.isNotEmpty(loginUser) && ObjectUtils.isNotEmpty(loginUser.getUser())) {
- userId = loginUser.getUser().getUserId();
- }
- if (serviceSubtaskEntity.getSendstateView() != null) {
- // 1锛氬緟闅忚锛�1 琚鍙栥��2 寰呭彂閫併��3 宸插彂閫併��5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級锛�2锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�3锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
- if (serviceSubtaskEntity.getSendstateView() == 1)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 5L, 7L)));
- if (serviceSubtaskEntity.getSendstateView() == 2)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
- if (serviceSubtaskEntity.getSendstateView() == 3)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(4L)));
- }
- if (ObjectUtils.isNotEmpty(userId)) {
- Map<String, Object> redisMap = redisCache.getCacheObject(userId + "patItemCount");
- Boolean redisFlag = false;
- if (MapUtils.isNotEmpty(redisMap)) {
- ServiceSubtaskEntity oldCondition = (ServiceSubtaskEntity) redisMap.get("searchCondition");
- if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskEntity)) {
- redisFlag = true;
- map = redisMap;
- redisCache.setCacheObject(userId + "patItemCount", map, 60, TimeUnit.MINUTES);
- }
- }
- if (!redisFlag) {
- map = serviceSubtaskService.patItemCount(serviceSubtaskEntity);
- map.put("searchCondition", serviceSubtaskEntity);
- redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
- }
- } else {
- map = serviceSubtaskService.patItemCount(serviceSubtaskEntity);
- }
- return map;
- }
-
- /**
- * 姣旇緝涓や釜ServiceSubtaskVO鐨勬煡璇㈡潯浠舵槸鍚︿竴鑷�
- * 浣跨敤鍙嶅皠姣旇緝鎵�鏈夊瓧娈碉紝鎺掗櫎鍒嗛〉鍙傛暟鍜屾棤鍏冲瓧娈�
- */
- private boolean isSameCondition(ServiceSubtaskEntity oldCondition, ServiceSubtaskEntity newCondition) {
- // 浣跨敤ReflectUtils鐨勯�氱敤鏂规硶姣旇緝锛屾帓闄ゅ垎椤靛弬鏁扮瓑鏃犲叧瀛楁
- return ReflectUtils.equalsAllFields(oldCondition, newCondition,
- // 鎺掗櫎鐨勫瓧娈碉細鍒嗛〉鍙傛暟銆佸簭鍒楀寲ID銆佹椂闂存埑绛�
- "pageNum", "pageSize", "serialVersionUID", "createBy", "createTime", "updateBy", "updateTime", "searchValue", "params");
- }
-
-
- /**
* 瀵煎嚭鍗曚竴浠诲姟鍒楄〃
*/
//@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
@@ -275,17 +220,11 @@
serviceSubtaskExport.setEndDay(endDay);
}
}
-
- if (StringUtils.isNotEmpty(serviceSubtaskVO.getServiceType()) && serviceSubtaskVO.getServiceType().equals("2")) {
- //鑾峰彇serviceSubtaskList涓殑鎵�鏈塼askid
- List<Long> taskIds = serviceSubtaskList.stream().map(ServiceSubtaskRes::getTaskid).filter(ObjectUtils::isNotEmpty).distinct().collect(Collectors.toList());
- serviceSubtaskDetailRatioExports = serviceSubtaskService.statQuestionOption(taskIds, serviceSubtaskVO.getStartOutHospTime(), serviceSubtaskVO.getEndOutHospTime());
- } else if (StringUtils.isNotEmpty(serviceSubtaskVO.getServiceType()) && serviceSubtaskVO.getServiceType().equals("6")) {
- //婊℃剰搴︾粺璁� 锛堥�氳繃 subtask 鐨� id 鍘荤粺璁★級
- List<Long> subtaskIds = serviceSubtaskList.stream().map(ServiceSubtaskRes::getId).collect(Collectors.toList());
- serviceSubtaskDetailRatioExports = serviceSubtaskService.statQuestionOptionBySubtaskIds(subtaskIds, serviceSubtaskVO.getStartOutHospTime(), serviceSubtaskVO.getEndOutHospTime());
- }
-
+ QuestionResultVO questionResultVO = new QuestionResultVO();
+ questionResultVO.setServiceType(serviceSubtaskVO.getServiceType());
+ questionResultVO.setEndOutHospTime(serviceSubtaskVO.getEndOutHospTime());
+ questionResultVO.setStartOutHospTime(serviceSubtaskVO.getStartOutHospTime());
+ serviceSubtaskDetailRatioExports = serviceSubtaskService.getDetailRatio(questionResultVO, serviceSubtaskList);
}
@@ -478,6 +417,8 @@
if (ObjectUtils.isNotEmpty(user)) serviceSubtask.setOrgid(user.getOrgid());
if (ObjectUtils.isNotEmpty(user)) serviceSubtask.setCampusid(user.getCampusid());
serviceSubtask.setCampusid(user.getCampusid());
+ serviceSubtask.setCreateBy(user.getNickName());
+ serviceSubtask.setUpdateBy(user.getNickName());
return success(serviceSubtaskService.insertServiceSubtask(serviceSubtask));
}
@@ -996,11 +937,12 @@
return AjaxResult.success("銆恈ollectHISDaysBefore銆戝悓姝ヤ换鍔″凡鍚姩锛屽ぉ鏁颁负" + day + "澶╋紝璇风◢鍚庢煡鐪嬬粨鏋�");
}
-
@PostMapping("/syncMedOperForShiyi")
public AjaxResult syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
// 绔嬪嵆杩斿洖锛屽悗鍙板紓姝ユ墽琛�
- collectHISService.syncOper(startTime, endTime);
+ CompletableFuture.runAsync(() -> {
+ collectHISService.syncOper(startTime, endTime);
+ });
return AjaxResult.success("鍚屾浠诲姟宸插惎鍔紝璇风◢鍚庢煡鐪嬬粨鏋�");
}
@@ -1010,4 +952,59 @@
ryTask.dealSubtaskDeadline(orgid, day);
return AjaxResult.success("銆恉ealSubtaskDeadline銆戝悓姝ヤ换鍔″凡鍚姩锛屽ぉ鏁颁负" + day + "澶╋紝璇风◢鍚庢煡鐪嬬粨鏋�");
}
+ /**
+ * 甯edis缂撳瓨鐨勭粺璁℃煡璇紝渚沺atItem鍜宲atItemCount鍏辩敤锛屾潯浠朵笉鍙樻椂鐩存帴鍛戒腑缂撳瓨
+ */
+ private Map<String, Object> getPatItemCountWithCache(ServiceSubtaskEntity serviceSubtaskEntity) {
+ Map<String, Object> map = new HashMap<>();
+ LoginUser loginUser = getLoginUser();
+ Long userId = null;
+ if (ObjectUtils.isNotEmpty(loginUser) && ObjectUtils.isNotEmpty(loginUser.getUser())) {
+ userId = loginUser.getUser().getUserId();
+ }
+ if (serviceSubtaskEntity.getSendstateView() != null) {
+ // 1锛氬緟闅忚锛�1 琚鍙栥��2 寰呭彂閫併��3 宸插彂閫併��5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級锛�2锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�3锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
+ if (serviceSubtaskEntity.getSendstateView() == 1)
+ serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 5L, 7L)));
+ if (serviceSubtaskEntity.getSendstateView() == 2)
+ serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
+ if (serviceSubtaskEntity.getSendstateView() == 3)
+ serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(4L)));
+ }
+ if (ObjectUtils.isNotEmpty(userId)) {
+ Map<String, Object> redisMap = redisCache.getCacheObject(userId + "patItemCount");
+ Boolean redisFlag = false;
+ if (MapUtils.isNotEmpty(redisMap)) {
+ ServiceSubtaskEntity oldCondition = (ServiceSubtaskEntity) redisMap.get("searchCondition");
+ if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskEntity)) {
+ redisFlag = true;
+ map = redisMap;
+ redisCache.setCacheObject(userId + "patItemCount", map, 60, TimeUnit.MINUTES);
+ }
+ }
+ if (!redisFlag) {
+ map = serviceSubtaskService.patItemCount(serviceSubtaskEntity);
+ map.put("searchCondition", serviceSubtaskEntity);
+ redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
+ }
+ } else {
+ map = serviceSubtaskService.patItemCount(serviceSubtaskEntity);
+ }
+ return map;
+ }
+
+
+ /**
+ * 姣旇緝涓や釜ServiceSubtaskVO鐨勬煡璇㈡潯浠舵槸鍚︿竴鑷�
+ * 浣跨敤鍙嶅皠姣旇緝鎵�鏈夊瓧娈碉紝鎺掗櫎鍒嗛〉鍙傛暟鍜屾棤鍏冲瓧娈�
+ */
+ private boolean isSameCondition(ServiceSubtaskEntity oldCondition, ServiceSubtaskEntity newCondition) {
+ // 浣跨敤ReflectUtils鐨勯�氱敤鏂规硶姣旇緝锛屾帓闄ゅ垎椤靛弬鏁扮瓑鏃犲叧瀛楁
+ return ReflectUtils.equalsAllFields(oldCondition, newCondition,
+ // 鎺掗櫎鐨勫瓧娈碉細鍒嗛〉鍙傛暟銆佸簭鍒楀寲ID銆佹椂闂存埑绛�
+ "pageNum", "pageSize", "serialVersionUID", "createBy", "createTime", "updateBy", "updateTime", "searchValue", "params");
+ }
+
+
+
}
--
Gitblit v1.9.3