| | |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.smartor.common.LSHospTokenUtil; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | } |
| | | log.info("【dealHisData】省立同德“用户信息”结束采集数据:{}", aBoolean); |
| | | } |
| | | |
| | | // 省立同德数据采集 |
| | | for (Long cid : campusidList) { |
| | | log.debug("【dealHisData】省立同德“预入院”开始采集数据,院区:{}", cid); |
| | | String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO(); |
| | | serviceSLTDInhospReqVO.setOrgId("20001001"); |
| | |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.debug("【dealHisData】省立同德“入院”結束采集数据,院区:{}", cid); |
| | | |
| | | log.debug("【dealHisData】省立同德“门急诊”开始采集数据,院区:{}", cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); |
| | | serviceSLTDInhospReqVO.setStatusList(null); |
| | | List<String> list1 = new ArrayList<>(); |
| | | list1.add("FH0108.01"); |
| | | list1.add("FH0108.03"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); |
| | | log.debug("【dealHisData】省立同德“门急诊”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.debug("【dealHisData】省立同德“门急诊”束采集数据,院区:{}", cid); |
| | | // log.debug("【dealHisData】省立同德“门急诊”开始采集数据,院区:{}", cid); |
| | | // serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | // serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | // serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); |
| | | // serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); |
| | | // serviceSLTDInhospReqVO.setStatusList(null); |
| | | // List<String> list1 = new ArrayList<>(); |
| | | // list1.add("FH0108.01"); |
| | | // list1.add("FH0108.03"); |
| | | // serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); |
| | | // log.debug("【dealHisData】省立同德“门急诊”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | // serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | // log.debug("【dealHisData】省立同德“门急诊”束采集数据,院区:{}", cid); |
| | | |
| | | log.debug("【dealHisData】省立同德“出院”开始采集数据,院区:{}", cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.debug("【dealHisData】省立同德“出院”束采集数据,院区:{}", cid); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("【dealHisData】省立同德数据采集异常", e); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void dealHisDataSLTD() { |
| | | log.info("【dealHisData】开始执行HIS数据采集任务"); |
| | | |
| | | try { |
| | | LocalDate startDate = LocalDate.of(2025, 11, 1); |
| | | LocalDate endDate = LocalDate.of(2026, 2, 27); |
| | | |
| | | // 省立同德数据采集 |
| | | // String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { |
| | | String nowTime = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO(); |
| | | serviceSLTDInhospReqVO.setOrgId("20001001"); |
| | | serviceSLTDInhospReqVO.setCampusId(30001002L); |
| | | log.debug("【dealHisData】省立同德“门急诊”开始采集数据,院区:{}", "30001002"); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); |
| | | serviceSLTDInhospReqVO.setStatusList(null); |
| | | List<String> list1 = new ArrayList<>(); |
| | | list1.add("FH0108.01"); |
| | | list1.add("FH0108.03"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); |
| | | log.debug("【dealHisData】省立同德“门急诊”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.debug("【dealHisData】省立同德“门急诊”束采集数据,院区:{}", "30001002"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("【dealHisData】省立同德数据采集异常", e); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 处理患者信息,进入子任务表 |
| | | */ |
| | | public void dealOutHospInfoByDimension() { |
| | | String config = configService.selectConfigByKey("visit.early.day"); |
| | | if (port.equals("8095")) { |
| | | //出院表 |
| | | iPatMedInhospService.dealOutHospInfoByDimension(config); |
| | | //门诊表(新华的暂时不做门诊随访) |
| | | if (!active.equals("xh")) { |
| | | // iPatMedOuthospService.dealOutpatientInfo(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 处理手术信息,进入子任务表 |
| | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * 长期任务发送 |
| | | */ |
| | | public void longTaskSend() { |
| | | //获取任务信息 |
| | |
| | | commonTaskcallMQ.setSendType("2"); |
| | | |
| | | //通过任务ID拿到患者信息,并且随访时间得是今天之前的 |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid()); |
| | | serviceSubtaskVO.setSendstate(2L); |
| | | serviceSubtaskVO.setVisitTime(new Date()); |
| | |
| | | */ |
| | | public void compensateTask() { |
| | | //获取到sendstate=3 并且 visit_time为小于等于今天的subtask |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setSendstate(3L); |
| | | serviceSubtaskVO.setVisitTime(new Date()); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.getCompensateServiceSubtaskList(serviceSubtaskVO); |
| | |
| | | return !localDate.isAfter(today); |
| | | } |
| | | |
| | | /** |
| | | * 随访-补偿处理 |
| | | * @param serviceSubtask |
| | | */ |
| | | public void sfHandlle(ServiceSubtask serviceSubtask) { |
| | | //这里需要根据身份证去重(给微信小程序的固定任务用的) |
| | | List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>(); |
| | |
| | | serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); |
| | | serviceSubtaskRecord.setResult("success"); |
| | | Boolean wxCodeSuccess = false; |
| | | if(active.equals("hzszlyy")){ |
| | | if(!map.isEmpty() && map.get("success") != null){ |
| | | if (active.equals("hzszlyy")) { |
| | | if (!map.isEmpty() && map.get("success") != null) { |
| | | wxCodeSuccess = (boolean) map.get("success"); |
| | | } |
| | | }else { |
| | | if(!map.isEmpty() && map.get("succ") != null){ |
| | | } else { |
| | | if (!map.isEmpty() && map.get("succ") != null) { |
| | | wxCodeSuccess = (boolean) map.get("succ"); |
| | | } |
| | | } |
| | |
| | | // 找到下一个sort对应的preachform |
| | | String nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1"); |
| | | |
| | | String orgid = serviceSubtask.getOrgid(); |
| | | //微信已发送、已领取跳过短信发送,进行人工 -丽水中医院 |
| | | if (active.equals("47231022633110211A2101")) { |
| | | if (StringUtils.isNotEmpty(orgid) && orgid.equals("47231022633110211A2101")) { |
| | | //获取当前发送方式 |
| | | ServiceSubtaskPreachform currentServiceSubtaskPreachform = serviceSubtaskPreachforms.stream().filter(item -> item.getSort().equals(currentSort.get())).findFirst().orElse(new ServiceSubtaskPreachform()); |
| | | //当前发送方式为微信的,且下一发送方式为短信的,微信发送状态为已发送、已领取的,跳过短信步骤 |
| | | if (currentServiceSubtaskPreachform.getPreachform().equals("5") |
| | | && (currentServiceSubtaskPreachform.getSendstate().equals("2") |
| | | || currentServiceSubtaskPreachform.getSendstate().equals("3"))) { |
| | | if(StringUtils.isNotEmpty(nextPreachform) && nextPreachform.equals("2")){ |
| | | if (currentServiceSubtaskPreachform.getPreachform().equals("5") && (currentServiceSubtaskPreachform.getSendstate().equals("2") || currentServiceSubtaskPreachform.getSendstate().equals("3"))) { |
| | | if (StringUtils.isNotEmpty(nextPreachform) && nextPreachform.equals("2")) { |
| | | log.error("【sfHandlle】微信已发送,短信不发送,跳转人工"); |
| | | setSuccessPreachForm(serviceSubtask, "-1", "微信已发送,短信不发送,跳转人工", "6"); |
| | | //跳过短信,执行下一步 |