| | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.domain.entity.SysUserDept; |
| | | import com.ruoyi.common.core.domain.entity.SysUserRole; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.smartor.common.enums.EmergencyLevelEnum; |
| | | import com.smartor.common.enums.ImportFlagEnum; |
| | |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | | @Autowired |
| | | private ServiceSubtaskServiceImpl serviceSubtaskServiceImpl; |
| | | @Autowired |
| | | private ServiceSubtaskMapper serviceSubtaskMapper; |
| | | @Autowired |
| | | private PatMedInhospMapper patMedInhospMapper; |
| | | |
| | | @Override |
| | | public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) { |
| | |
| | | queryInhosp.setInhospstate("1"); |
| | | patMedInhospList = patMedInhospService.selectPatMedInhosp(queryInhosp); |
| | | if (CollectionUtils.isNotEmpty(patMedInhospList)) { |
| | | //如果不为空,则将入院时间进行更新 |
| | | PatMedInhosp pmOut = patMedInhospList.get(0); |
| | | //本次入院数据(这里 existingInhosps 必为空,取 existingInhosps.get(0) 会下标越界) |
| | | PatMedInhosp pmIn = patMedInhosp; |
| | | pmOut.setStarttime(pmIn.getStarttime()); |
| | | pmOut.setUpdateTime(new Date()); |
| | | patMedInhospService.updatePatMedInhosp(pmOut); |
| | | //省立同德需要将开始日期与入院日期相等的任务,改成不执行 |
| | | try { |
| | | if ("sltd".equals(active) && DateUtils.isSameDay(pmOut.getStarttime(), pmIn.getEndtime())) { |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setInhospid(pmOut.getInhospid()); |
| | | serviceSubtask.setSendstate(4L); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); |
| | | } |
| | | //通过入院时间,和患者的编号去查一下出院时间,是否存在,如果存在,则该患者是再入院的,需要改成不执行 |
| | | //出院时间只比较到天,不比较时分秒 |
| | | if (pmIn.getStarttime() != null) { |
| | | Date dayStart = DateUtils.truncate(pmIn.getStarttime(), Calendar.DAY_OF_MONTH); |
| | | Date dayEnd = DateUtils.addDays(dayStart, 1); |
| | | List<PatMedInhosp> outInhosps = patMedInhospMapper.selectOutInhospByPatnoAndOutDate( |
| | | StringUtils.trim(pmIn.getPatno()), dayStart, dayEnd); |
| | | if (CollectionUtils.isNotEmpty(outInhosps)) { |
| | | //存在出院记录,说明该患者是再入院,把上一次出院产生的子任务改成不执行 |
| | | ServiceSubtask outSubtask = new ServiceSubtask(); |
| | | outSubtask.setInhospid(outInhosps.get(0).getInhospid()); |
| | | outSubtask.setSendstate(4L); |
| | | outSubtask.setRemark("患者再入院"); |
| | | outSubtask.setUpdateTime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(outSubtask); |
| | | log.info("患者再入院,将上次出院记录的子任务改为不执行:patno={}, 出院inhospid={}, 出院时间={}, 本次入院时间={}", |
| | | pmIn.getPatno(), outInhosps.get(0).getInhospid(), outInhosps.get(0).getEndtime(), pmIn.getStarttime()); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("将出院时间等于入院时间的inhospid的任务更新失败了, inhospid={}", pmOut.getInhospid(), e); |
| | | } |
| | | return; |
| | | } |
| | | } |