From b3ba85a04a61d342f21b457bc2caad3e844bbf68 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 05 一月 2026 14:08:11 +0800
Subject: [PATCH] 【市一】随访满意度明细调整
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 73 +++++++++++++++++++++++++++++++++++-
1 files changed, 71 insertions(+), 2 deletions(-)
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 a0e33fe..50fdda2 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -17,6 +17,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -374,7 +375,10 @@
public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
// 鐩存帴璋冪敤鏁版嵁搴撶粺璁℃柟娉曪紝鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠�
Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskVO);
-
+ // 澶勭悊绌哄紓甯�
+ if(MapUtils.isEmpty(result)){
+ result = new HashMap<>();
+ }
// 纭繚鎵�鏈� key 閮芥湁鍊硷紝閬垮厤绌烘寚閽堝紓甯�
// MyBatis 鐨� SUM 鍦ㄦ病鏈夊尮閰嶈鏃朵細杩斿洖 null
result.putIfAbsent("wzx", 0);
@@ -516,7 +520,15 @@
}
if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
tempid = Long.valueOf(ivrTaskTemplateService.saveOrUpdateTempScript(serviceTaskVO.getIvrTaskTemplateVO()));
- tempName = ivrTaskTemplateService.selectIvrTaskTemplateByID(tempid).getTemplateName();
+ log.info("IVR妯℃澘鎻掑叆鎴愬姛锛岃繑鍥炵殑tempid={}", tempid);
+
+ IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(tempid);
+ if (ivrTaskTemplate == null) {
+ log.error("鏍规嵁tempid={}鏌ヨIVR妯℃澘澶辫触锛岃繑鍥瀗ull锛佽妫�鏌el_flag瀛楁鏄惁姝g‘璁剧疆", tempid);
+ throw new BaseException("IVR妯℃澘淇濆瓨鎴愬姛浣嗘煡璇㈠け璐ワ紝璇疯仈绯荤鐞嗗憳妫�鏌ユ暟鎹�");
+ }
+ tempName = ivrTaskTemplate.getTemplateName();
+ log.info("IVR妯℃澘鏌ヨ鎴愬姛锛宼empName={}", tempName);
}
//寰�浠诲姟琛ㄤ腑锛屾柊澧炰换鍔�
@@ -2916,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
@@ -2971,6 +3035,11 @@
serviceSubtaskPreachform.setTaskid(taskid);
List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
+ //娌℃湁闅忚鏃堕棿鍒欐寜褰撳ぉ鏉ョ畻--涓存椂
+ if (ObjectUtils.isEmpty(visitTime)) {
+ visitTime = new Date();
+ }
+
String compensateTime = serviceSubtaskPreachforms.get(0).getCompensateTime();
int hoursToAdd = Integer.valueOf(compensateTime) * 24;
Calendar calendar = Calendar.getInstance();
--
Gitblit v1.9.3