| | |
| | | import com.ruoyi.common.utils.http.HttpUtils; |
| | | import com.ruoyi.common.utils.sms.smsUtils; |
| | | import com.ruoyi.quartz.service.ICollectHISService; |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.smartor.common.LSHospTokenUtil; |
| | | import com.smartor.domain.*; |
| | |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Paths; |
| | | import java.security.MessageDigest; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.time.ZoneId; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static cn.hutool.core.convert.Convert.toHex; |
| | | |
| | |
| | | } |
| | | } else if (active.trim().equals("sltd")) { |
| | | try { |
| | | //获取是否需要采集用户、部门信息 |
| | | SysConfig config = new SysConfig(); |
| | | config.setConfigKey("sltd.gather.sysuser"); |
| | | config.setOrgid("20001001"); |
| | | List<SysConfig> sysConfigs = configService.selectConfigList(config); |
| | | |
| | | //获取省立同德要采集的院区 |
| | | SysConfig cf = new SysConfig(); |
| | | cf.setConfigKey("sltd.gather.campusid"); |
| | | cf.setOrgid("20001001"); |
| | | List<SysConfig> sysConfigcampusids = configService.selectConfigList(cf); |
| | | |
| | | List<Long> campusidList = new ArrayList<>(); |
| | | if (CollectionUtils.isNotEmpty(sysConfigcampusids)) { |
| | | String[] split = sysConfigcampusids.get(0).getConfigValue().split(","); |
| | | campusidList = Arrays.stream(split).map(Long::valueOf).collect(Collectors.toList()); |
| | | } else { |
| | | log.error("SysConfig中的院区ID为空!"); |
| | | return; |
| | | } |
| | | |
| | | //configValue = 1 不需要采集 configValue = 2需要采集 |
| | | if (CollectionUtils.isNotEmpty(sysConfigs) && sysConfigs.get(0).getConfigValue().equals("2")) { |
| | | log.info("【dealHisData】省立同德“部门信息”开始采集数据"); |
| | | ServiceSLTDDeptReqVO serviceSLTDDeptReqVO = new ServiceSLTDDeptReqVO(); |
| | | serviceSLTDDeptReqVO.setOrgId("20001001"); |
| | | serviceSLTDDeptReqVO.setCampusIds(campusidList); |
| | | Boolean aBoolean1 = serviceSLTDHealthcareRecordService.queryDeptWardAreaInfoList(serviceSLTDDeptReqVO); |
| | | log.info("【dealHisData】省立同德“部门信息”结束采集数据:{}", aBoolean1); |
| | | |
| | | Boolean aBoolean = false; |
| | | for (Long cid : campusidList) { |
| | | log.info("【dealHisData】省立同德“用户信息”开始采集数据,院区:{}", cid); |
| | | ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO(); |
| | | reqVO.setOrgId("20001001"); |
| | | reqVO.setCampusId(cid); |
| | | ArrayList<String> statusList = new ArrayList<>(); |
| | | statusList.add("1"); |
| | | reqVO.setStatusList(statusList); |
| | | aBoolean = serviceSLTDHealthcareRecordService.queryHospUserInfoList(reqVO); |
| | | } |
| | | log.info("【dealHisData】省立同德“用户信息”结束采集数据:{}", aBoolean); |
| | | } |
| | | |
| | | // 省立同德数据采集 |
| | | log.info("【dealHisData】省立同德“入院”开始采集数据"); |
| | | String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO(); |
| | | serviceSLTDInhospReqVO.setOrgId("20001001"); |
| | | serviceSLTDInhospReqVO.setCampusId(30001002L); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(yesterday); |
| | | serviceSLTDInhospReqVO.setStartTailTime(yesterday); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add("FH0108.02"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】省立同德“入院”結束采集数据"); |
| | | for (Long cid : campusidList) { |
| | | log.info("【dealHisData】省立同德“入院”开始采集数据,院区:{}", cid); |
| | | String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); |
| | | ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO(); |
| | | serviceSLTDInhospReqVO.setOrgId("20001001"); |
| | | serviceSLTDInhospReqVO.setCampusId(cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(nowTime); |
| | | serviceSLTDInhospReqVO.setStartTailTime(nowTime); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add("FH0108.02"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list); |
| | | log.info("【dealHisData】省立同德“入院”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】省立同德“入院”結束采集数据,院区:{}", cid); |
| | | |
| | | log.info("【dealHisData】省立同德“门急诊”开始采集数据"); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(yesterday); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(yesterday); |
| | | List<String> list1 = new ArrayList<>(); |
| | | list1.add("FH0108.01"); |
| | | list1.add("FH0108.03"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】河南结“门急诊”束采集数据"); |
| | | log.info("【dealHisData】省立同德“门急诊”开始采集数据,院区:{}", cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); |
| | | List<String> list1 = new ArrayList<>(); |
| | | list1.add("FH0108.01"); |
| | | list1.add("FH0108.03"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); |
| | | log.info("【dealHisData】省立同德“门急诊”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】省立同德“门急诊”束采集数据,院区:{}", cid); |
| | | |
| | | log.info("【dealHisData】省立同德“出院”开始采集数据"); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(null); |
| | | serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(yesterday); |
| | | serviceSLTDInhospReqVO.setPreOutHospitalTailDate(yesterday); |
| | | List<String> list2 = new ArrayList<>(); |
| | | list2.add("FH0108.02"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list2); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】河南结“出院”束采集数据"); |
| | | |
| | | log.info("【dealHisData】省立同德“出院”开始采集数据,院区:{}", cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | | serviceSLTDInhospReqVO.setStartTailTime(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(null); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(null); |
| | | serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(nowTime); |
| | | serviceSLTDInhospReqVO.setPreOutHospitalTailDate(nowTime); |
| | | List<String> list2 = new ArrayList<>(); |
| | | list2.add("FH0108.02"); |
| | | serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list2); |
| | | log.info("【dealHisData】省立同德“出院”采集数据入参:{}", serviceSLTDInhospReqVO); |
| | | serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | log.info("【dealHisData】省立同德“出院”束采集数据,院区:{}", cid); |
| | | } |
| | | // SysConfig sysConfig = sysConfigs.get(0); |
| | | // sysConfig.setConfigValue(nowTime); |
| | | // configService.updateConfig(sysConfig); |
| | | } catch (Exception e) { |
| | | log.error("【dealHisData】省立同德数据采集异常", e); |
| | | } |
| | |
| | | sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); |
| | | } else { |
| | | HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); |
| | | if ("2".equals(heLibrary.getHetype())) { |
| | | if (heLibrary.getHetype().equals("1")) { |
| | | sendMagParam.setPhone(serviceSubtask.getPhone()); |
| | | sendMagParam.setUrl(localIP + ":" + req_path + "/xj?p=" + format); |
| | | if (active.equals("ls") || active.equals("sltd")) { |
| | | sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } else if (active.equals("xh")) { |
| | | sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } |
| | | } else if (heLibrary.getHetype().equals("2")) { |
| | | //通知 |
| | | sendMagParam.setPhone(serviceSubtask.getPhone()); |
| | | sendMagParam.setContent(heLibrary.getPreachcontent()); |
| | | } |
| | | |
| | | } |
| | | String isSuccess = null; |
| | | log.info("active的值为:{}", active); |
| | | if (active.equals("xh")) { |
| | | Map<String, String> req = new HashMap<>(); |
| | | req.put("phone", sendMagParam.getPhone()); |
| | |
| | | isSuccess = "true"; |
| | | } |
| | | } else if (active.equals("sltd")) { |
| | | log.info("sltd进来了吗?{} ,---sendMagParam.getContent()的参数为:{}", active, sendMagParam.getContent()); |
| | | //省立同德的短信发送方式 |
| | | JSONObject data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | String code = data.get("code").toString(); |
| | | if (StringUtils.isNotEmpty(code) && code.equals("00000")) { |
| | | String data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | if (StringUtils.isNotEmpty(data) && data.contains("result=0")) { |
| | | isSuccess = "true"; |
| | | } |
| | | } else if (active.equals("hzszlyy")) {//市一医院 |
| | |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { |
| | | ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); |
| | | serviceSubtaskPreachform1.setSendstate(failSendstate); |
| | | if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) { |
| | | //如果是宣教或通知,并且发送成功,直接将发送状态改成9 |
| | | if (failSendstate.equals("2")) serviceSubtaskPreachform1.setSendstate("9"); |
| | | } |
| | | serviceSubtaskPreachform1.setRemark(remark); |
| | | serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1); |
| | | |
| | |
| | | serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime())); |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setSendstate(3L); |
| | | if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) { |
| | | //如果是宣教或通知,并且发送成功,则直接将serviceSubtask状态改成6L(这个患者是没有题做的,不会再触发接口进行状态修改) |
| | | if (failSendstate.equals("2")) { |
| | | serviceSubtask.setSendstate(6L); |
| | | } |
| | | } |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | return true; |
| | | } |