From e6456d2196b3e57bd06be0fbc74dd3e0fc28fdeb Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 22 七月 2025 19:17:55 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 608 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 471 insertions(+), 137 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 56fff07..de6eb96 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; @@ -147,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 @@ -250,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; } @@ -279,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; + else if (serviceSubtask.getSendstate() != 4L && serviceSubtask.getSendstate() != 2L) 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; } @@ -293,6 +305,7 @@ map.put("fssb", fssb); map.put("yfs", yfs); map.put("blq", blq); + map.put("dsf", dsf); return map; } @@ -310,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 鍗曚竴浠诲姟锛堥殢璁匡級 @@ -318,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); } @@ -368,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.info("----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.info("----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.info("----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()); @@ -436,15 +552,20 @@ serviceSubtask.setDeptname(patTaskRelevance.getDeptName()); serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode()); serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname()); - serviceSubtask.setType(serviceTaskVO.getHospType()); + serviceSubtask.setType(serviceTaskVO.getType()); serviceSubtask.setHospType(patTaskRelevance.getHospType()); serviceSubtask.setOpenid(patTaskRelevance.getOpenid()); 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); @@ -458,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.info("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.info("----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.info("----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(); @@ -538,7 +762,7 @@ serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname()); serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode()); serviceSubtask.setDeptname(patTaskRelevance.getDeptName()); - serviceSubtask.setType(serviceTaskVO.getHospType()); + serviceSubtask.setType(serviceTaskVO.getType()); serviceSubtask.setCreateTime(DateUtils.getNowDate()); serviceSubtask.setDrname(patTaskRelevance.getDrname()); serviceSubtask.setDrcode(patTaskRelevance.getDrcode()); @@ -547,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) @@ -967,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")); @@ -1013,6 +1243,7 @@ } break; } + log.info("鏄惁闇�瑕佹寕鏈猴細{}", les); if (ObjectUtils.isNotEmpty(les)) { //瀵瑰尮閰嶇殑缁撴灉澶勭悊涓�涓�(鐪嬬湅鏄笉鏄渶瑕佹寕鏈�) if (les.getIsEnd() != null && les.getIsEnd() == 1) { @@ -1071,6 +1302,7 @@ if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) { //璇存槑鍖归厤姝g‘浜� //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉� + log.info("鍖归厤姝g‘浜嗗悧--------------"); ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1); serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j)); @@ -1159,8 +1391,9 @@ if (script.getSort() == nextQuestion.intValue()) { phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); - String scriptContent = script.getIvrtext(); + String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent(); log.error("涓嬩竴棰橀棶棰橈細{}", scriptContent); + log.error("涓嬩竴棰樼殑瀛愪换鍔℃槸锛歿}", serviceSubtask); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent)); //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀� redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES); @@ -1199,6 +1432,7 @@ } } else { + log.info("娌℃湁鍖归厤涓�----------------------------"); //flag=0,璇存槑娌� 鍖归厤涓婏紝涔熻鎶婃偅鑰呰鐨勮瘽璁板綍涓嬫潵 if (j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1 && flag == 0) { ServiceSubTaskDetailReq serviceSubTaskDetailReq = new ServiceSubTaskDetailReq(); @@ -1226,6 +1460,7 @@ } //閮芥病鏈夊尮閰嶅埌 if (StringUtils.isEmpty(phoneCallBackYQVO.getValue())) { + log.info("閮芥病鏈夊尮閰嶅埌-------------------------"); Integer count = null; Object countObj = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); if (ObjectUtils.isNotEmpty(countObj)) count = (Integer) countObj; @@ -1256,9 +1491,11 @@ //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎 Long id = serviceSubtask.getId(); Map<String, String> map = delRedisValue(null, id.toString()); - redisCache.setCacheObject(map.get("cacheName"), map.get("val")); - redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); - redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); + if (ObjectUtils.isNotEmpty(map)) { + redisCache.setCacheObject(map.get("cacheName"), map.get("val")); + redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); + redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); + } // return phoneCallBackYQVO; } else { //鏍规嵁ivrTaskTemplateScriptVO.getNextScriptno()鑾峰彇涓嬩竴棰樿繘琛屾彁闂� @@ -1266,7 +1503,7 @@ if (script.getSort() == ivrTaskTemplateScriptVO.getNextScriptno().intValue()) { phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); - String scriptContent = script.getIvrtext(); + String scriptContent = StringUtils.isNotEmpty(script.getIvrtext()) ? script.getIvrtext() : script.getScriptContent(); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent)); //灏嗚鎮h�呯殑Redis涓殑棰樼洰ID锛岃繘琛屼慨鏀� redisCache.setCacheObject(phoneCallReqYQVO.getTaskid().trim() + "-" + phoneCallReqYQVO.getPhone().trim(), script.getId().toString(), 120, TimeUnit.MINUTES); @@ -1320,7 +1557,8 @@ if (ivrTaskTemplateScriptVO.getNextScriptno().intValue() == ivrTaskTemplateScript1.getSort()) { phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setSilent_interval(ivrTaskTemplate.getSilencetime().intValue()); - String scriptContent = ivrTaskTemplateScript1.getIvrtext(); + String scriptContent = StringUtils.isNotEmpty(ivrTaskTemplateScript1.getIvrtext()) ? ivrTaskTemplateScript1.getIvrtext() : ivrTaskTemplateScript1.getScriptContent(); + phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + getObject(serviceSubtask, scriptContent)); redisCache.deleteObject(phoneCallReqYQVO.getTaskid().trim() + "&&" + "mate" + "&&" + phoneCallReqYQVO.getUuid()); redisCache.setCacheObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone(), ivrTaskTemplateScript1.getId().toString()); @@ -1373,6 +1611,9 @@ for (String key : map.keySet()) { scriptContent = scriptContent.replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""); } + } + if (StringUtils.isEmpty(scriptContent)) { + return scriptContent; } scriptContent = scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : ""); scriptContent = scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : ""); @@ -1446,10 +1687,9 @@ //蹇呴』绛塧che-exist鍏ㄩ儴鎵撳畬鎵嶈兘鎷夊彇涓嬩竴鎵癸紙涓昏鏄�曟墍鏈夌殑鏁版嵁閮藉爢鍦ㄧ數璇濈殑缂撳瓨閲岋紝鍦ㄨ瀹氱殑鏃堕棿鎵撲笉瀹岋級 long existSize = listOps.size("cache-exist"); if (existSize > 0) return pullTaskVOList; - + int count = 0; long size = listOps.size("cache-0"); log.error("---------鎵撶數璇濅箣鍓嶇紦瀛樹腑鐨勬暟鎹噺锛歿}", size); - int count = 0; if (size > 0) { //phoneCount() 閫氳繃缁欏嚭鐨勬瘡涓皬鏃堕渶瑕佹墦鍑虹殑鐢佃瘽閲忥紝绠楀嚭鍒版櫄涓�8鐐逛竴鐐硅兘鎵撳嚭澶氬皯涓數璇濓紝鑾峰彇鍒版�婚噺 //濡傛灉闇�瑕佺珛鍗虫墽琛岀殑鏁版嵁閲忓ぇ浜庝竴澶╄鎵ц鐨勪笂闄愶紝鍒欏彧鍙栦笂闄愮殑鏁伴噺锛屽叾瀹冪殑鍒欐斁鍥瀝edis涓� @@ -1458,6 +1698,7 @@ cacheList = listOps.range("cache-0", 0, count - 1); } } + log.error("浠诲姟鎷夊彇cache-0鐨勫�兼槸澶氬皯锛歿}", cacheList); // cache-0涓虹珛鍗冲彂璧风殑,鍏跺畠鐨勫厛鎺ㄨ繜 @@ -1469,17 +1710,21 @@ } else { for (int i = 1; i < 6; i++) { //鍙栧嚭浠巆ache-1 鍒� cache-5鐨勭涓�涓瓙浠诲姟淇℃伅 - Long size1 = listOps.size("cache-" + i); - if (size1 == null || size1 == 0) continue; - int count1 = Math.min(phoneCount(), size1.intValue()); - List<String> value = listOps.range("cache-0" + i, 0, count1 - 1); + try { + Long size1 = listOps.size("cache-" + i); + if (size1 == null || size1 == 0) continue; + int count1 = Math.min(phoneCount(), size1.intValue()); + List<String> value = listOps.range("cache-0" + i, 0, count1 - 1); - List<PullTaskVO> pullTaskVOList2 = getPullTaskList(value, "cache-" + i); - if (CollectionUtils.isNotEmpty(pullTaskVOList2) && pullTaskVOList2.size() > 0) { - pullTaskVOList.addAll(pullTaskVOList2); + List<PullTaskVO> pullTaskVOList2 = getPullTaskList(value, "cache-" + i); + if (CollectionUtils.isNotEmpty(pullTaskVOList2) && pullTaskVOList2.size() > 0) { + pullTaskVOList.addAll(pullTaskVOList2); + } + //灏嗗鐞嗚繃鐨勬暟鎹垹闄� + listOps.trim("cache-0" + i, count1, -1); + } catch (Exception e) { +// log.error("鐪嬬潃鐑�"); } - //灏嗗鐞嗚繃鐨勬暟鎹垹闄� - listOps.trim("cache-0" + i, count1, -1); } } //existList鐢ㄦ潵璁板綍鎺ヤ笅鏉ラ渶瑕佹墽琛岀殑瀛愪换鍔D @@ -1492,7 +1737,7 @@ } } if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList); - log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", pullTaskVOList.size()); + log.error("-----------瀹為檯鎷夊彇鐨勭數璇濇暟鎹噺锛歿}", CollectionUtils.isNotEmpty(pullTaskVOList) ? pullTaskVOList.size() : null); return pullTaskVOList; } @@ -1515,6 +1760,14 @@ 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; @@ -1531,7 +1784,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; @@ -1827,7 +2083,7 @@ ServiceSubtaskDetail ssd = new ServiceSubtaskDetail(); ssd.setSubId(serviceSubtaskDetail.getSubId()); ssd.setTaskid(serviceSubtaskDetail.getTaskid()); - ssd.setTemplatequestionnum(serviceSubtaskDetail.getTemplatequestionnum()); + ssd.setScriptid(serviceSubtaskDetail.getScriptid()); if (serviceSubtaskDetail.getSubId() != null) { ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtaskDetail.getSubId()); ssd.setGuid(serviceSubtask.getGuid()); @@ -1858,6 +2114,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("鏈変汉鎺ョ數璇濅簡锛屽苟涓斿畬浜�"); @@ -1869,6 +2126,9 @@ 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()); @@ -1881,10 +2141,11 @@ 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"); @@ -1935,12 +2196,36 @@ 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.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) { + collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown"))); + + } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) { + 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; } ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList); + + //鍙婃椂鐜� + ServiceSubtask ss = new ServiceSubtask(); + ss.setOrgid(serviceSubtaskList.get(0).getOrgid()); + if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) { + ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode()); + } else { + ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode()); + } + 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); } @@ -1950,50 +2235,93 @@ 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.setBzxCount(serviceSubtaskStatistic.getBzxCount() + 1L); + serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L); } - //搴旈殢璁挎暟閲� + //搴旈殢璁夸汉娆� if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) { - serviceSubtaskStatistic.setYsfCount(serviceSubtaskStatistic.getYsfCount() + 1L); - } - //鍙戦�佸け璐ユ暟閲� - if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) { - serviceSubtaskStatistic.setFssbCount(serviceSubtaskStatistic.getFssbCount() + 1L); - } - //寰呭彂閫佹暟閲� - if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) { - serviceSubtaskStatistic.setDfsCount(serviceSubtaskStatistic.getDfsCount() + 1L); - } - //宸插彂閫佹暟閲� - if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 3) { - serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L); - } - //宸插畬鎴愭暟閲� - if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) { - //宸插彂閫侊紝鍖呭惈宸插畬鎴� - serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L); - serviceSubtaskStatistic.setYwcCount(serviceSubtaskStatistic.getYwcCount() + 1L); + serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L); } - if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) { - //寮傚父鏍囪瘑 - serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L); + //棣栨鍑洪櫌闅忚 + if (serviceSubtask.getVisitCount() != null && 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() != null && 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); + } } + + } - //闅忚瀹屾垚鐜�=宸插彂閫�/闅忚鏁� - if (serviceSubtaskStatistic.getYfsCount() == 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); - serviceSubtaskStatistic.setSfwcl(multiply.toString()); - } + return serviceSubtaskStatistic; } @@ -2010,6 +2338,8 @@ } private ServiceSubtaskDetail getServiceSubtaskDetail(PhoneCallReqYQVO phoneCallReqYQVO, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, ServiceSubtask serviceSubtask, IvrTaskTemplate ivrTaskTemplate) { + log.info("-----------------phoneCallReqYQVO鐨勫�间负锛歿}", phoneCallReqYQVO); + ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail(); serviceSubtaskDetail.setSubId(Long.valueOf(phoneCallReqYQVO.getTaskid())); ServiceSubtask serviceSubtask1 = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid())); @@ -2017,6 +2347,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()); @@ -2031,12 +2362,13 @@ serviceSubtaskDetail.setEndTime(System.currentTimeMillis()); serviceSubtaskDetail.setSentEnd(1L); serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString()); - serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId()); - serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getIvrtext()); + serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno()); + serviceSubtaskDetail.setQuestiontext(StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrtext()) ? ivrTaskTemplateScriptVO.getIvrtext() : ivrTaskTemplateScriptVO.getScriptContent()); 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()) { @@ -2059,10 +2391,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()); -- Gitblit v1.9.3