From 0c515e7b8e3c1c15c615cc831ef3fdb09ea5265e Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 10 十月 2025 10:25:17 +0800 Subject: [PATCH] 修改BUG --- smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 129 +++++++++++++++++++++++++++++++------------ 1 files changed, 93 insertions(+), 36 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java index 4d8b5b6..7e34d50 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java @@ -1,5 +1,8 @@ package com.smartor.service.impl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; @@ -14,6 +17,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -44,7 +49,7 @@ @Autowired private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired - private SysUserDeptMapper sysUserDeptMapper; + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Value("${visitHosp}") private Integer visitHosp; @@ -130,15 +135,16 @@ PatMedRes patMedRes = null; // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺 if (org.springframework.util.CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) { - Long userId = SecurityUtils.getUserId(); - List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); - List<String> deptCode = new ArrayList<>(); - for (SysDept sysDept : sysDepts) { - deptCode.add(sysDept.getDeptId().toString()); - } - patMedReq.setDeptcodeList(deptCode); - patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq); +// Long userId = SecurityUtils.getUserId(); +// List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); +// List<String> deptCode = new ArrayList<>(); +// for (SysDept sysDept : sysDepts) { +// deptCode.add(sysDept.getDeptId().toString()); +// } +// patMedReq.setDeptcodeList(deptCode); +// patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq); } + patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq); return patMedRes; } @@ -209,7 +215,7 @@ pmks.setInhospstate("1"); pmks.setFuflag("1"); List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); - log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌閮ㄩ棬鎮h�呬俊鎭細{}", patMedInhosps); + log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌閮ㄩ棬鎮h�呬俊鎭細{}", patMedInhosps); for (PatMedInhosp patMedInhosp1 : patMedInhosps) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); @@ -262,7 +268,7 @@ pmbq.setInhospstate("1"); pmbq.setFuflag("1"); List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq); - log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐥呭尯鎮h�呬俊鎭細{}", patMedInhosps); + log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐥呭尯鎮h�呬俊鎭細{}", patMedInhosps); for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); @@ -312,7 +318,7 @@ pmjb.setInhospstate("1"); pmjb.setFuflag("1"); List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb); - log.error("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", patMedInhosps); + log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鐤剧梾鎮h�呬俊鎭細{}", patMedInhosps); for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); @@ -537,10 +543,20 @@ st.setTaskid(taskid); st.setSendState(2L); List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st); - if (CollectionUtils.isEmpty(serviceTasks)) { - log.error("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid); + if (CollectionUtils.isEmpty(serviceTasks) && type == 1) { + log.info("璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid); patMedInhosp1.setDeptcheckFlag("2"); - patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呭嚭闄㈤殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid); + patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢瀹ら暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid); + patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); + return; + } else if (CollectionUtils.isEmpty(serviceTasks) && type == 2) { + patMedInhosp1.setWardcheckFlag("2"); + patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯闄㈢梾鍖洪暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid); + patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); + return; + } else if (CollectionUtils.isEmpty(serviceTasks) && type == 3) { + patMedInhosp1.setDiagcheckFlag("2"); + patMedInhosp1.setLongTaskReason(longTaskReason + " & 璇ユ偅鑰呯柧鐥呴暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); return; } @@ -566,7 +582,7 @@ subtask.setSendstate(2L); subtask.setTaskid(taskid); List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask); - log.error("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList); + log.info("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList); if (CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) { for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) { if (Objects.isNull(serviceSubtask1.getLongSendTime())) { @@ -606,31 +622,17 @@ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); //閲嶆柊鏂板瀛愪换鍔� i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + //杩欓噷闇�瑕佸叏澶辫触 + addServiceSubtaskPreachform(serviceSubtask, "5"); } } - } else { - if (StringUtils.isEmpty(serviceSubtask.getPhone())) { - serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); - serviceSubtask.setSendstate(4L); - serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); - } - serviceSubtask.setCreateBy(serviceTask.getCreateBy()); - serviceSubtask.setCreateTime(new Date()); - i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); } } else { - if (StringUtils.isEmpty(serviceSubtask.getPhone())) { - serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); - serviceSubtask.setSendstate(4L); - serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); - - } serviceSubtask.setCreateBy(serviceTask.getCreateBy()); serviceSubtask.setCreateTime(new Date()); i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + addServiceSubtaskPreachform(serviceSubtask, null); } if (i == 1) { //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛� @@ -643,7 +645,7 @@ patMedInhospMapper.updatePatMedInhosp(patMedInhosp2); } else { //鐢熸垚瀛愪换鍔″け璐ワ紝 - log.error("鐢熸垚瀛愪换鍔″け璐erviceSubtask涓猴細{}", serviceSubtask); + log.info("鐢熸垚瀛愪换鍔″け璐erviceSubtask涓猴細{}", serviceSubtask); PatMedInhosp patMedInhosp2 = new PatMedInhosp(); patMedInhosp2.setInhospid(patMedInhosp1.getInhospid()); if (type == 1) patMedInhosp2.setDeptcheckFlag("2"); @@ -653,6 +655,36 @@ patMedInhospMapper.updatePatMedInhosp(patMedInhosp2); } } + + private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) { + //灏唒reachform鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓� + String preachform = serviceSubtask.getPreachform(); + ObjectMapper objectMapper = new ObjectMapper(); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(preachform)) { + List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = null; + try { + serviceSubtaskPreachformList = objectMapper.readValue(preachform, new TypeReference<List<ServiceSubtaskPreachform>>() { + }); + } catch (JsonProcessingException e) { + log.error("preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage()); + } + for (ServiceSubtaskPreachform serviceSubtaskPreachform : serviceSubtaskPreachformList) { + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥� + serviceSubtaskPreachform.setSendstate("1"); + if (StringUtils.isNotEmpty(sendstate)) serviceSubtaskPreachform.setSendstate(sendstate); + + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + return serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform); + + } + + } + + return 0; + } + //灏佽serviceSubtask private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive) { @@ -679,6 +711,8 @@ serviceSubtask.setSex(patArchive.getSex()); serviceSubtask.setAge(patArchive.getAge()); serviceSubtask.setSendstate(2L); + serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor()); + serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode()); serviceSubtask.setStarttime(patMedInhosp1.getStarttime()); serviceSubtask.setEndtime(patMedInhosp1.getEndtime()); serviceSubtask.setServiceType(serviceTask.getServiceType()); @@ -695,19 +729,42 @@ if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L); Date newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue()); serviceSubtask.setLongSendTime(newDate); + serviceSubtask.setVisitTime(newDate); + //濡傛灉鏄�氱煡鐨勮瘽锛岄渶瑕佹彁鍓嶅嚑澶╁皢閫氳繃鐭俊鍙戝嚭鍘伙紙鍏蜂綋鍑犲ぉ锛岃繖涓彲浠ラ厤缃湪sys_conf琛ㄤ腑锛� + if ("3".equals(serviceTask.getType())) { + serviceSubtask.setVisitTime(minusDay(newDate, 2)); + } + + //鎮h�呭彂閫佹椂闂� if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { -// log.error("serviceSubtask99999999鐨勫�间负锛歿}",serviceSubtask); String remark = patArchive.getNotrequiredreason(); serviceSubtask.setRemark(remark); serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); //涓嶆墽琛� serviceSubtask.setSendstate(4L); } return serviceSubtask; } + /** + * 鍑忓幓鐩稿簲澶╂暟 + * + * @param originalDate + * @param day + * @return + */ + public Date minusDay(Date originalDate, Integer day) { + // 1. 灏� Date 杞崲涓� Instant + Instant instant = originalDate.toInstant(); + + // 2. 鍦� Instant 涓婂噺鍘�2澶� + Instant twoDaysAgoInstant = instant.minus(2, ChronoUnit.DAYS); + + // 3. 灏嗚绠楀悗鐨� Instant 杞洖 Date + return Date.from(twoDaysAgoInstant); + } + //澶勭悊鍏ラ櫌淇℃伅 private void dealInHospInfo(List<PatMedInhosp> patMedInhospList) { for (PatMedInhosp patMedInhosp1 : patMedInhospList) { -- Gitblit v1.9.3