From 55ede3cff5dbbbcb8675d1592a67f20d598d49e7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 18 四月 2025 14:21:28 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 200 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 190 insertions(+), 10 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java index 537374f..8bc7444 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java @@ -1,21 +1,18 @@ package com.smartor.service.impl; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.util.*; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.common.utils.SecurityUtils; -import com.smartor.domain.PatMedReq; -import com.smartor.domain.PatMedRes; -import com.smartor.mapper.SysUserDeptMapper; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.*; +import com.smartor.mapper.*; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.smartor.mapper.PatMedOuthospMapper; -import com.smartor.domain.PatMedOuthosp; import com.smartor.service.IPatMedOuthospService; import org.springframework.util.CollectionUtils; @@ -25,6 +22,7 @@ * @author smartor * @date 2023-03-04 */ +@Slf4j @Service public class PatMedOuthospServiceImpl implements IPatMedOuthospService { @Autowired @@ -32,6 +30,18 @@ @Autowired private SysUserDeptMapper sysUserDeptMapper; + + @Autowired + private ServiceSubtaskMapper serviceSubtaskMapper; + + @Autowired + private ServiceTaskMapper serviceTaskMapper; + + @Autowired + private ServiceTaskdiagMapper serviceTaskdiagMapper; + + @Autowired + private PatArchiveMapper patArchiveMapper; /** @@ -53,7 +63,8 @@ */ @Override public List<PatMedOuthosp> selectPatMedOuthospList(PatMedOuthosp patMedOuthosp) { - return patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); + List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); + return patMedOuthosps; } /** @@ -126,4 +137,173 @@ } return patMedOuthosps.get(0); } + + /** + * 闂ㄨ瘖鐥呬汉淇℃伅澶勭悊 + * + * @return + */ + @Override + public Integer dealOutpatientInfo() { + PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); + patMedOuthosp.setDiagcheckFlag("0"); + List<PatMedOuthosp> patMedOuthosps = selectPatMedOuthospList(patMedOuthosp); + for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) { + // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔� + ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); + serviceTaskdiag.setLongtask(1L); + serviceTaskdiag.setIcd10code(patMedOuthosp1.getIcd10code()); + List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); + //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛� + if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { + patMedOuthosp1.setDiagcheckFlag("2"); + patMedOuthosp1.setRemark("閫氳繃icd10,娌℃湁鎵惧埌闅忚浠诲姟ID"); + patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp1); + } else { + for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { + writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedOuthosp1, patArchive); + } + } + + } + return 1; + } + + private void writeInSubTask(Long taskid, Boolean check, PatMedOuthosp patMedOuthosp, PatArchive patArchive) { + + ServiceTask st = new ServiceTask(); + st.setTaskid(taskid); + st.setSendState(2L); + List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st); + if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTasks)) { + log.error("璇ユ偅鑰呯柧鐥呴殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid); + patMedOuthosp.setDiagcheckFlag("2"); + patMedOuthosp.setRemark("璇ユ偅鑰呯柧鐥呴殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid); + patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp); + return; + } + ServiceTask serviceTask = serviceTasks.get(0); + //灏佽serviceSubtask + ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedOuthosp, patArchive); + Integer i = 0; + //鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠� + if (check) { + //鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛� + ServiceSubtaskVO subtask = new ServiceSubtaskVO(); + subtask.setPatid(patArchive.getId()); + subtask.setSendstate(2L); + subtask.setTaskid(taskid); + List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask); + log.error("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) { + for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) { + if (Objects.isNull(serviceSubtask1.getLongSendTime())) { + //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊 + continue; + } + + //灏嗕箣鍓嶇殑鍋滄帀 + serviceSubtask1.setSendstate(4L); + serviceSubtask1.setRemark("鐤剧梾鎮h�呭啀鍏ラ櫌"); + serviceSubtask1.setResult("error"); + serviceSubtask1.setFinishtime(new Date()); + serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy()); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); + //閲嶆柊鏂板瀛愪换鍔� + 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); + } + } 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); + } + if (i == 1) { + //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛� + PatMedOuthosp patMedOuthosp1 = new PatMedOuthosp(); + patMedOuthosp1.setId(patMedOuthosp.getId()); + patMedOuthosp1.setDiagcheckFlag("1"); + patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp1); + } else { + //鐢熸垚瀛愪换鍔″け璐ワ紝 + log.error("鐢熸垚瀛愪换鍔″け璐erviceSubtask涓猴細{}", serviceSubtask); + PatMedOuthosp pmo = new PatMedOuthosp(); + pmo.setId(patMedOuthosp.getId()); + pmo.setDiagcheckFlag("2"); + pmo.setRemark("鐢熸垚瀛愪换鍔″け璐�"); + patMedOuthospMapper.updatePatMedOuthosp(pmo); + } + } + + //灏佽serviceSubtask + private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) { + ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); + serviceSubtask.setTaskid(serviceTask.getTaskid()); + if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid())) + serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid())); + serviceSubtask.setDrcode(patMedOuthosp.getDrcode()); + serviceSubtask.setDrname(patMedOuthosp.getDrname()); + serviceSubtask.setDeptcode(patMedOuthosp.getDeptcode()); + serviceSubtask.setDeptname(patMedOuthosp.getDeptname()); + serviceSubtask.setTemplateid(serviceTask.getTemplateid()); + serviceSubtask.setTemplatename(serviceTask.getTemplatename()); + serviceSubtask.setPatid(patArchive.getId()); + serviceSubtask.setSendname(patArchive.getName()); + serviceSubtask.setSfzh(patArchive.getIdcardno()); + serviceSubtask.setPhone(patArchive.getTelcode()); + if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode()); + serviceSubtask.setSex(patArchive.getSex()); + serviceSubtask.setAge(patArchive.getAge()); + serviceSubtask.setSendstate(2L); + serviceSubtask.setServiceType("3"); + serviceSubtask.setPreachform(serviceTask.getPreachform()); + serviceSubtask.setHospType("1"); + serviceSubtask.setCreateTime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); + serviceSubtask.setUpdateTime(new Date()); + //璁剧疆鍙戦�佹椂闂� + if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L); + Date newDate = addDays(patMedOuthosp.getAdmitdate(), serviceTask.getSendDay().intValue()); + serviceSubtask.setLongSendTime(newDate); + //鎮h�呭彂閫佹椂闂� + if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { + String remark = patArchive.getNotrequiredreason(); + serviceSubtask.setRemark(remark); + serviceSubtask.setResult("error"); + serviceSubtask.setFinishtime(new Date()); + //涓嶆墽琛� + serviceSubtask.setSendstate(4L); + } + return serviceSubtask; + } + + private Date addDays(Date date, Integer days) { + if (days == null) { + days = 1; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_MONTH, days); + return calendar.getTime(); + } } -- Gitblit v1.9.3