From dacdebbaa53fa57feef43d77365f1c4d4a8ff400 Mon Sep 17 00:00:00 2001
From: zhs <zhs18203887318@163.com>
Date: 星期五, 30 五月 2025 14:01:15 +0800
Subject: [PATCH] 05-30 zhs
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 139 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 106 insertions(+), 33 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 11399ff..e389236 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,7 +23,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.Duration;
@@ -92,6 +90,12 @@
@Autowired
private FtpService ftpService;
+ @Autowired
+ private PatMedInhospMapper patMedInhospMapper;
+
+ @Autowired
+ private PatArchiveMapper patArchiveMapper;
+
@Value("${pri_key}")
private String pri_key;
@@ -103,9 +107,6 @@
@Autowired
private RedisTemplate redisTemplate;
-
- @Autowired
- private SendService sendService;
@Value("${hangup}")
private String hangup;
@@ -153,6 +154,10 @@
@Override
public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO) {
return serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ }
+
+ public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskVO serviceSubtaskVO) {
+ return serviceSubtaskMapper.selectServiceSubtaskListAgain(serviceSubtaskVO);
}
@Override
@@ -256,18 +261,7 @@
@Override
public List<ServiceSubtask> patItem(ServiceSubtaskVO serviceSubtaskVO) {
List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
- //鏍规嵁鍑洪櫌 鏃堕棿鍊掑簭
- List<ServiceSubtask> sortedServiceSubtaskList = null;
- if (serviceSubtaskVO.getSort() == null || serviceSubtaskVO.getSort() == 0)
- sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());
- if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 1)
- sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList());
- if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 2)
- sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());
- if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 3)
- sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList());
-
- return sortedServiceSubtaskList;
+ return selectServiceSubtaskList;
}
@Override
@@ -294,11 +288,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;
}
@@ -308,6 +304,7 @@
map.put("fssb", fssb);
map.put("yfs", yfs);
map.put("blq", blq);
+ map.put("dsf", dsf);
return map;
}
@@ -322,6 +319,54 @@
public int insertServiceSubtask(ServiceSubtask serviceSubtask) {
serviceSubtask.setCreateTime(DateUtils.getNowDate());
return serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+ }
+
+ /**
+ * 鍐嶆鏂板鍗曚竴浠诲姟锛堥殢璁匡級
+ *
+ * @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());
+ int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask2);
+ if (i == 1) {
+ //鏂板鎴愬姛鍚庯紝闇�瑕佸皢涔嬪墠鐨勪换鍔¤缃负涓嶈鍐嶉殢璁匡紙闃叉閲嶅鐐癸紝鐒跺悗閲嶅鐢熸垚锛�
+ serviceSubtask1.setIsVisitAgain(2);
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ return "鍐嶆闅忚浠诲姟鍒涘缓鎴愬姛";
+ }
+ return "鍐嶆闅忚浠诲姟鍒涘缓澶辫触锛屽啀璇锋閲嶈瘯";
}
/**
@@ -385,16 +430,25 @@
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());
- serviceTask.setSendState(2L);
+ if (serviceTaskVO.getLongTask() == 1) serviceTask.setSendState(2L);
+ serviceTask.setCreateTime(new Date());
+ serviceTask.setUpdateTime(new Date());
serviceTaskService.insertServiceTask(serviceTask);
log.error("----serviceTaskVO.getAppltype()鐨勫�间负锛歿}", serviceTaskVO.getAppltype());
if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) {
@@ -441,6 +495,7 @@
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())) {
@@ -499,11 +554,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);
@@ -548,17 +606,20 @@
serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString());
serviceTask.setTemplateid(serviceTaskVO.getTemplateid());
serviceTask.setLongTask(serviceTaskVO.getLongTask());
+ serviceTask.setUpdateTime(new Date());
serviceTaskService.updateServiceTask(serviceTask);
if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) {
- 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);
+
+
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());
@@ -576,6 +637,12 @@
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());
@@ -700,12 +767,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)
@@ -1674,7 +1745,7 @@
serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
serviceSubtask.setSendstate(4L);
serviceSubtask.setResult("error");
- serviceSubtask.setFinishtime(new Date());
+// serviceSubtask.setFinishtime(new Date());
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
continue;
}
@@ -2053,9 +2124,9 @@
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");
@@ -2188,6 +2259,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());
@@ -2202,12 +2274,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()) {
--
Gitblit v1.9.3