From fd12c3a4d5c0a247c89ab59faba189075a302ffd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 09 六月 2025 18:50:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 539 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 447 insertions(+), 92 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 38d74a8..52382bf 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -8,7 +8,6 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.*;
import com.smartor.common.FtpService;
-import com.smartor.common.SendService;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.*;
import com.smartor.mapper.*;
@@ -24,8 +23,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
@@ -66,6 +65,12 @@
private IServiceTaskdeptService serviceTaskdeptService;
@Autowired
+ private IServiceTaskdiagService serviceTaskdiagService;
+
+ @Autowired
+ private IServiceTaskoperService serviceTaskoperService;
+
+ @Autowired
private RedisCache redisCache;
@Autowired
@@ -86,6 +91,12 @@
@Autowired
private FtpService ftpService;
+ @Autowired
+ private PatMedInhospMapper patMedInhospMapper;
+
+ @Autowired
+ private PatArchiveMapper patArchiveMapper;
+
@Value("${pri_key}")
private String pri_key;
@@ -97,9 +108,6 @@
@Autowired
private RedisTemplate redisTemplate;
-
- @Autowired
- private SendService sendService;
@Value("${hangup}")
private String hangup;
@@ -124,6 +132,8 @@
@Value("${phoneUpEveryHour}")
private Integer phoneUpEveryHour;
+ @Value("${phoneEndHour}")
+ private Integer phoneEndHour;
/**
* 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
@@ -145,6 +155,10 @@
@Override
public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO) {
return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ }
+
+ public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskVO serviceSubtaskVO) {
+ return serviceSubtaskMapper.selectServiceSubtaskListAgain(serviceSubtaskVO);
}
@Override
@@ -197,7 +211,7 @@
patTaskRelevance.setPhone(serviceSubtask1.getPhone());
patTaskRelevance.setTelcode(serviceSubtask1.getPhone());
patTaskRelevance.setAddr(serviceSubtask1.getAddr());
- patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
+ patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname());
patTaskRelevance.setPatid(serviceSubtask1.getPatid());
patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate());
patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode());
@@ -224,7 +238,7 @@
patTaskRelevance.setDeptName(serviceSubtask1.getDeptname());
patTaskRelevance.setDeptCode(serviceSubtask1.getDeptcode());
patTaskRelevance.setBedNo(serviceSubtask1.getBedNo());
- patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
+ patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname());
patTaskRelevance.setPatid(serviceSubtask1.getPatid());
patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate());
patTaskRelevance.setLeavehospitaldistrictcode(serviceSubtask1.getLeavehospitaldistrictcode());
@@ -248,8 +262,6 @@
@Override
public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) {
List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
- //鏍规嵁鍑洪櫌 鏃堕棿鍊掑簭
-// List<ServiceSubtask> sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime).reversed()).collect(Collectors.toList());
return selectServiceSubtaskList;
}
@@ -277,11 +289,13 @@
Integer fssb = 0;
Integer yfs = 0;
Integer blq = 0;
+ Integer dsf = 0;
for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1;
if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
- if (serviceSubtask.getSendstate() == 3L) yfs = yfs + 1;
+ if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
+ if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
if (serviceSubtask.getExcep().equals("1")) yc = yc + 1;
}
@@ -291,6 +305,7 @@
map.put("fssb", fssb);
map.put("yfs", yfs);
map.put("blq", blq);
+ map.put("dsf", dsf);
return map;
}
@@ -308,6 +323,57 @@
}
/**
+ * 鍐嶆鏂板鍗曚竴浠诲姟锛堥殢璁匡級
+ *
+ * @param serviceSubtask 鍐嶆鏂板鍗曚竴浠诲姟锛堥殢璁匡級
+ * @return 缁撴灉
+ */
+ @Override
+ public String addSubTaskAgain(ServiceSubtask serviceSubtask) {
+ ServiceSubtask serviceSubtask1 = selectServiceSubtaskById(serviceSubtask.getId());
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setPatid(serviceSubtask1.getPatid());
+ patMedInhosp.setInhospstate("0");
+ List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask1.getPatid());
+
+ if (patMedInhospList.size() > 0) {
+ serviceSubtask1.setIsVisitAgain(2);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ return "鏃犻渶鍐嶆闅忚锛屾偅鑰呭啀鍏ラ櫌浜�";
+ } else if (serviceSubtask1.getSendstate() == 4L) {
+ serviceSubtask1.setIsVisitAgain(2);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ return "鏃犻渶鍐嶆闅忚锛屼换鍔¤鏍囪涓嶅湪鎵ц";
+ } else if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
+ serviceSubtask1.setIsVisitAgain(2);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ return "鏃犻渶鍐嶆闅忚锛屾偅鑰呰鏍囪涓嶉渶瑕佽鏈嶅姟";
+ } else if (ObjectUtils.isNotEmpty(serviceSubtask1.getIsVisitAgain()) && serviceSubtask1.getIsVisitAgain() == 2) {
+ return "鏃犻渶鍐嶆闅忚锛岃浠诲姟宸茬粡鍐嶆闅忚杩囦簡";
+ }
+ //鏂板鍐嶆闅忚浠诲姟
+ ServiceSubtask serviceSubtask2 = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtask.class);
+ serviceSubtask2.setId(null);
+ serviceSubtask2.setUpid(serviceSubtask1.getId().intValue());
+ serviceSubtask2.setVisitCount(serviceSubtask1.getVisitCount() + 1);
+ serviceSubtask2.setSendstate(2L);
+ serviceSubtask2.setCreateTime(new Date());
+ serviceSubtask2.setUpdateTime(new Date());
+ serviceSubtask2.setVisitType(serviceSubtask.getVisitType());
+ serviceSubtask2.setVisitDeptCode(serviceSubtask.getVisitDeptCode());
+ serviceSubtask2.setVisitDeptName(serviceSubtask.getVisitDeptName());
+ int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask2);
+ if (i == 1) {
+ //鏂板鎴愬姛鍚庯紝闇�瑕佸皢涔嬪墠鐨勪换鍔¤缃负涓嶈鍐嶉殢璁匡紙闃叉閲嶅鐐癸紝鐒跺悗閲嶅鐢熸垚锛�
+ serviceSubtask1.setIsVisitAgain(2);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ return "鍐嶆闅忚浠诲姟鍒涘缓鎴愬姛";
+ }
+ return "鍐嶆闅忚浠诲姟鍒涘缓澶辫触锛屽啀璇锋閲嶈瘯";
+ }
+
+ /**
* 淇敼鍗曚竴浠诲姟锛堥殢璁匡級
*
* @param serviceSubtask 鍗曚竴浠诲姟锛堥殢璁匡級
@@ -316,6 +382,8 @@
@Override
public Boolean updateServiceSubtask(ServiceSubtask serviceSubtask) {
serviceSubtask.setUpdateTime(DateUtils.getNowDate());
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6)
+ serviceSubtask.setFinishtime(new Date());
return serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
}
@@ -366,44 +434,94 @@
if (serviceTask.getSendState() == null) {
serviceTask.setSendState(1L);
serviceTaskVO.setSendState(1L);
+ } else {
+ serviceTask.setSendState(serviceTaskVO.getSendState());
}
if (StringUtils.isNotEmpty(serviceTaskVO.getLibtemplateid())) {
serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid());
serviceTask.setLibtemplatename(serviceTaskVO.getLibtemplatename());
}
- serviceTask.setTemplateid(tempid);
- serviceTask.setTemplatename(tempName);
+ if (serviceTaskVO.getTemplateid() != null) {
+ serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
+ serviceTask.setTemplatename(serviceTaskVO.getTemplatename());
+ } else {
+ serviceTask.setTemplateid(tempid);
+ serviceTask.setTemplatename(tempName);
+ }
serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes());
serviceTask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
- if (serviceTaskVO.getLongTask() == 1L) serviceTask.setSendState(2L);
+ if (serviceTaskVO.getLongTask() == 1) serviceTask.setSendState(2L);
+ serviceTask.setCreateTime(new Date());
+ serviceTask.setUpdateTime(new Date());
serviceTaskService.insertServiceTask(serviceTask);
- ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
- serviceTaskdept.setTaskId(serviceTask.getTaskid());
- serviceTaskdept.setTaskName(serviceTask.getTaskName());
- serviceTaskdept.setLongtask(0L);
- serviceTaskdept.setGuid(serviceTask.getGuid());
- serviceTaskdept.setOrgid(serviceTask.getOrgid());
- serviceTaskdept.setOrgid(serviceTask.getOrgid());
- if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
- if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
- String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
- for (String deptCode : deptcodes) {
- serviceTaskdept.setDeptCode(deptCode);
- serviceTaskdept.setDeptType("1");
- serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
- serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+ log.error("----serviceTaskVO.getAppltype()鐨勫�间负锛歿}", serviceTaskVO.getAppltype());
+ if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) {
+ if (serviceTaskVO.getAppltype().equals("3")) {
+ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
+ serviceTaskdiag.setTaskId(serviceTask.getTaskid());
+ serviceTaskdiag.setTaskName(serviceTask.getTaskName());
+ serviceTaskdiag.setLongtask(0L);
+ if (serviceTaskVO.getLongTask() == 1) serviceTaskdiag.setLongtask(1L);
+ serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code());
+ serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
+ serviceTaskdiag.setGuid(serviceTask.getGuid());
+ serviceTaskdiag.setOrgid(serviceTask.getOrgid());
+ serviceTaskdiag.setCreateTime(new Date());
+ log.error("----serviceTaskdiag鐨勫�间负锛歿}", serviceTaskdiag);
+ if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
+ String[] Icd10codes = serviceTaskVO.getIcd10code().split(",");
+ for (String icd10code : Icd10codes) {
+ serviceTaskdiag.setIcd10code(icd10code);
+ serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
+ }
+ }
+ } else if (serviceTaskVO.getAppltype().equals("4")) {
+ ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
+ serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
+ serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
+ serviceTaskoper.setTaskId(serviceTask.getTaskid());
+ serviceTaskoper.setTaskName(serviceTask.getTaskName());
+ serviceTaskoper.setLongtask(0L);
+ serviceTaskoper.setGuid(serviceTask.getGuid());
+ serviceTaskoper.setOrgid(serviceTask.getOrgid());
+ serviceTaskoper.setCreateTime(new Date());
+ if (serviceTaskVO.getLongTask() == 1) serviceTaskoper.setLongtask(1L);
+ if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
+ String[] opcodes = serviceTaskVO.getOpcode().split(",");
+ for (String opcode : opcodes) {
+ serviceTaskoper.setOpcode(opcode);
+ log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
+ serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
+ }
+ }
+
+ } else {
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setTaskId(serviceTask.getTaskid());
+ serviceTaskdept.setTaskName(serviceTask.getTaskName());
+ serviceTaskdept.setOrgid(serviceTask.getOrgid());
+ serviceTaskdept.setLongtask(0L);
+ if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
+ if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
+ String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
+ for (String deptCode : deptcodes) {
+ serviceTaskdept.setDeptCode(deptCode);
+ serviceTaskdept.setDeptType("1");
+ serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
+ serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+ }
+ }
+ if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
+ String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
+ for (String districtcode : leavehospitaldistrictcodes) {
+ serviceTaskdept.setDeptCode(districtcode);
+ serviceTaskdept.setDeptType("2");
+ serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
+ serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+ }
+ }
}
}
- if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
- String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
- for (String districtcode : leavehospitaldistrictcodes) {
- serviceTaskdept.setDeptCode(districtcode);
- serviceTaskdept.setDeptType("2");
- serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
- serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
- }
- }
-//
if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) {
Map<String, Integer> map = new HashMap<>();
map.put("taskId", serviceTask.getTaskid().intValue());
@@ -440,9 +558,14 @@
serviceSubtask.setDrname(patTaskRelevance.getDrname());
serviceSubtask.setDrcode(patTaskRelevance.getDrcode());
serviceSubtask.setInhosptime(patTaskRelevance.getInhosptime());
+ serviceSubtask.setLeaveicd10code(patTaskRelevance.getLeaveicd10code());
+ serviceSubtask.setLeavediagname(patTaskRelevance.getLeavediagname());
serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
+ serviceSubtask.setCreateBy(serviceTask.getCreateBy());
+ serviceSubtask.setUpdateBy(serviceTask.getCreateBy());
+ serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime());
if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
@@ -456,53 +579,156 @@
serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
//淇敼鎿嶄綔锛岄渶瑕佸皢stopState鐘舵��+1
ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid());
- long l = serviceTask1.getStopState() + 1;
- serviceTask.setStopState(l);
+// long l = serviceTask1.getStopState() + 1;
+// serviceTask.setStopState(l);
+ //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎
+ ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+ serviceSubtaskVO.setTaskid(serviceTask1.getTaskid());
+ serviceSubtaskVO.setSendstate(2L);
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ serviceSubtaskVO.setSendstate(1L);
+ List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+ if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1);
+ } else {
+ if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1;
+ }
+ if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ log.error("insertOrUpdateTask闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString());
+ serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
+ redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString());
+ redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString());
+ }
+ }
+
if (serviceTaskVO.getLibtemplateid() != null)
serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString());
serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
serviceTask.setLongTask(serviceTaskVO.getLongTask());
+ serviceTask.setUpdateTime(new Date());
serviceTaskService.updateServiceTask(serviceTask);
- ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
- serviceTaskdept.setTaskId(serviceTask.getTaskid());
- serviceTaskdept.setTaskName(serviceTask.getTaskName());
- serviceTaskdept.setLongtask(0L);
- if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
- if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
- String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
- for (String deptCode : deptcodes) {
- serviceTaskdept.setDeptCode(deptCode);
- serviceTaskdept.setDeptType("1");
- serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
+ if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) {
- ServiceTaskdept st = new ServiceTaskdept();
- st.setDeptCode(deptCode);
- st.setTaskId(serviceTask.getTaskid());
- List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
- if (CollectionUtils.isEmpty(serviceTaskdepts)) {
- serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
- } else {
- serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+
+ if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
+ String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
+ for (String deptCode : deptcodes) {
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setTaskId(serviceTask.getTaskid());
+ serviceTaskdept.setTaskName(serviceTask.getTaskName());
+ serviceTaskdept.setLongtask(0L);
+ serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
+ if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
+ serviceTaskdept.setDeptCode(deptCode);
+ serviceTaskdept.setDeptType("1");
+ serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
+ ServiceTaskdept st = new ServiceTaskdept();
+ st.setDeptCode(deptCode);
+ st.setTaskId(serviceTask.getTaskid());
+ List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
+ if (CollectionUtils.isEmpty(serviceTaskdepts)) {
+ serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+ } else {
+ serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+ }
}
}
- }
- if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
- String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
- for (String districtcode : leavehospitaldistrictcodes) {
- serviceTaskdept.setDeptCode(districtcode);
- serviceTaskdept.setDeptType("2");
- serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
- //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
- ServiceTaskdept st = new ServiceTaskdept();
- st.setDeptCode(districtcode);
- st.setTaskId(serviceTask.getTaskid());
- List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
- if (CollectionUtils.isEmpty(serviceTaskdepts)) {
- serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
- } else {
- serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+ if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
+ String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
+ for (String districtcode : leavehospitaldistrictcodes) {
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setTaskId(serviceTask.getTaskid());
+ serviceTaskdept.setTaskName(serviceTask.getTaskName());
+ serviceTaskdept.setLongtask(0L);
+ serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
+ if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
+ serviceTaskdept.setDeptCode(districtcode);
+ serviceTaskdept.setDeptType("2");
+ serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
+ //鍏堥�氳繃浠诲姟ID銆侀儴闂╟ode,鍒ゆ柇ServiceTaskdept鏄惁瀛樺湪锛屼笉瀛樺湪鍒欐柊澧烇紝瀛樺湪鍒欎慨鏀�
+ ServiceTaskdept st = new ServiceTaskdept();
+ st.setDeptCode(districtcode);
+ st.setTaskId(serviceTask.getTaskid());
+ List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
+ if (CollectionUtils.isEmpty(serviceTaskdepts)) {
+ serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
+ } else {
+ serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
+ }
}
}
+ } else if (serviceTaskVO.getAppltype().equals("3")) {
+ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
+ serviceTaskdiag.setTaskId(serviceTask.getTaskid());
+ serviceTaskdiag.setTaskName(serviceTask.getTaskName());
+ if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) {
+ throw new BaseException("鐤剧梾缂栫爜涓虹┖");
+ }
+// serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code());
+
+ serviceTaskdiag.setLongtask(1L);
+ serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
+ serviceTaskdiag.setGuid(serviceTask.getGuid());
+ serviceTaskdiag.setOrgid(serviceTask.getOrgid());
+ serviceTaskdiag.setUpdateTime(new Date());
+ if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
+ String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
+ for (String icdcode : icd10codes) {
+ //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
+ ServiceTaskdiag serviceTaskdiag2 = new ServiceTaskdiag();
+ serviceTaskdiag2.setTaskId(serviceTaskVO.getTaskid());
+ serviceTaskdiag2.setIcd10code(icdcode);
+ List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2);
+ serviceTaskdiag.setIcd10code(icdcode);
+ log.error("----serviceTaskdiag鏇存柊鐨勫�间负锛歿}", serviceTaskdiag);
+ if (CollectionUtils.isNotEmpty(serviceTaskdiags)) {
+ serviceTaskdiag.setId(serviceTaskdiags.get(0).getId());
+ serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag);
+ } else {
+ serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
+ }
+ }
+ }
+
+
+ } else if (serviceTaskVO.getAppltype().equals("4")) {
+ ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
+ if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) {
+ throw new BaseException("鎵嬫湳缂栫爜涓虹┖");
+ }
+// serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
+ serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
+ serviceTaskoper.setTaskId(serviceTask.getTaskid());
+ serviceTaskoper.setTaskName(serviceTask.getTaskName());
+ serviceTaskoper.setLongtask(1L);
+ serviceTaskoper.setGuid(serviceTask.getGuid());
+ serviceTaskoper.setOrgid(serviceTask.getOrgid());
+ serviceTaskoper.setCreateTime(new Date());
+ if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
+ String[] opcodes = serviceTaskVO.getOpcode().split(",");
+ for (String opcode : opcodes) {
+ //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
+ ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
+ serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
+ serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
+ List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
+
+ serviceTaskoper.setOpcode(opcode);
+ log.error("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
+ if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
+ serviceTaskoper.setId(serviceTaskopers.get(0).getId());
+ serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
+ } else {
+ serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
+ }
+ }
+ }
+
}
if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate();
@@ -545,12 +771,16 @@
serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
+ serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime());
serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam()));
if (patTaskRelevance.getIsoperation() != null) {
if (patTaskRelevance.getIsoperation() == 2)
- serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+ serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+ serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
if (patTaskRelevance.getIsoperation() == 1) {
serviceSubtask.setSendstate(1L);
+ serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+ serviceSubtask.setCreateBy(serviceTask.getUpdateBy());
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
}
if (patTaskRelevance.getIsoperation() == 3)
@@ -965,6 +1195,8 @@
double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
serviceSubtask.setScore(BigDecimal.valueOf(score));
serviceSubtask.setFinishtime(new Date());
+ serviceSubtask.setUpdateTime(new Date());
+ log.error("鍏堟洿鏂颁竴涓嬪垎鏁�,鐢佃瘽鐨剆erviceSubtask鐨勫�间负锛歿}", serviceSubtask);
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
Map<String, String> map = delRedisValue(null, id.toString());
if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
@@ -1452,7 +1684,9 @@
//phoneCount() 閫氳繃缁欏嚭鐨勬瘡涓皬鏃堕渶瑕佹墦鍑虹殑鐢佃瘽閲忥紝绠楀嚭鍒版櫄涓�8鐐逛竴鐐硅兘鎵撳嚭澶氬皯涓數璇濓紝鑾峰彇鍒版�婚噺
//濡傛灉闇�瑕佺珛鍗虫墽琛岀殑鏁版嵁閲忓ぇ浜庝竴澶╄鎵ц鐨勪笂闄愶紝鍒欏彧鍙栦笂闄愮殑鏁伴噺锛屽叾瀹冪殑鍒欐斁鍥瀝edis涓�
count = Math.min(phoneCount(), (int) size);
- cacheList = listOps.range("cache-0", 0, count - 1);
+ if (count != 0) {
+ cacheList = listOps.range("cache-0", 0, count - 1);
+ }
}
log.error("浠诲姟鎷夊彇cache-0鐨勫�兼槸澶氬皯锛歿}", cacheList);
@@ -1488,7 +1722,7 @@
}
}
if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList);
- log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", pullTaskVOList.size());
+ log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", CollectionUtils.isNotEmpty(pullTaskVOList) ? pullTaskVOList.size() : null);
return pullTaskVOList;
}
@@ -1507,6 +1741,18 @@
PullTaskVO pullTaskVO = new PullTaskVO();
String subId = subIds.get(i).trim();
ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(subId));
+ if (ObjectUtils.isEmpty(serviceSubtask)) {
+ log.error("璇ubId鏈夐棶棰橈紝鍦ㄨ〃涓煡璇笉鍒帮細{}", subId);
+ continue;
+ }
+ if (StringUtils.isEmpty(serviceSubtask.getPhone())) {
+ serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
+ serviceSubtask.setSendstate(4L);
+ serviceSubtask.setResult("error");
+// serviceSubtask.setFinishtime(new Date());
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ continue;
+ }
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid());
if (ObjectUtils.isEmpty(ivrTaskTemplate)) continue;
@@ -1523,7 +1769,10 @@
}
}
//濡傛灉ivrTaskTemplateScript涓虹┖锛屼篃灏辨病鏈夊線涓嬫墽琛岀殑蹇呰浜�
- if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null;
+ if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) {
+ log.error("---------杩欎釜ivrTaskTemplate.getId()鐨勯棶棰樹负绌猴細{}", ivrTaskTemplate.getId());
+ continue;
+ }
//鑾峰彇閫氶厤绗﹀尮閰嶈繃鍚庣殑闂
String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getIvrtext());
String kcb = serviceTask.getKcb() + "," + scrContent;
@@ -1850,6 +2099,7 @@
//鏃犱汉鎺ュ惉
getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid()));
redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
+ redisCache.removeElementFromList("cache-exist", phoneCallRecordVO.getTaskid());
} else if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) {
// if (phoneCallRecordVO.getAnswered() != null && phoneCallRecordVO.getAnswered() == true) {
log.error("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�");
@@ -1861,20 +2111,26 @@
serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�");
serviceSubtask.setSendstate(6L);
serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
+ serviceSubtask.setFinishtime(new Date());
+ serviceSubtask.setUpdateTime(new Date());
+ log.error("鐢佃瘽鎷ㄦ墦宸插畬鎴恠erviceSubtask鐨勫�间负:{}", serviceSubtask);
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
//涓嬭浇鏂囦欢
ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
} else {
//鎮h�呮嫆缁濋殢璁�
+ //鍏堟妸璇ubId浠巆ache_exist涓墧闄わ紝鍙鏈夊洖璋冨氨鍓旈櫎锛堢洰鐨勬槸锛屽敖蹇cache-exist涓虹┖锛屽幓缂撳瓨涓嬩竴鎵硅鎵撶殑鐢佃瘽;杩欓噷鍓旈櫎涓嶅奖鍝嶇數璇濈殑姝e父涓氬姟锛�
+ redisCache.removeElementFromList("cache-exist", phoneCallRecordVO.getTaskid());
ServiceSubtask serviceSubtask = new ServiceSubtask();
serviceSubtask.setRemark("鐢佃瘽鎺ラ�氭垚鍔燂紝鎮h�呮嫆缁濋殢璁�");
serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
serviceSubtask.setSendstate(6L);
+ serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
- int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1; // 鍔�1鏄烦杩�/绗﹀彿
- int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/");
- String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
+// int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1; // 鍔�1鏄烦杩�/绗﹀彿
+// int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/");
+// String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex);
//涓嬭浇鏂囦欢
ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup");
@@ -1925,7 +2181,14 @@
public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
- Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(ServiceSubtask::getLeavehospitaldistrictname));
+ //Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+ Map<String, List<ServiceSubtask>> collect = new HashMap<>();
+ if (serviceSubtaskCountReq.getStatisticaltype() != null && serviceSubtaskCountReq.getStatisticaltype() == 1) {
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+
+ }else if (serviceSubtaskCountReq.getStatisticaltype() != null && serviceSubtaskCountReq.getStatisticaltype() == 2){
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+ }
for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
if (CollectionUtils.isEmpty(serviceSubtaskList)) {
continue;
@@ -1940,9 +2203,92 @@
private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) {
ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
+ //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮
+ DecimalFormat percentFormat = new DecimalFormat("##.##%");
+ serviceSubtaskStatistic.setDeptname(serviceSubtaskList.get(0).getDeptname());
+ serviceSubtaskStatistic.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
serviceSubtaskStatistic.setLeavehospitaldistrictname(serviceSubtaskList.get(0).getLeavehospitaldistrictname());
serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
- serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size());
+ //鍑洪櫌浜烘
+ serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size());
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList){
+ //鏃犻渶闅忚浜烘
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+ serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L);
+ }
+ //搴旈殢璁夸汉娆�
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+ serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L);
+ }
+ //棣栨鍑洪櫌闅忚
+ if(serviceSubtask.getVisitCount() == 1){
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+ serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+ serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)){
+ serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5){
+ serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
+ }
+ 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);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")){
+ serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")){
+ serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")){
+ serviceSubtaskStatistic.setAbnormal(serviceSubtaskStatistic.getAbnormal() + 1L);
+ }
+ }//浜屾鍑洪櫌闅忚
+ else if (serviceSubtask.getVisitCount() > 1){
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+ serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+ serviceSubtaskStatistic.setPendingFollowUpAgain(serviceSubtaskStatistic.getPendingFollowUpAgain() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)){
+ serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5){
+ serviceSubtaskStatistic.setFollowUpFailAgain(serviceSubtaskStatistic.getFollowUpFailAgain() + 1L);
+ }
+ 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);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")){
+ serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")){
+ serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
+ }
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")){
+ serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
+ }
+ }
+
+
+ }
+ /*serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size());
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
//涓嶉殢璁挎暟閲�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
@@ -1976,14 +2322,15 @@
serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L);
}
}
- //闅忚瀹屾垚鐜�=宸插彂閫�/闅忚鏁�
- if (serviceSubtaskStatistic.getYfsCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
+ //闅忚瀹屾垚鐜�=宸插畬鎴�/搴旈殢璁块噺
+ if (serviceSubtaskStatistic.getYwcCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
serviceSubtaskStatistic.setSfwcl("0");
} else {
// BigDecimal multiply = BigDecimal.valueOf(serviceSubtaskStatistic.getYfsCount()).divide(BigDecimal.valueOf(serviceSubtaskList.size()), 2, BigDecimal.ROUND_HALF_UP);
- BigDecimal multiply = new BigDecimal(serviceSubtaskStatistic.getYfsCount().toString()).divide(new BigDecimal(serviceSubtaskList.size() + ""), 2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal multiply = new BigDecimal(serviceSubtaskStatistic.getYwcCount().toString()).divide(new BigDecimal(serviceSubtaskStatistic.getYsfCount().toString()), 2, BigDecimal.ROUND_HALF_UP);
serviceSubtaskStatistic.setSfwcl(multiply.toString());
- }
+ }*/
+
return serviceSubtaskStatistic;
}
@@ -2007,6 +2354,7 @@
serviceSubtaskDetail.setTaskid(serviceSubtask1.getTaskid());
serviceSubtaskDetail.setPatid(serviceSubtask1.getPatid());
}
+ serviceSubtaskDetail.setTargetid(ivrTaskTemplateScriptVO.getTargetid() != null ? ivrTaskTemplateScriptVO.getTargetid().intValue() : null);
serviceSubtaskDetail.setUuid(phoneCallReqYQVO.getUuid());
serviceSubtaskDetail.setPhone(phoneCallReqYQVO.getPhone());
serviceSubtaskDetail.setOperate(serviceSubtask.getCreateBy());
@@ -2021,12 +2369,13 @@
serviceSubtaskDetail.setEndTime(System.currentTimeMillis());
serviceSubtaskDetail.setSentEnd(1L);
serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
- serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
+ serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno());
serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getIvrtext());
serviceSubtaskDetail.setQuestionvoice(phoneCallReqYQVO.getRecordpath());
serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());
serviceSubtaskDetail.setExtemplateText(ivrTaskTemplateScriptVO.getExtemplateText());
+ serviceSubtaskDetail.setScriptid(ivrTaskTemplateScriptVO.getId());
int i = 1;
for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
@@ -2049,10 +2398,12 @@
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+ String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
ServiceOutPath serviceOutPath = new ServiceOutPath();
serviceOutPath.setParam1(taskId);
serviceOutPath.setParam2(patid);
serviceOutPath.setCreateTime(new Date());
+ serviceOutPath.setParam6(subId);
iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//杞垚16杩涘埗
String format = String.format("%03X", serviceOutPath.getId());
@@ -2079,13 +2430,17 @@
// 褰撳墠鏃堕棿
LocalTime currentTime = LocalTime.now();
// 鐩爣鏃堕棿锛堟櫄涓� 8 鐐癸級
- LocalTime targetTime = LocalTime.of(20, 0);
+ LocalTime targetTime = LocalTime.of(phoneEndHour, 0);
// 璁$畻褰撳墠鏃堕棿鍒扮洰鏍囨椂闂寸殑鏃堕暱
Duration duration = Duration.between(currentTime, targetTime);
// 鑾峰彇鍓╀綑鏃堕棿鐨勫皬鏃舵暟
- long remainingHours = duration.toHours();
+ long remainingHours = 0;
+ long remainingMinutes = duration.toMinutes();
//濡傛灉瓒呰繃8鐐�,灏辫缃负0
- if (remainingHours < 0) remainingHours = 0;
+ //璺濈缁撴潫鏃堕棿灏忎簬20鍒嗛挓锛屽氨涓嶆媺鍙栦簡
+ if (remainingMinutes < 20) remainingHours = 0;
+ else if (remainingMinutes < 60 && remainingMinutes > 20) remainingHours = 1;
+ else if (remainingMinutes > 60) remainingHours = remainingMinutes / 60;
// 璁$畻鍓╀綑鍙互鎵撶殑鐢佃瘽鏁�
int remainingCalls = (int) (remainingHours * phoneUpEveryHour);
return remainingCalls;
--
Gitblit v1.9.3