| | |
| | | import com.smartor.mapper.ServiceTaskMapper; |
| | | import com.smartor.mapper.SysUserImportMapper; |
| | | import com.smartor.service.*; |
| | | import com.sun.org.apache.bcel.internal.generic.NEW; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | |
| | | private IPatMedInhospService iPatMedInhospService; |
| | | |
| | | @Autowired |
| | | private IPatMedOuthospService iPatMedOuthospService; |
| | | |
| | | @Autowired |
| | | private IPatMedOperationService iPatMedOperationService; |
| | | |
| | | @Autowired |
| | | private IServiceSubtaskService iServiceSubtaskService; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Value("${req_path}") |
| | | private String req_path; |
| | | |
| | | @Value("${visitHosp}") |
| | | private Integer visitHosp; |
| | | |
| | | @Autowired |
| | | private ServiceTaskMapper serviceTaskMapper; |
| | |
| | | |
| | | @Value("${hosp_info_url}") |
| | | private String hospInfoUrl; |
| | | |
| | | @Value("${appid}") |
| | | private String appid; |
| | | |
| | | @Value("${server.port}") |
| | | private String port; |
| | | |
| | | public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { |
| | | System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); |
| | |
| | | public void dealHisData2() { |
| | | //将患者信息、出院、门诊数据全部采集 |
| | | // 指定的开始日期 |
| | | LocalDate endDate = LocalDate.of(2024, 9, 1); |
| | | LocalDate endDate = LocalDate.of(2025, 3, 3); |
| | | // 当前日期 |
| | | LocalDate currentDate = LocalDate.now(); |
| | | // 定义日期格式 |
| | |
| | | * 处理患者信息,进入子任务表 |
| | | */ |
| | | public void dealOutHospInfo() { |
| | | iPatMedInhospService.dealOutHospInfo(); |
| | | if (port.equals("8095")) { |
| | | //出院表 |
| | | iPatMedInhospService.dealOutHospInfo(); |
| | | //门诊表 |
| | | if (visitHosp != 1) { |
| | | iPatMedOuthospService.dealOutpatientInfo(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | * 处理手术信息,进入子任务表 |
| | | */ |
| | | public void dealOperationInfo() { |
| | | iPatMedInhospService.dealOutHospInfo(); |
| | | if (port.equals("8095")) iPatMedOperationService.dealOperationInfo(); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 处理患者信息,进入子任务表(微信小程序) |
| | | */ |
| | | public void dealOutHospInfoXHC() { |
| | | PatMedInhosp patMedInhosp = new PatMedInhosp(); |
| | | //获取未处理的数据 |
| | | List<ServicePatientTemp> servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp()); |
| | | |
| | | if (port.equals("8095")) { |
| | | PatMedInhosp patMedInhosp = new PatMedInhosp(); |
| | | //获取未处理的数据 |
| | | List<ServicePatientTemp> servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp()); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | //如何任务被“暂停”或“终止” |
| | | break; |
| | | } |
| | | if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) { |
| | | serviceSubtask.setRemark("手机号为空"); |
| | | serviceSubtask.setSendstate(4L); |
| | | serviceSubtask.setResult("error"); |
| | | serviceSubtask.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | continue; |
| | | } |
| | | boolean dateToday = isDateToday(serviceSubtask.getLongSendTime()); |
| | | //说明是立即发送(先把消息放到cache-0中, displayNo不知道怎么配置) |
| | | if (dateToday) { |
| | |
| | | //纸质 |
| | | } else if (descByCode.equals("微信小程序")) { |
| | | //微信小程序 |
| | | for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { |
| | | log.error("微信小程序期任务发送---------进来了吗?{}", serviceSubtask); |
| | | log.error("ivrTask1的值为:{}", ivrTask1); |
| | | if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) { |
| | | //说明该任务的患者是循环执行的 |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | serviceSubtaskVO.setTaskid(ivrTask1.getTaskid()); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | //这里需要根据身份证去重 |
| | | List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>(); |
| | | aa: |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | for (ServiceSubtask ss : serviceSubtaskListFilter) { |
| | | if (ss.getSfzh().equals(serviceSubtask.getSfzh())) { |
| | | continue aa; |
| | | } |
| | | } |
| | | serviceSubtaskListFilter.add(serviceSubtask); |
| | | } |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskListFilter) { |
| | | //将子任务ID删除 、sendstate改成3 |
| | | serviceSubtask.setSendstate(3L); |
| | | serviceSubtask.setId(null); |
| | | serviceSubtask.setFinishtime(null); |
| | | serviceSubtask.setCreateTime(new Date()); |
| | | serviceSubtask.setUpdateTime(new Date()); |
| | | //处理重复新增问题,先查一下今天是不是有新增过,新增过就不新增了 |
| | | ServiceSubtaskVO ssvo = new ServiceSubtaskVO(); |
| | | LocalDate today = LocalDate.now(); |
| | | LocalTime startOfDay = LocalTime.of(0, 0, 0); |
| | | LocalTime endOfDay = LocalTime.of(23, 59, 59); |
| | | Date startOfDayDate = Date.from(today.atTime(startOfDay).atZone(ZoneId.systemDefault()).toInstant()); |
| | | Date endOfDayDate = Date.from(today.atTime(endOfDay).atZone(ZoneId.systemDefault()).toInstant()); |
| | | ssvo.setCreateStartTime(startOfDayDate); |
| | | ssvo.setCreateEndTime(endOfDayDate); |
| | | ssvo.setCreateBy(serviceSubtask.getCreateBy()); |
| | | ssvo.setSendname(serviceSubtask.getSendname()); |
| | | ssvo.setSfzh(serviceSubtask.getSfzh()); |
| | | List<ServiceSubtask> serviceSubtaskListByCreateTime = serviceSubtaskMapper.selectServiceSubtaskListByCreateTime(ssvo); |
| | | if (CollectionUtils.isEmpty(serviceSubtaskListByCreateTime)) |
| | | serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | } |
| | | } |
| | | } else if (descByCode.equals("短信")) { |
| | | RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); |
| | |
| | | continue; |
| | | } |
| | | String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); |
| | | String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); |
| | | SendMagParam sendMagParam = new SendMagParam(); |
| | | sendMagParam.setType("4"); |
| | | ServiceOutPath serviceOutPath = new ServiceOutPath(); |
| | | serviceOutPath.setParam1(taskId); |
| | | serviceOutPath.setParam2(patid); |
| | | serviceOutPath.setParam3(ivrTask1.getTaskName()); |
| | | serviceOutPath.setParam6(subId); |
| | | serviceOutPath.setCreateTime(new Date()); |
| | | iServiceOutPathService.insertServiceOutPath(serviceOutPath); |
| | | String format = String.format("%03X", serviceOutPath.getId()); |
| | |
| | | String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); |
| | | String url = null; |
| | | url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; |
| | | String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无"); |
| | | // String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无"); |
| | | |
| | | String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatientno()); |
| | | |
| | | Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); |
| | | |
| | | //任务发送记录 |
| | |
| | | String filename = null; |
| | | if (cry.equals("0")) filename = "入院信息" + System.currentTimeMillis(); |
| | | if (cry.equals("1")) filename = "出院信息" + System.currentTimeMillis(); |
| | | File file = new File("D:\\public\\华卓集成平台数据\\" + filename); |
| | | File file = new File("D:\\public\\HIS数据采集\\" + filename); |
| | | if (!file.exists()) { |
| | | // 如果文件不存在,则创建新文件 |
| | | try { |
| | |
| | | patArchive.setSex(thiedInhospInfo.getPatiRecordGender().equals("男") ? 1L : 2L); |
| | | patArchive.setNation(thiedInhospInfo.getPatiNation()); |
| | | patArchive.setNativePlace(thiedInhospInfo.getPatiNationality()); |
| | | patArchive.setPlaceOfResidence(thiedInhospInfo.getPatiHomeAddr()); |
| | | patArchive.setPlaceOfResidence(StringUtils.isNotEmpty(thiedInhospInfo.getPatiHomeAddr()) ? thiedInhospInfo.getPatiHomeAddr().replace("null", "") : ""); |
| | | try { |
| | | if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiBirthday())) |
| | | patArchive.setBirthdate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getPatiBirthday())); |
| | | patArchive.setBirthdate(new SimpleDateFormat("yyyy-MM-dd").parse(thiedInhospInfo.getPatiBirthday())); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | patMedInhosp.setNurseId(thiedInhospInfo.getNurseId()); |
| | | patMedInhosp.setNurseName(thiedInhospInfo.getNurseName()); |
| | | patMedInhosp.setSerialnum(thiedInhospInfo.getInpatientId()); |
| | | patMedInhosp.setFuflag("1"); |
| | | if (cry.equals("0")) { |
| | | patMedInhosp.setInhospstate("0"); |
| | | } else if (cry.equals("1")) { |
| | |
| | | patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId()); |
| | | patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName()); |
| | | patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode()); |
| | | patMedInhosp.setOrgid("1"); |
| | | //如果是出院,先通过患者编号和流水号去查一下,患者是否存在,如果存在,则进行修改 |
| | | PatMedInhosp inhosp = new PatMedInhosp(); |
| | | inhosp.setPatno(patArchive.getPatientno()); |
| | |
| | | return key; |
| | | } |
| | | |
| | | private String getWXCode(String idcard, String url, String taskName, String taskDesc, String submitprompt) { |
| | | private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String setPatientname, String setPatientid) { |
| | | XinHuaWXReq xinHuaWXReq = new XinHuaWXReq(); |
| | | xinHuaWXReq.setIdcard(idcard); |
| | | xinHuaWXReq.setUrl(url); |
| | | xinHuaWXReq.setKeyword1("浙中医大二院出院随访"); |
| | | xinHuaWXReq.setKeyword2(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
| | | xinHuaWXReq.setKeyword3(taskName); |
| | | xinHuaWXReq.setKeyword4("疾病康复注意事项"); |
| | | |
| | | xinHuaWXReq.setPatientid(setPatientid); |
| | | xinHuaWXReq.setPatientname(setPatientname); |
| | | xinHuaWXReq.setMobile(phone); |
| | | xinHuaWXReq.setMedcardno(null); |
| | | xinHuaWXReq.setTitlename(taskName); |
| | | xinHuaWXReq.setContent(taskDesc); |
| | | xinHuaWXReq.setAppid(appid); |
| | | log.error("----getWXCode---xinHuaWXReq的出参为:{}", xinHuaWXReq); |
| | | String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq)); |
| | | JSONObject jsonObject = JSONObject.parseObject(result); |
| | | log.error("jsonObject的数据为:{}", jsonObject.toString()); |
| | | // String code = (String) jsonObject.get("code"); |
| | | return jsonObject.toString(); |
| | | String code = (String) jsonObject.toString(); |
| | | return code; |
| | | } |
| | | |
| | | // public static void main(String[] args) { |
| | | // LocalDateTime originalDateTime = LocalDateTime.now(); |
| | | // LocalDateTime startOfDay = originalDateTime.with(LocalTime.MIN); |