| | |
| | | import com.ruoyi.common.enums.MsgLSEnum; |
| | | import com.ruoyi.common.enums.ServiceFromEnum; |
| | | import com.ruoyi.common.enums.WxGZHEnum; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.*; |
| | | import com.ruoyi.common.utils.http.HttpUtils; |
| | | import com.ruoyi.common.utils.sms.smsUtils; |
| | |
| | | import com.ruoyi.system.domain.SysConfig; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.smartor.common.LSHospTokenUtil; |
| | | import com.smartor.common.MtSubmitSmUtil; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.*; |
| | |
| | | @Value("${server.port}") |
| | | private String port; |
| | | |
| | | @Autowired |
| | | private MtSubmitSmUtil mtSubmitSmUtil; |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | |
| | | } catch (Exception e) { |
| | | log.error("【dealHisData】河南数据采集异常", e); |
| | | } |
| | | } else if (active.trim().equals("sltd")) { |
| | | } else if (active.trim().equals("sltd") || active.trim().equals("nhfy")) { |
| | | //省立同德与华南附一用同一套采集方法(都是来未来提供) |
| | | |
| | | try { |
| | | //获取是否需要采集用户、部门信息 |
| | | SysConfig config = new SysConfig(); |
| | |
| | | serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); |
| | | serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); |
| | | List<String> list = new ArrayList<>(); |
| | | // list.add("FH0108.02"); |
| | | list.add("FH0109.22"); |
| | | list.add("FH0109.23"); |
| | | list.add("FH0109.53"); |
| | |
| | | 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); |
| | | // 门急诊分页采集:每页1000条,直到无数据为止 |
| | | 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); |
| | | long outpPage = 1L; |
| | | final long OUTP_PAGE_SIZE = 1000L; |
| | | while (true) { |
| | | serviceSLTDInhospReqVO.setCurrent(outpPage); |
| | | serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE); |
| | | log.debug("【dealHisData】省立同德“门急诊”采集第{}页数据,院区:{}", outpPage, cid); |
| | | List<ServiceSLTDInhospResDTO> outpResult = serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); |
| | | if (CollectionUtils.isEmpty(outpResult)) { |
| | | log.debug("【dealHisData】省立同德“门急诊”第{}页无数据,采集结束,院区:{}", outpPage, cid); |
| | | break; |
| | | } |
| | | log.debug("【dealHisData】省立同德“门急诊”第{}页采集{}条,院区:{}", outpPage, outpResult.size(), cid); |
| | | if (outpResult.size() < OUTP_PAGE_SIZE) { |
| | | break; |
| | | } |
| | | outpPage++; |
| | | } |
| | | // 清除分页参数,避免影响后续出入院查询 |
| | | serviceSLTDInhospReqVO.setCurrent(null); |
| | | serviceSLTDInhospReqVO.setSize(null); |
| | | log.debug("【dealHisData】省立同德“门急诊”分页采集完成,院区:{}", cid); |
| | | |
| | | log.debug("【dealHisData】省立同德“出院”开始采集数据,院区:{}", cid); |
| | | serviceSLTDInhospReqVO.setStartHeadTime(null); |
| | |
| | | //2判断一下,当前的sort是不是等于需要执行的总个数,如果等于的话,说明是最后一个,直接将servuce_subtask的状态改成5,执行失败就行了 |
| | | Long cs = currentSort.get(); |
| | | if (cs.equals(serviceSubtaskPreachforms.size())) { |
| | | if(serviceSubtask.getPreachform().equals("1")){ |
| | | if (serviceSubtask.getPreachform().equals("1")) { |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("处理补偿任务,当前处理最后补偿 人工超时"); |
| | | }else { |
| | | } else { |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("处理补偿任务,当前处理最后补偿,全部执行失败"); |
| | | } |
| | | |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | //修改发送方式的状态为失败 |
| | | if(serviceSubtaskPreachform.getPreachform().equals("1")){ |
| | | if (serviceSubtaskPreachform.getPreachform().equals("1")) { |
| | | serviceSubtaskPreachform.setSendstate("7"); |
| | | serviceSubtaskPreachform.setId(id.get()); |
| | | }else { |
| | | } else { |
| | | serviceSubtaskPreachform.setSendstate("5"); |
| | | serviceSubtaskPreachform.setId(id.get()); |
| | | } |
| | |
| | | if (heLibrary.getHetype().equals("1")) { |
| | | sendMagParam.setPhone(serviceSubtask.getPhone()); |
| | | sendMagParam.setUrl(localIP + ":" + req_path + "/xj?p=" + format); |
| | | if (active.equals("ls") || active.equals("sltd")) { |
| | | if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { |
| | | sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } else if (active.equals("xh")) { |
| | | sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | |
| | | if (code.equals("0")) { |
| | | isSuccess = "true"; |
| | | } |
| | | } else if (active.equals("sltd")) { |
| | | } else if (active.equals("sltd") || active.equals("nhfy")) { |
| | | log.info("sltd进来了吗?{} ,---sendMagParam.getContent()的参数为:{}", active, sendMagParam.getContent()); |
| | | //省立同德的短信发送方式 |
| | | String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | if (StringUtils.isNotEmpty(data)) { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | JsonNode root = mapper.readTree(data); |
| | | String status = root.get("result").get(0).get("status").asText(); |
| | | if (status.equals("00000")) { |
| | | if (active.equals("sltd")) { |
| | | //省立同德的短信发送方式 |
| | | String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); |
| | | if (StringUtils.isNotEmpty(data)) { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | JsonNode root = mapper.readTree(data); |
| | | String status = root.get("result").get(0).get("status").asText(); |
| | | if (status.equals("00000")) { |
| | | isSuccess = "true"; |
| | | } |
| | | } |
| | | } else if (active.equals("nhfy")) { |
| | | Map<String, Object> smsResult = mtSubmitSmUtil.submitSm(sendMagParam.getPhone(), sendMagParam.getContent()); |
| | | if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) { |
| | | isSuccess = "true"; |
| | | } |
| | | } |
| | |
| | | Boolean wxCodeSuccess = false; |
| | | if (active.equals("hzszlyy")) { |
| | | if (!map.isEmpty() && map.get("success") != null) { |
| | | wxCodeSuccess = (boolean) map.get("success"); |
| | | Integer wxCodeSuccessShiyi = (Integer) map.get("success"); |
| | | if (ObjectUtils.isNotEmpty(wxCodeSuccessShiyi) && wxCodeSuccessShiyi == 1) { |
| | | wxCodeSuccess = true; |
| | | } else { |
| | | wxCodeSuccess = false; |
| | | } |
| | | } |
| | | } else { |
| | | if (!map.isEmpty() && map.get("succ") != null) { |
| | |
| | | //说明全发送失败了 |
| | | serviceSubtask.setSendstate(5L); |
| | | log.error("getSendPreachform方法 检查是否所有sendstate不等于9, 全失败了"); |
| | | serviceSubtask.setRemark("所有发送方式均未获取结果,任务失败"); |
| | | //人工发送超时 |
| | | if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){ |
| | | if (ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) { |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("getSendPreachform方法 检查是否所有sendstate不等于9, 人工发送超时"); |
| | | serviceSubtask.setRemark("人工发送超时"); |
| | | } |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | //修改发送状态 |
| | |
| | | serviceSubtaskPreachform.setPreachform(nextPreachform); |
| | | serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform); |
| | | } |
| | | |
| | | return nextPreachform; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | |
| | | subtaskPreachform.setSendstate("5"); |
| | | subtaskPreachform.setId(id.get()); |
| | | //人工发送超时 |
| | | if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){ |
| | | if (ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) { |
| | | subtaskPreachform.setSendstate("7"); |
| | | subtaskPreachform.setRemark("人工发送超时"); |
| | | } |
| | |
| | | if (failSendstate.equals("2")) serviceSubtaskPreachform1.setSendstate("9"); |
| | | } |
| | | serviceSubtaskPreachform1.setRemark(remark); |
| | | if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){ |
| | | if (ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")) { |
| | | serviceSubtaskPreachform1.setSendstate("7"); |
| | | serviceSubtaskPreachform1.setRemark("人工发送超时"); |
| | | } |
| | |
| | | |
| | | //如果当前的preachform已经是最后一个了,那直接将serviceSubtask的sendstate状态改成5就行了(全失败了) |
| | | if (serviceSubtaskPreachform1.getSort() == sspCount.size()) { |
| | | if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){ |
| | | if (ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")) { |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("setSuccessPreachForm方法,人工发送超时"); |
| | | serviceSubtask.setRemark("人工发送超时"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | return true; |
| | | }else { |
| | | } else { |
| | | if (failSendstate.equals("4") || failSendstate.equals("5")) { |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("setSuccessPreachForm方法,当前的preachform已经是最后一个了,全部执行失败"); |
| | | log.error("setSuccessPreachForm方法,当前的preachform已经是最后一个了,全部执行失败"); |
| | | serviceSubtask.setRemark("所有发送方式均未获取结果,任务失败"); |
| | | //serviceSubtask.setRemark("setSuccessPreachForm方法,当前的preachform已经是最后一个了,全部执行失败"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | return true; |
| | | } |
| | |
| | | //将下一次的随访时间与当前执行方式记录一下 |
| | | serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime())); |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){ |
| | | if (ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")) { |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("人工发送超时"); |
| | | }else { |
| | | } else { |
| | | serviceSubtask.setSendstate(3L); |
| | | } |
| | | if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) { |