From b3ba85a04a61d342f21b457bc2caad3e844bbf68 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 05 一月 2026 14:08:11 +0800
Subject: [PATCH] 【市一】随访满意度明细调整
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 32 ++++++++++++++++
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 52 ++++++++++++++++++++++++++
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 15 +++++++
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java | 2 +
4 files changed, 101 insertions(+), 0 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 b274e73..47a4889 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
@@ -16,9 +16,11 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.*;
import com.smartor.mapper.PatMedInhospMapper;
import com.smartor.mapper.PatMedOuthospMapper;
@@ -66,6 +68,9 @@
@Autowired
private IServiceSubtaskRecordService serviceSubtaskRecordService;
+
+ @Autowired
+ private ISysConfigService configService;
@Value("${spring.profiles.active}")
private String active;
@@ -533,6 +538,33 @@
return success(serviceSubtaskService.getSfStatisticsJoydetails(serviceSubtaskCountReq));
}
+ @ApiOperation("鑾峰彇闅忚鍒嗙被缁熻鏄庣粏")
+ @PostMapping("/getSfStatisticsCountDetails")
+ public AjaxResult getSfStatisticsCountDetails(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() == 0 && serviceSubtaskCountReq.getDeptcodes().size() == 0) {
+ return error("绉戝鎴栫梾鍖轰笉鑳戒负绌�");
+ }
+ //澶嶈瘖缁熻
+ String configKey = serviceSubtaskCountReq.getConfigKey();
+ if(StringUtils.isNotEmpty(configKey)){
+ String configValue = configService.selectConfigByKey(configKey);
+ if(StringUtils.isEmpty(configValue)){
+ String logInfo = "getSfStatisticsCountDetails-鍙傛暟 " + configKey + " 鏈厤缃�, 璇烽厤缃ソ鍚庨噸璇�";
+ log.error(logInfo);
+ return error(logInfo);
+ }
+ serviceSubtaskCountReq.setConfigValue(configValue);
+ }else {
+ String logInfo = "getSfStatisticsCountDetails-鍙傛暟configKey鏈紶鍏�, 璇烽厤缃ソ鍚庨噸璇�";
+ log.error(logInfo);
+ return error(logInfo);
+ }
+
+ LoginUser loginUser = getLoginUser();
+ String orgid = loginUser.getUser().getOrgid();
+ serviceSubtaskCountReq.setOrgid(orgid);
+ return success(serviceSubtaskService.getSfStatisticsScriptDetails(serviceSubtaskCountReq));
+ }
/**
* 鍙戦�佺煭淇℃ā鏉�
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index cd8f56c..d283754 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -105,6 +105,21 @@
public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+ /**
+ * 鑾峰彇闂缁熻缁撴灉锛堥殢璁匡級
+ *
+ * @return 缁撴灉
+ */
+ public List<ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
+ /**
+ * 鑾峰彇闂鍥炵瓟缁熻缁撴灉锛堥殢璁匡級
+ *
+ * @return 缁撴灉
+ */
+ public List<ServiceSubtaskScriptCount> getSfStatisticsScriptItemDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
+
public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);
public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest serviceStatisticsRequest);
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index aa1eca1..c0dcb0b 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -139,6 +139,8 @@
public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest request);
+ public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
public List<PatArchiveSrmVO> sendMsgTemplate(List<PatArchiveSrmVO> patArchiveSrmVOS);
public List<ServiceSubtaskDiagname> convertToDiagnameList(List<ServiceSubtask> subtaskList) ;
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 8664428..50fdda2 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2928,6 +2928,58 @@
return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq);
}
+ @Override
+ public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();
+ List<ServiceSubtaskScriptCount> allCounts = new ArrayList<>();
+ List<ServiceSubtaskScriptCount> allItemCounts = new ArrayList<>();
+ if(ObjectUtils.isEmpty(serviceSubtaskCountReq.getType())){
+ //鏌ヨ璇煶缁熻鏄庣粏
+ serviceSubtaskCountReq.setType("1");
+ List<ServiceSubtaskScriptCount> ivyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
+ List<ServiceSubtaskScriptCount> ivyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
+
+ //鏌ヨ鐭俊缁熻鏄庣粏
+ serviceSubtaskCountReq.setType("2");
+ List<ServiceSubtaskScriptCount> svyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
+ List<ServiceSubtaskScriptCount> svyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
+
+ allCounts.addAll(ivyCounts);
+ allCounts.addAll(svyCounts);
+ allItemCounts.addAll(ivyItemCounts);
+ allItemCounts.addAll(svyItemCounts);
+ }else {
+ allCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
+ allItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
+ }
+
+
+ for(ServiceSubtaskScriptCount count : allCounts){
+ List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>();
+ allItemCounts.forEach(itemCount ->{
+ if(ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())){
+ if(count.getScriptid().equals(itemCount.getScriptid())){
+ //鏀惧叆缁熻淇℃伅
+ itemCount.setScriptContent(count.getScriptContent());
+ itemCount.setCompletedQuantity(count.getCompletedQuantity());
+ itemCount.setAllQuantity(count.getAllQuantity());
+ //璁$畻閫夋嫨姣斾緥
+ int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
+ int completedQuantity = itemCount.getCompletedQuantity();
+ if(ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0){
+ BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
+ itemCount.setChosenPercentage(chosenPercentage.toString());
+ }
+ itemCounts.add(itemCount);
+ }
+ }
+ });
+ count.setDetails(itemCounts);
+ result.put(count.getScriptid().toString(),count);
+ }
+ return result;
+ }
+
/**
* @param serviceSubtask
--
Gitblit v1.9.3