From 9526971c403417c1c007804f24884c443b9e6cd7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 04 九月 2024 00:34:40 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 216 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 192 insertions(+), 24 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 7853b90..f3aa58c 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java @@ -1,96 +1,264 @@ package com.smartor.service.impl; -import java.util.List; +import java.time.LocalDate; +import java.time.ZoneOffset; +import java.util.*; + +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DtoConversionUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.*; +import com.smartor.mapper.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import com.smartor.mapper.PatMedInhospMapper; -import com.smartor.domain.PatMedInhosp; import com.smartor.service.IPatMedInhospService; +import org.springframework.transaction.annotation.Transactional; /** * 鎮h�呬綇闄㈣褰昐ervice涓氬姟灞傚鐞� - * + * * @author smartor * @date 2023-03-04 */ +@Slf4j @Service -public class PatMedInhospServiceImpl implements IPatMedInhospService -{ +public class PatMedInhospServiceImpl implements IPatMedInhospService { @Autowired private PatMedInhospMapper patMedInhospMapper; + @Autowired + private PatArchiveMapper patArchiveMapper; + + @Autowired + private IvrLibaTemplateMapper ivrLibaTemplateMapper; + + @Autowired + private IvrTaskTemplateMapper ivrTaskTemplateMapper; + + @Autowired + private ServiceTaskMapper serviceTaskMapper; + + @Autowired + private ServiceSubtaskMapper serviceSubtaskMapper; + @Autowired + private SysUserDeptMapper sysUserDeptMapper; + + //璁板綍闀挎湡浠诲姟鍩虹淇℃伅 + List<IvrLibaTemplate> libaTemplates = new ArrayList<>(); + List<IvrTaskTemplate> ivrTaskTemplates = new ArrayList<>(); + List<ServiceTask> serviceTaskList = new ArrayList<>(); + /** * 鏌ヨ鎮h�呬綇闄㈣褰� - * + * * @param inhospid 鎮h�呬綇闄㈣褰曚富閿� * @return 鎮h�呬綇闄㈣褰� */ @Override - public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) - { + public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) { return patMedInhospMapper.selectPatMedInhospByInhospid(inhospid); } /** * 鏌ヨ鎮h�呬綇闄㈣褰曞垪琛� - * + * * @param patMedInhosp 鎮h�呬綇闄㈣褰� * @return 鎮h�呬綇闄㈣褰� */ @Override - public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) - { + public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) { return patMedInhospMapper.selectPatMedInhospList(patMedInhosp); + } + + + @Override + public PatMedInhosp getDeptCodeByPatId(PatMedInhosp patMedInhosp) { + List<PatMedInhosp> patMedInhosps = selectPatMedInhospList(patMedInhosp); + if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) { + + if (patMedInhosp.getInhospstate().equals("0")) { + //鍏堝幓鎺夋椂闂翠负绌虹殑 + patMedInhosps.removeIf(PatMedInhosp -> PatMedInhosp.getStarttime() == null); + Collections.sort(patMedInhosps, Comparator.comparing(PatMedInhosp::getStarttime).reversed()); + } else if (patMedInhosp.getInhospstate().equals("1")) { + //鍏堝幓鎺夋椂闂翠负绌虹殑 + patMedInhosps.removeIf(PatMedInhosp -> PatMedInhosp.getEndtime() == null); + Collections.sort(patMedInhosps, Comparator.comparing(PatMedInhosp::getEndtime).reversed()); + } + } + if (patMedInhosps != null && patMedInhosps.size() > 0) return patMedInhosps.get(0); + else return null; + } + + /** + * 鏌ヨ鍑哄叆闄汉娆� + * + * @param patMedReq + * @return + */ + @Override + public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) { + 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); + } + return patMedRes; } /** * 鏂板鎮h�呬綇闄㈣褰� - * + * * @param patMedInhosp 鎮h�呬綇闄㈣褰� * @return 缁撴灉 */ @Override - public int insertPatMedInhosp(PatMedInhosp patMedInhosp) - { + public int insertPatMedInhosp(PatMedInhosp patMedInhosp) { patMedInhosp.setCreateTime(DateUtils.getNowDate()); + patMedInhosp.setUpdateTime(DateUtils.getNowDate()); return patMedInhospMapper.insertPatMedInhosp(patMedInhosp); } /** * 淇敼鎮h�呬綇闄㈣褰� - * + * * @param patMedInhosp 鎮h�呬綇闄㈣褰� * @return 缁撴灉 */ @Override - public int updatePatMedInhosp(PatMedInhosp patMedInhosp) - { + public int updatePatMedInhosp(PatMedInhosp patMedInhosp) { patMedInhosp.setUpdateTime(DateUtils.getNowDate()); return patMedInhospMapper.updatePatMedInhosp(patMedInhosp); } /** * 鎵归噺鍒犻櫎鎮h�呬綇闄㈣褰� - * + * * @param inhospids 闇�瑕佸垹闄ょ殑鎮h�呬綇闄㈣褰曚富閿� * @return 缁撴灉 */ @Override - public int deletePatMedInhospByInhospids(Long[] inhospids) - { + public int deletePatMedInhospByInhospids(Long[] inhospids) { return patMedInhospMapper.deletePatMedInhospByInhospids(inhospids); } /** * 鍒犻櫎鎮h�呬綇闄㈣褰曚俊鎭� - * + * * @param inhospid 鎮h�呬綇闄㈣褰曚富閿� * @return 缁撴灉 */ @Override - public int deletePatMedInhospByInhospid(Long inhospid) - { + public int deletePatMedInhospByInhospid(Long inhospid) { return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid); } + + @Transactional(rollbackFor = Exception.class) + @Override + public int dealOupHospInfo() { + //鑾峰彇闀挎湡妯℃澘 + IvrLibaTemplate ivrTemp = new IvrLibaTemplate(); + ivrTemp.setDelFlag("0"); + ivrTemp.setLongTemp(1); + List<IvrLibaTemplate> ivrLibaTemplates = ivrLibaTemplateMapper.selectIvrLibaTemplateList(ivrTemp); + + if (CollectionUtils.isNotEmpty(ivrLibaTemplates)) { + for (IvrLibaTemplate ivrLibaTemplate : ivrLibaTemplates) { + //鑾峰彇鍒颁换鍔℃ā鏉夸俊鎭� + IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate(); + ivrTaskTemplate.setLibtemplateid(ivrLibaTemplate.getId().toString()); + List<IvrTaskTemplate> ivrTaskTemplates = ivrTaskTemplateMapper.selectIvrTaskTemplateList(ivrTaskTemplate); + if (CollectionUtils.isNotEmpty(ivrTaskTemplates)) { + IvrTaskTemplate ivrTaskTemplate1 = ivrTaskTemplates.get(0); + //閫氳繃浠诲姟妯℃澘ID鑾峰彇浠诲姟 + ServiceTask ServiceTask = new ServiceTask(); + ServiceTask.setTemplateid(ivrTaskTemplate1.getId()); + List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(ServiceTask); + if (CollectionUtils.isNotEmpty(serviceTasks)) { + serviceTaskList.add(serviceTasks.get(0)); + } + ivrTaskTemplates.add(ivrTaskTemplate1); + } + libaTemplates.add(ivrLibaTemplate); + } + } + + PatMedInhosp patMedInhosp = new PatMedInhosp(); + //鑾峰彇鏈鐞嗙殑鏁版嵁 + patMedInhosp.setCheckFlag("0"); + patMedInhosp.setInhospstate("1"); + List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); + for (PatMedInhosp patMedInhosp1 : patMedInhosps) { + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); + //閫氳繃icd10code鍘昏幏鍙栫浉搴旂殑ivr_liba_template_id + if (StringUtils.isNotEmpty(patMedInhosp1.getIcd10code())) { + for (IvrLibaTemplate ivrLibaTemplate : libaTemplates) { + String icdCode = patMedInhosp1.getIcd10code().split(",")[0]; + if (ivrLibaTemplate.getIcd10code().equals(icdCode)) { + //閫氳繃妯℃澘ID鑾峰彇浠诲姟妯℃澘 + for (IvrTaskTemplate ivrTaskTemplate : ivrTaskTemplates) { + if (ivrTaskTemplate.getLibtemplateid().equals(ivrLibaTemplate.getId().toString())) { + for (ServiceTask serviceTask : serviceTaskList) { + if (serviceTask.getTemplateid() == ivrTaskTemplate.getId()) { + //灏嗚鎮h�咃紝鎻掑叆鍒板瓙浠诲姟琛ㄤ腑 + ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); + serviceSubtask.setId(null); + serviceSubtask.setTaskid(serviceTask.getTaskid()); + serviceSubtask.setLibtemplateid(ivrLibaTemplate.getId()); + serviceSubtask.setTemplateid(ivrTaskTemplate.getId()); + serviceSubtask.setTemplatename(ivrLibaTemplate.getTemplateName()); + serviceSubtask.setPatid(patMedInhosp1.getPatid()); + serviceSubtask.setSendname(patMedInhosp1.getPatname()); + serviceSubtask.setPhone(patArchive.getTelcode()); + serviceSubtask.setSex(patArchive.getSex()); + serviceSubtask.setAge(patArchive.getAge()); + serviceSubtask.setSendstate(2L); + serviceSubtask.setServiceform(serviceTask.getPreachform()); + serviceSubtask.setHospType("2"); + //鎮h�呭彂閫佹椂闂� + LocalDate currentDate = LocalDate.now(); + LocalDate newDate = currentDate.plusDays(ivrTaskTemplate.getSendDay()); + serviceSubtask.setLongSendTime(Date.from(newDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant())); + serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛� + PatMedInhosp patMedInhosp2 = new PatMedInhosp(); + patMedInhosp2.setInhospid(patMedInhosp1.getInhospid()); + patMedInhosp2.setCheckFlag("1"); + patMedInhospMapper.updatePatMedInhosp(patMedInhosp2); + } + } + } + } + } + } + } + } + return 1; + } + + /** + * 鑾峰彇鍑洪櫌锛屼綇闄紝闂ㄨ瘖鏈嶅姟浜烘 + * + * @param patMedReq + * @return + */ + @Override + public List<PatMedRes> getDeptRanking(PatMedReq patMedReq) { + + return patMedInhospMapper.getDeptRanking(patMedReq); + } + + } -- Gitblit v1.9.3