From 459aa78c84cf552ebea6ef056d978c2531d71ac8 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 06 三月 2026 17:14:27 +0800
Subject: [PATCH] 代码提交
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 460 ++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 288 insertions(+), 172 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 37b6c64..44461fa 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,5 +1,6 @@
package com.smartor.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
@@ -12,6 +13,7 @@
import com.smartor.common.FtpService;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.*;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.*;
import com.sun.org.apache.bcel.internal.generic.NEW;
@@ -167,27 +169,27 @@
/**
* 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級鍒楄〃
*
- * @param serviceSubtaskVO 鍗曚竴浠诲姟锛堥殢璁匡級
+ * @param serviceSubtaskEntity 鍗曚竴浠诲姟锛堥殢璁匡級
* @return 鍗曚竴浠诲姟锛堥殢璁匡級
*/
@Override
- public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO) {
- return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskEntity serviceSubtaskEntity) {
+ return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity);
}
- public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskVO serviceSubtaskVO) {
- return serviceSubtaskMapper.selectServiceSubtaskListAgain(serviceSubtaskVO);
+ public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskEntity serviceSubtaskEntity) {
+ return serviceSubtaskMapper.selectServiceSubtaskListAgain(serviceSubtaskEntity);
}
@Override
public ServiceTaskVO queryTaskByCondition(ServiceSubtask serviceSubtask) {
//瀹氫箟鎮h�呬笌鍗曚竴浠诲姟鍏宠仈琛ㄩ泦鍚�
List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
- ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
+ ServiceSubtaskEntity serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskEntity.class);
List<ServiceSubtask> list = selectServiceSubtaskList(serviceSubtaskVO);
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
- if(ObjectUtils.isEmpty(serviceTask)){
+ if (ObjectUtils.isEmpty(serviceTask)) {
log.error("鎵句笉鍒板搴旂殑serviceTask, orgid锛歿}, taskid: {}", serviceSubtask.getOrgid(), serviceSubtask.getTaskid());
return null;
}
@@ -231,8 +233,7 @@
} catch (JsonProcessingException e) {
e.printStackTrace();
}
- List<ServiceSubtaskPreachform> serviceSubtaskPreachformLists =
- serviceSubtaskPreachformMapper.selectBySubtask(serviceSubtask);
+ List<ServiceSubtaskPreachform> serviceSubtaskPreachformLists = serviceSubtaskPreachformMapper.selectBySubtask(serviceSubtask);
for (ServiceSubtask serviceSubtask1 : list) {
PatTaskRelevance patTaskRelevance = new PatTaskRelevance();
if (!serviceSubtask1.getHospType().equals("2")) {
@@ -289,9 +290,7 @@
}
//鑾峰彇璇ユ偅鑰呮墍鏈夌殑鎵ц鐘舵��
- List<ServiceSubtaskPreachform> serviceSubtaskPreachformList =
- serviceSubtaskPreachformLists.stream().filter((item -> item.getSubid().equals(serviceSubtask1.getId())
- && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
+ List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream().filter((item -> item.getSubid().equals(serviceSubtask1.getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
Map<String, Object> map = new HashMap<>();
map.put("sort", item.getSort());
@@ -310,17 +309,23 @@
}
@Override
- public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) {
- List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
- return selectServiceSubtaskList;
+ public List<ServiceSubtaskRes> patItem(ServiceSubtaskEntity serviceSubtaskEntity) {
+ List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskEntity);
+
+ List<ServiceSubtaskRes> serviceSubtaskResList = new ArrayList<>();
+ for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+ ServiceSubtaskRes serviceSubtaskRes = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskRes.class);
+ serviceSubtaskRes.setContinueContent(JSONObject.parseObject(serviceSubtask.getContinueContent()));
+ }
+ return serviceSubtaskResList;
}
@Override
- public List<ServiceSubtask> patItem2(ServiceSubtaskVO serviceSubtaskVO) {
+ public List<ServiceSubtask> patItem2(ServiceSubtaskEntity serviceSubtaskEntity) {
List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
- for (Long sendstate : serviceSubtaskVO.getSendstates()) {
- serviceSubtaskVO.setSendstate(sendstate);
- List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ for (Long sendstate : serviceSubtaskEntity.getSendstates()) {
+ serviceSubtaskEntity.setSendstate(sendstate);
+ List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskEntity);
serviceSubtaskList.addAll(serviceSubtasks);
}
return serviceSubtaskList;
@@ -370,15 +375,15 @@
* 2. 鎬ц兘鎻愬崌 10-100 鍊嶏紙鍙栧喅浜庢暟鎹噺锛�
* 3. 闄嶄綆鍐呭瓨鍗犵敤鍜岀綉缁滀紶杈�
*
- * @param serviceSubtaskVO 鏌ヨ鏉′欢
+ * @param serviceSubtaskEntity 鏌ヨ鏉′欢
* @return 鍚勭姸鎬佺粺璁$粨鏋�
*/
@Override
- public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
+ public Map<String, Object> patItemCount(ServiceSubtaskEntity serviceSubtaskEntity) {
// 鐩存帴璋冪敤鏁版嵁搴撶粺璁℃柟娉曪紝鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠�
- Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskVO);
+ Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskEntity);
// 澶勭悊绌哄紓甯�
- if(MapUtils.isEmpty(result)){
+ if (MapUtils.isEmpty(result)) {
result = new HashMap<>();
}
// 纭繚鎵�鏈� key 閮芥湁鍊硷紝閬垮厤绌烘寚閽堝紓甯�
@@ -386,6 +391,7 @@
result.putIfAbsent("wzx", 0);
result.putIfAbsent("ysf", 0);
result.putIfAbsent("yc", 0);
+ result.putIfAbsent("jg", 0);
result.putIfAbsent("fssb", 0);
result.putIfAbsent("yfs", 0);
result.putIfAbsent("blq", 0);
@@ -423,18 +429,18 @@
if (patMedInhospList.size() > 0) {
serviceSubtask1.setIsVisitAgain(2);
- serviceSubtask1.setRemark(serviceSubtask1.getRemark()+";鎮h�呭啀鍏ラ櫌浜�");
+ serviceSubtask1.setRemark(serviceSubtask1.getRemark() + ";鎮h�呭啀鍏ラ櫌浜�");
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
return "鏃犻渶鍐嶆闅忚锛屾偅鑰呭啀鍏ラ櫌浜�";
} else if (serviceSubtask1.getSendstate() == 4L) {
serviceSubtask1.setIsVisitAgain(2);
- serviceSubtask1.setRemark(serviceSubtask1.getRemark()+";鏃犻渶鍐嶆闅忚锛屼换鍔¤鏍囪涓嶅湪鎵ц");
+ serviceSubtask1.setRemark(serviceSubtask1.getRemark() + ";鏃犻渶鍐嶆闅忚锛屼换鍔¤鏍囪涓嶅湪鎵ц");
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
return "鏃犻渶鍐嶆闅忚锛屼换鍔¤鏍囪涓嶅湪鎵ц";
} else if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
serviceSubtask1.setIsVisitAgain(2);
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
- serviceSubtask1.setRemark(serviceSubtask1.getRemark()+";鏃犻渶鍐嶆闅忚锛屾偅鑰呰鏍囪涓嶉渶瑕佽鏈嶅姟");
+ serviceSubtask1.setRemark(serviceSubtask1.getRemark() + ";鏃犻渶鍐嶆闅忚锛屾偅鑰呰鏍囪涓嶉渶瑕佽鏈嶅姟");
return "鏃犻渶鍐嶆闅忚锛屾偅鑰呰鏍囪涓嶉渶瑕佽鏈嶅姟";
} else if (ObjectUtils.isNotEmpty(serviceSubtask1.getIsVisitAgain()) && serviceSubtask1.getIsVisitAgain() == 2) {
return "鏃犻渶鍐嶆闅忚锛岃浠诲姟宸茬粡鍐嶆闅忚杩囦簡";
@@ -670,6 +676,11 @@
serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
+ serviceSubtask.setContinueContent(ObjectUtils.isNotEmpty(patTaskRelevance.getContinueContent()) ? patTaskRelevance.getContinueContent().toString() : null);
+ serviceSubtask.setContinueCount(patTaskRelevance.getContinueCount());
+ serviceSubtask.setContinueFlag(patTaskRelevance.getContinueFlag());
+ serviceSubtask.setContinueTimeNext(patTaskRelevance.getContinueTimeNext());
+ serviceSubtask.setContinueTimeNow(patTaskRelevance.getContinueTimeNow());
serviceSubtask.setCreateBy(serviceTask.getCreateBy());
serviceSubtask.setUpdateBy(serviceTask.getCreateBy());
serviceSubtask.setVisitTime(patTaskRelevance.getVisittime());
@@ -705,7 +716,7 @@
//淇敼鎿嶄綔锛岄渶瑕佸皢stopState鐘舵��+1
ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid());
//鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎
- ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
serviceSubtaskVO.setTaskid(serviceTask1.getTaskid());
serviceSubtaskVO.setSendstate(2L);
List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -887,6 +898,11 @@
serviceSubtask.setDrcode(patTaskRelevance.getDrcode());
serviceSubtask.setInhosptime(patTaskRelevance.getInhosptime());
serviceSubtask.setHospType(patTaskRelevance.getHospType());
+ serviceSubtask.setContinueContent(ObjectUtils.isNotEmpty(patTaskRelevance.getContinueContent()) ? patTaskRelevance.getContinueContent().toString() : null);
+ serviceSubtask.setContinueCount(patTaskRelevance.getContinueCount());
+ serviceSubtask.setContinueFlag(patTaskRelevance.getContinueFlag());
+ serviceSubtask.setContinueTimeNext(patTaskRelevance.getContinueTimeNext());
+ serviceSubtask.setContinueTimeNow(patTaskRelevance.getContinueTimeNow());
serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
@@ -911,7 +927,7 @@
}
}
// 鏈夊彲鑳戒細鎶婂彂閫侀『搴忎篃淇敼浜嗭紙闇�瑕佹牴鎹畉askId灏嗘墍鏈夌殑sendstate锛�=4,5,6鐨剆ubTask鎷夊嚭鏉ワ紝杩涜淇敼涓�涓嬶級
- ServiceSubtaskVO ssVo = new ServiceSubtaskVO();
+ ServiceSubtaskEntity ssVo = new ServiceSubtaskEntity();
ssVo.setTaskid(serviceTaskVO.getTaskid());
ssVo.setDelFlag("0");
List<Long> ssList = new ArrayList<>();
@@ -1698,7 +1714,7 @@
redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid(), count + 1, 120, TimeUnit.MINUTES);
phoneCallBackYQVO.setType("text");
- phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext())?ivrTaskTemplateScriptVO.getIvrtext():ivrTaskTemplateScriptVO.getScriptContent()));
+ phoneCallBackYQVO.setValue(ivrTaskTemplateScriptVO.getNoMatchText() + getObject(serviceSubtask, StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent()));
}
}
@@ -1993,11 +2009,12 @@
@Override
public Integer saveQuestionAnswerPhone(ServiceSubTaskDetailReq serviceSubTaskDetailReq) {
int i = 0;
+ log.info("淇濆瓨鐢佃瘽鍥炶皟鍐呭 saveQuestionAnswerPhone锛歿}", serviceSubTaskDetailReq);
if (StringUtils.isNotEmpty(serviceSubTaskDetailReq.getParam1())) {
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam1(), pri_key));
Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam2(), pri_key));
- ServiceSubtaskVO ivrTaskSingle = new ServiceSubtaskVO();
+ ServiceSubtaskEntity ivrTaskSingle = new ServiceSubtaskEntity();
ivrTaskSingle.setTaskid(tid);
ivrTaskSingle.setPatid(pid);
List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle);
@@ -2229,60 +2246,100 @@
@Cacheable(value = "sfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
log.info("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
- List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
-// List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
-
- // 鏍规嵁鏉′欢杩涜鍒嗙粍
- Map<String, List<ServiceSubtask>> collect = new HashMap<>();
-
- if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) {
+ String groupKey = "drcode";
+ if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && !serviceSubtaskCountReq.getLeavehospitaldistrictcodes().isEmpty()) {
if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+ groupKey = "drcode";
} else {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+ groupKey = "leavehospitaldistrictcode";
}
- } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) {
+ } else if (serviceSubtaskCountReq.getDeptcodes() != null && !serviceSubtaskCountReq.getDeptcodes().isEmpty()) {
if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+ groupKey = "drcode";
} else {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+ groupKey = "deptcode";
}
}
-
- for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
+ List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
+ // 鏍规嵁鏉′欢杩涜鍒嗙粍
+ Map<String, List<ServiceSubtask>> collect = new HashMap<>();
+ serviceSubtaskCountReq.setGroupKey(groupKey);
+ List<String> groupKeyList = serviceSubtaskMapper.getSfStatisticsGroupKey(serviceSubtaskCountReq);
+ serviceSubtaskCountReq.setGroupKeyList(groupKeyList);
+ List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
+ switch (groupKey) {
+ case "deptcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptcode()).orElse("Unknown")));
+ break;
+ case "drcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown")));
+ break;
+ case "leavehospitaldistrictcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictcode()).orElse("Unknown")));
+ break;
+ default:
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown")));
+ break;
+ }
+ //鑾峰彇鍙婃椂鐜囩粺璁″悎闆�
+ Map<String, Map<String, Object>> jsRates = getSsRateForSfStatistics(serviceSubtaskCountReq, collect);
+ for (String collectKey : collect.keySet()) {
+ List<ServiceSubtask> serviceSubtaskList = collect.get(collectKey);
if (CollectionUtils.isEmpty(serviceSubtaskList)) {
continue;
}
- ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList);
-
- //鍙婃椂鐜�
- ServiceSubtask ss = new ServiceSubtask();
- ss.setOrgid(serviceSubtaskList.get(0).getOrgid());
-
- // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇�
- if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- ss.setDrcode(serviceSubtaskList.get(0).getDrcode());
- } else {
- if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
- ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
- } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) {
- ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+ ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList, serviceSubtaskCountReq.getFollowUpCountStyle());
+ if (ObjectUtils.isNotEmpty(jsRates)) {
+ Map<String, Object> jsRateMap = jsRates.get(collectKey);
+ BigDecimal jsRate = new BigDecimal("0");
+ if (ObjectUtils.isNotEmpty(jsRateMap) && ObjectUtils.isNotEmpty(jsRateMap.get("rate"))) {
+ jsRate = new BigDecimal(jsRateMap.get("rate").toString());
}
+ Double jsRateDouble = (jsRate.setScale(4, RoundingMode.HALF_UP)).doubleValue();
+ statistic.setRate(jsRateDouble);
}
-
- ss.setStarttime(serviceSubtaskCountReq.getStartTime());
- ss.setEndtime(serviceSubtaskCountReq.getEndTime());
- if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
- ss.setEndtime(new Date());
- }
- Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
- statistic.setRate(jsRate);
if (ObjectUtils.isNotEmpty(statistic)) {
serviceSubtaskStatistics.add(statistic);
}
}
return serviceSubtaskStatistics;
+ }
+
+ /**
+ * 闅忚缁熻-鍙婃椂鐜囩粺璁�
+ *
+ * @param serviceSubtaskCountReq
+ * @param collect
+ * @return
+ */
+ public Map<String, Map<String, Object>> getSsRateForSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq, Map<String, List<ServiceSubtask>> collect) {
+ if (ObjectUtils.isEmpty(serviceSubtaskCountReq)) {
+ return null;
+ }
+ String groupKey = serviceSubtaskCountReq.getGroupKey();
+ if (StringUtils.isEmpty(groupKey)) {
+ return null;
+ }
+ List<String> groupKeyList = new ArrayList<>(collect.keySet());
+ if (ObjectUtils.isEmpty(groupKeyList)) {
+ return null;
+ }
+ //鍙婃椂鐜囩粺璁�
+ ServiceSubtaskEntity ssRate = new ServiceSubtaskEntity();
+ ssRate.setOrgid(serviceSubtaskCountReq.getOrgid());
+ ssRate.setStarttime(serviceSubtaskCountReq.getStartTime());
+ ssRate.setEndtime(serviceSubtaskCountReq.getEndTime());
+ if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
+ ssRate.setEndtime(new Date());
+ }
+ ssRate.setGroupKey(groupKey);
+ ssRate.setGroupKeyList(groupKeyList);
+ Map<String, Map<String, Object>> jsRates = new HashMap<>();
+ if (!collect.isEmpty()) {
+ jsRates = serviceSubtaskMapper.selectTimelyRateBatch(ssRate);
+ }
+ return jsRates;
}
@Override
@@ -2383,7 +2440,6 @@
}
-
/**
* 鑾峰彇婊℃剰搴﹂鐩�婚噺
* type : 1-绉戝 2鐥呭尯
@@ -2424,7 +2480,7 @@
List<IvrTaskTemplateScript> ivrTaskTemplateScripts = iIvrTaskTemplateScriptService.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript);
if (CollectionUtils.isNotEmpty(ivrTaskTemplateScripts)) {
//闇�瑕佸厛璁$畻鍑哄彂閫侀噺锛屽啀涔樹互鍗曚釜闂埜婊℃剰搴﹂鐩暟閲忥紝寰楀埌婊℃剰搴﹂鐩�婚噺锛堝寘鍚簡鏈仛鐨勶級
- ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
List<Long> sendstates = new ArrayList<>(Arrays.asList(3L, 5L, 6L));
serviceSubtaskVO.setSendstates(sendstates);
@@ -2443,11 +2499,11 @@
svyTaskTemplateScript.setCategoryid(svyCategoryid);
List<SvyTaskTemplateScript> svyTaskTemplateScriptList = svyTaskTemplateScriptService.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
if (CollectionUtils.isNotEmpty(svyTaskTemplateScriptList)) {
- ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
- serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
+ ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity();
+ serviceSubtaskEntity.setTaskid(serviceTask.getTaskid());
List<Long> sendstates = new ArrayList<>(Arrays.asList(3L, 5L, 6L));
- serviceSubtaskVO.setSendstates(sendstates);
- List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskBySendstate(serviceSubtaskVO);
+ serviceSubtaskEntity.setSendstates(sendstates);
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskBySendstate(serviceSubtaskEntity);
if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
int mydtmzlCount = svyTaskTemplateScriptList.size() * serviceSubtaskList.size();
mydtmzlsum.add(new BigDecimal(mydtmzlCount));
@@ -2480,7 +2536,7 @@
}
- private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) {
+ private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList, String followUpCountStyle) {
ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
//鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮
DecimalFormat percentFormat = new DecimalFormat("##.##%");
@@ -2514,7 +2570,7 @@
//璁板綍鍐嶆寰呴殢璁胯鎯�
List<ServiceSubtask> pendingFollowUpAgainInfo = new ArrayList<>();
//璁板綍鍐嶆闅忚鎴愬姛璇︽儏
- List<ServiceSubtask> followUpSuccessAgainInfo= new ArrayList<>();
+ List<ServiceSubtask> followUpSuccessAgainInfo = new ArrayList<>();
//璁板綍鍐嶆闅忚澶辫触璇︽儏
List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
//璁板綍棣栨闅忚浜哄伐璇︽儏
@@ -2522,13 +2578,13 @@
//璁板綍棣栨闅忚鐭俊璇︽儏
List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
//璁板綍棣栨闅忚寰俊璇︽儏
- List<ServiceSubtask> wechatAgainInfo= new ArrayList<>();
+ List<ServiceSubtask> wechatAgainInfo = new ArrayList<>();
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
//鏃犻渶闅忚浜烘
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L);
- if (serviceSubtask.getTaskSituation() !=null && serviceSubtask.getTaskSituation() == 6) {
+ if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 6) {
serviceSubtaskStatistic.setFilterCount(serviceSubtaskStatistic.getFilterCount() + 1L);
filterServiceSubtasks.add(serviceSubtask);
}
@@ -2550,36 +2606,62 @@
serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
pendingFollowUpInfo.add(serviceSubtask);
}
- //棣栨闅忚鎴愬姛
- if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) {
- serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
- followUpSuccessInfo.add(serviceSubtask);
- }
//棣栨闅忚澶辫触
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
followUpFailInfo.add(serviceSubtask);
+ }
+ /**
+ * 涓嶅悓缁熻鏂瑰紡涓嬩笉鍚岀殑闅忚鎴愬姛鏁� 鍙傛暟 followUpCountStyle 鎺у埗
+ */
+ if (StringUtils.isNotEmpty(followUpCountStyle) && followUpCountStyle.equals("1")) {
+ //棣栨闅忚鎴愬姛
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6L)) {
+ serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+ followUpSuccessInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚浜哄伐 (涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
+ serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
+ manualInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚鐭俊(涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
+ serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
+ smsInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚寰俊(涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
+ serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
+ wechatInfo.add(serviceSubtask);
+ }
+ } else {
+ //棣栨闅忚鎴愬姛 - 缁熻鏃跺�欏姞涓婁笉鎵ц鐨勶紝宸插彂閫佺殑
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+ followUpSuccessInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚浜哄伐 (缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+ serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
+ manualInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚鐭俊(缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+ serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
+ smsInfo.add(serviceSubtask);
+ }
+ //棣栨闅忚寰俊(缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+ serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
+ wechatInfo.add(serviceSubtask);
+ }
}
if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccess() + serviceSubtaskStatistic.getFollowUpFail()) / serviceSubtaskStatistic.getNeedFollowUp();
serviceSubtaskStatistic.setFollowUpRate(percentFormat.format(rate));
} else {
serviceSubtaskStatistic.setFollowUpRate("0.00%");
- }
- //棣栨闅忚浜哄伐
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
- serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
- manualInfo.add(serviceSubtask);
- }
- //棣栨闅忚鐭俊
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
- serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
- smsInfo.add(serviceSubtask);
- }
- //棣栨闅忚寰俊
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
- serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
- wechatInfo.add(serviceSubtask);
}
//缁撴灉寮傚父
if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -2597,36 +2679,62 @@
serviceSubtaskStatistic.setPendingFollowUpAgain(serviceSubtaskStatistic.getPendingFollowUpAgain() + 1L);
pendingFollowUpAgainInfo.add(serviceSubtask);
}
- //鍐嶆闅忚鎴愬姛
- if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) {
- serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
- followUpSuccessAgainInfo.add(serviceSubtask);
- }
//鍐嶆闅忚澶辫触
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
serviceSubtaskStatistic.setFollowUpFailAgain(serviceSubtaskStatistic.getFollowUpFailAgain() + 1L);
followUpFailAgainInfo.add(serviceSubtask);
+ }
+ /**
+ * 涓嶅悓缁熻鏂瑰紡涓嬩笉鍚岀殑闅忚鎴愬姛鏁� 鍙傛暟 followUpCountStyle 鎺у埗
+ */
+ if (StringUtils.isNotEmpty(followUpCountStyle) && followUpCountStyle.equals("1")) {
+ //鍐嶆闅忚鎴愬姛
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) {
+ serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+ followUpSuccessAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚浜哄伐(涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
+ serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
+ manualAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚鐭俊(涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
+ serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
+ smsAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚寰俊(涓嶇粺璁′笉鎵ц)
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
+ serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
+ wechatAgainInfo.add(serviceSubtask);
+ }
+ } else {
+ //鍐嶆闅忚鎴愬姛
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(1L) || serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+ followUpSuccessAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚浜哄伐(缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
+ serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
+ manualAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚鐭俊(缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
+ serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
+ smsAgainInfo.add(serviceSubtask);
+ }
+ //鍐嶆闅忚寰俊(缁熻涓嶆墽琛�)
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
+ serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
+ wechatAgainInfo.add(serviceSubtask);
+ }
}
if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccessAgain() + serviceSubtaskStatistic.getFollowUpFailAgain()) / serviceSubtaskStatistic.getNeedFollowUpAgain();
serviceSubtaskStatistic.setFollowUpRateAgain(percentFormat.format(rate));
} else {
serviceSubtaskStatistic.setFollowUpRateAgain("0.00%");
- }
- //鍐嶆闅忚浜哄伐
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
- serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
- manualAgainInfo.add(serviceSubtask);
- }
- //鍐嶆闅忚鐭俊
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
- serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
- smsAgainInfo.add(serviceSubtask);
- }
- //鍐嶆闅忚寰俊
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
- serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
- wechatAgainInfo.add(serviceSubtask);
}
//鍐嶆寮傚父
if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -2805,7 +2913,7 @@
//鑾峰彇闅忚缁熻
List<Long> subTaskIds = new ArrayList<>();
- if(ObjectUtils.isNotEmpty(serviceSubtaskList)){
+ if (ObjectUtils.isNotEmpty(serviceSubtaskList)) {
subTaskIds = serviceSubtaskList.stream().map(ServiceSubtask::getId) // 鎻愬彇瀛楁
.filter(Objects::nonNull) // 杩囨护 null 鍊�
.filter(id -> ObjectUtils.isNotEmpty(id)) // 杩囨护绌哄瓧绗︿覆锛堝彲閫夛級
@@ -3071,59 +3179,66 @@
@Override
@Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
public List<ServiceSubtaskStatistic> getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq) {
- log.error("getSfStatisticsScript鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
+ log.info("getSfStatisticsScript鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
// 鏍规嵁鏉′欢杩涜鍒嗙粍
Map<String, List<ServiceSubtask>> collect = new HashMap<>();
- String orgid = null;
-
- if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) {
+ String groupKey = "drcode";
+ if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && !serviceSubtaskCountReq.getLeavehospitaldistrictcodes().isEmpty()) {
if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
-
+ groupKey = "drcode";
} else {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+ groupKey = "leavehospitaldistrictcode";
}
- } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) {
+ } else if (serviceSubtaskCountReq.getDeptcodes() != null && !serviceSubtaskCountReq.getDeptcodes().isEmpty()) {
if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+ groupKey = "drcode";
} else {
- collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+ groupKey = "deptcode";
}
}
- for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
+ serviceSubtaskCountReq.setGroupKey(groupKey);
+ List<String> groupKeyList = serviceSubtaskMapper.getSfStatisticsGroupKey(serviceSubtaskCountReq);
+ serviceSubtaskCountReq.setGroupKeyList(groupKeyList);
+ List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq);
+ switch (groupKey) {
+ case "deptcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptcode()).orElse("Unknown")));
+ break;
+ case "drcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown")));
+ break;
+ case "leavehospitaldistrictcode":
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictcode()).orElse("Unknown")));
+ break;
+ default:
+ collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown")));
+ break;
+ }
+ //鑾峰彇鍙婃椂鐜囩粺璁″悎闆�
+ Map<String, Map<String, Object>> jsRates = getSsRateForSfStatistics(serviceSubtaskCountReq, collect);
+ for (String collectKey : collect.keySet()) {
+ List<ServiceSubtask> serviceSubtaskList = collect.get(collectKey);
if (CollectionUtils.isEmpty(serviceSubtaskList)) {
continue;
}
ServiceSubtaskStatistic statistic = getStatisticCategory(serviceSubtaskList, serviceSubtaskCountReq);
- //鍙婃椂鐜�
- ServiceSubtask ss = new ServiceSubtask();
- orgid = serviceSubtaskList.get(0).getOrgid();
- ss.setOrgid(orgid);
-
- // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇�
- if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
- ss.setDrcode(serviceSubtaskList.get(0).getDrcode());
- } else {
- if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
- ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
- } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) {
- ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+ if (ObjectUtils.isNotEmpty(jsRates)) {
+ Map<String, Object> jsRateMap = jsRates.get(collectKey);
+ BigDecimal jsRate = new BigDecimal("0");
+ if (ObjectUtils.isNotEmpty(jsRateMap) && ObjectUtils.isNotEmpty(jsRateMap.get("rate"))) {
+ jsRate = new BigDecimal(jsRateMap.get("rate").toString());
}
+ Double jsRateDouble = (jsRate.setScale(4, RoundingMode.HALF_UP)).doubleValue();
+ statistic.setRate(jsRateDouble);
}
-
- ss.setStarttime(serviceSubtaskCountReq.getStartTime());
- ss.setEndtime(serviceSubtaskCountReq.getEndTime());
- if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
- ss.setEndtime(new Date());
- }
- Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
- statistic.setRate(jsRate);
if (ObjectUtils.isNotEmpty(statistic)) {
serviceSubtaskStatistics.add(statistic);
}
}
+
+ //缁熻闅忚棰樼洰鍒嗙被
if (CollectionUtils.isNotEmpty(serviceSubtaskStatistics)) {
for (ServiceSubtaskStatistic serviceSubtaskStatistic : serviceSubtaskStatistics) {
//鑾峰彇婊℃剰搴﹂鐩�婚噺
@@ -3132,14 +3247,14 @@
BigDecimal finishedSum = new BigDecimal(0);
//瀹屾垚姣斾緥
Double finishedPercentage = null;
- if(ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyAllCount())){
- finishedSum = new BigDecimal(serviceSubtaskStatistic.getJoyAllCount());
+ if (ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyCount())) {
+ finishedSum = new BigDecimal(serviceSubtaskStatistic.getJoyCount());
}
- if(ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyCount())){
- sum = new BigDecimal(serviceSubtaskStatistic.getJoyCount());
+ if (ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyAllCount())) {
+ sum = new BigDecimal(serviceSubtaskStatistic.getJoyAllCount());
}
- if(sum.intValue() != 0){
+ if (sum.intValue() != 0) {
finishedPercentage = finishedSum.divide(sum, 2, RoundingMode.HALF_UP).doubleValue();
}
serviceSubtaskStatistic.setJoyAllCount(sum.intValue());
@@ -3157,7 +3272,7 @@
List<ServiceSubtaskScriptCount> allCounts = new ArrayList<>();
List<ServiceSubtaskScriptCount> allItemCounts = new ArrayList<>();
String type = serviceSubtaskCountReq.getType();
- if(ObjectUtils.isEmpty(type)){
+ if (ObjectUtils.isEmpty(type)) {
//鏌ヨ璇煶缁熻鏄庣粏
serviceSubtaskCountReq.setType("1");
List<ServiceSubtaskScriptCount> ivyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
@@ -3172,26 +3287,24 @@
allCounts.addAll(svyCounts);
allItemCounts.addAll(ivyItemCounts);
allItemCounts.addAll(svyItemCounts);
- }else {
+ } else {
allCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
allItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
}
- for(ServiceSubtaskScriptCount count : allCounts){
+ for (ServiceSubtaskScriptCount count : allCounts) {
Map<String, ServiceSubtaskScriptCount> itemCountMap = new HashMap<>();
//闂嵎鍔犱笂绌虹櫧閫夐」
- if(ObjectUtils.isNotEmpty(count.getTemplateid())
- && ObjectUtils.isNotEmpty(count.getSubtaskType())
- && count.getSubtaskType().equals("2")){
+ if (ObjectUtils.isNotEmpty(count.getTemplateid()) && ObjectUtils.isNotEmpty(count.getSubtaskType()) && count.getSubtaskType().equals("2")) {
SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = new SvyTaskTemplateScriptVO();
svyTaskTemplateScriptVO.setId(count.getScriptid());
svyTaskTemplateScriptVO.setOrgid(serviceSubtaskCountReq.getOrgid());
SvyTaskTemplateScriptVO svyTaskTemplateScriptResultVo = svyTaskTemplateScriptService.selectInfoByCondition(svyTaskTemplateScriptVO);
- if(ObjectUtils.isNotEmpty(svyTaskTemplateScriptResultVo)){
+ if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptResultVo)) {
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptResultVo.getSvyTaskTemplateTargetoptions();
- if(ObjectUtils.isNotEmpty(svyTaskTemplateTargetoptions)){
+ if (ObjectUtils.isNotEmpty(svyTaskTemplateTargetoptions)) {
//濉叆绌虹櫧淇℃伅
- svyTaskTemplateTargetoptions.forEach(targetoption ->{
+ svyTaskTemplateTargetoptions.forEach(targetoption -> {
ServiceSubtaskScriptCount emptyCount = new ServiceSubtaskScriptCount();
emptyCount.setScriptid(count.getScriptid());
emptyCount.setScriptContent(count.getScriptContent());
@@ -3204,14 +3317,14 @@
emptyCount.setChosenQuantity(0);
emptyCount.setChosenPercentage("0.0");
emptyCount.setOptionText(targetoption.getOptioncontent());
- itemCountMap.put(targetoption.getOptioncontent(),emptyCount);
+ itemCountMap.put(targetoption.getOptioncontent(), emptyCount);
});
}
}
}
- allItemCounts.forEach(itemCount ->{
- if(ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())){
- if(count.getScriptid().equals(itemCount.getScriptid())){
+ allItemCounts.forEach(itemCount -> {
+ if (ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())) {
+ if (count.getScriptid().equals(itemCount.getScriptid())) {
//鏀惧叆缁熻淇℃伅
itemCount.setScriptContent(count.getScriptContent());
itemCount.setScriptType(count.getScriptType());
@@ -3221,9 +3334,9 @@
itemCount.setCompletedPercentage(count.getCompletedPercentage());
itemCount.setTemplateid(count.getTemplateid());
//璁$畻閫夋嫨姣斾緥
- int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
+ int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity()) ? itemCount.getChosenQuantity() : 0;
int completedQuantity = itemCount.getCompletedQuantity();
- if(ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0){
+ if (ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0) {
BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
itemCount.setChosenPercentage(chosenPercentage.toString());
}
@@ -3233,7 +3346,7 @@
});
List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>(itemCountMap.values());
count.setDetails(itemCounts);
- result.put(count.getScriptid().toString(),count);
+ result.put(count.getScriptid().toString(), count);
}
return result;
}
@@ -3247,6 +3360,7 @@
* @return
*/
public Boolean setFailPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) {
+ log.info("setFailPreachForm 闅忚娴佺▼澶勭悊 serviceSubtask:{}, preachform:{}, remark:{}, failSendstate:{}", serviceSubtask, preachform, remark, failSendstate);
//灏嗙姸鎬佽缃负澶辫触
ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
@@ -3273,6 +3387,7 @@
if (serviceSubtaskPreachform1.getSort() == spSize.size() && failSendstate.equals("4")) {
serviceSubtask.setCurrentPreachform(preachform);
serviceSubtask.setSendstate(5L);
+ serviceSubtask.setRemark("setFailPreachForm鏂规硶 褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏澶辫触浜�");
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
return true;
}
@@ -3312,6 +3427,7 @@
/**
* 璁$畻鎬昏琛�
+ *
* @param statistics 缁熻鏁版嵁鍒楄〃
* @return 鎬昏琛屾暟鎹�
*/
@@ -3419,8 +3535,8 @@
diagname.setLongSendTime(subtask.getLongSendTime());
diagname.setEndtime(subtask.getEndtime());
//璁$畻鍑洪櫌澶╂暟
- if(!Objects.isNull(diagname.getEndtime())){
- Integer endDay = DateUtils.differentDaysByMillisecond(diagname.getEndtime(),new Date());
+ if (!Objects.isNull(diagname.getEndtime())) {
+ Integer endDay = DateUtils.differentDaysByMillisecond(diagname.getEndtime(), new Date());
diagname.setEndDay(endDay);
}
diagname.setSfzh(subtask.getSfzh());
--
Gitblit v1.9.3