|  |  | 
 |  |  |     @Value("${xhsmsPath}") | 
 |  |  |     private String xhsmsPath; | 
 |  |  |  | 
 |  |  |     @Value("${visitHosp}") | 
 |  |  |     private Integer visitHosp; | 
 |  |  |  | 
 |  |  |     @Value("${server.port}") | 
 |  |  |     private String port; | 
 |  |  |  | 
 |  |  |     @Value("${spring.profiles.active}") | 
 |  |  |     private String active; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ISysConfigService configService; | 
 |  |  | 
 |  |  |             //将状态改成完成 | 
 |  |  |             ServiceTask serviceTask = new ServiceTask(); | 
 |  |  |             serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid())); | 
 |  |  |             serviceTask.setSendState(5L); | 
 |  |  |             serviceTask.setFail(1L); | 
 |  |  |             svyTaskMapper.updateServiceTask(serviceTask); | 
 |  |  |  | 
 |  |  |             //在问卷中,选中某个选项要进行服务补偿时,只是借用该服务的外壳,不对该服务有任务影响 | 
 |  |  |             if (commonTaskcallMQ.getUpdateSendstate() == null || commonTaskcallMQ.getUpdateSendstate() == 1) { | 
 |  |  |                 serviceTask.setSendState(5L); | 
 |  |  |                 serviceTask.setFail(1L); | 
 |  |  |                 svyTaskMapper.updateServiceTask(serviceTask); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString()); | 
 |  |  |             if (integer != null && integer == 3) { | 
 |  |  | 
 |  |  |             serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); | 
 |  |  |             //获取发送方式 | 
 |  |  |             String sendPreachform = getSendPreachform(serviceSubtaskPreachform, serviceSubtask); | 
 |  |  |             log.info("sendPreachform的值为:{}", sendPreachform); | 
 |  |  |             if (sendPreachform.equals("-1") || serviceSubtask.getSendstate() == 6 || serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 4) { | 
 |  |  |                 //说明已经全部遍历完了,当前的执行方式序号是最后一个了   或者  该患者已经随访结束(成功或失败了或不执行) | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(sendPreachform)); | 
 |  |  |             if (descByCode.equals("电话")) { | 
 |  |  |                 try { | 
 |  |  | 
 |  |  |                         iServiceOutPathService.updateServiceOutPath(serviceOutPath); | 
 |  |  |                         sendMagParam.setPhone(serviceSubtask.getPhone()); | 
 |  |  |                         sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); | 
 |  |  |                         if (visitHosp == 2) { | 
 |  |  |                             sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                         } else if (visitHosp == 1) { | 
 |  |  |                         if (active.equals("ls") || active.equals("sltd")) { | 
 |  |  |                             sendMagParam.setContent("您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                         } else if (active.equals("xh")) { | 
 |  |  |                             sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  | 
 |  |  |                         //如果type是语音随访的话(说明补偿发送方式中有电话随访的方式,这里的外链就地址只能用/sf) | 
 |  |  |                         if (serviceSubtask.getType().equals("1")) | 
 |  |  |                             sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); | 
 |  |  |                         if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { | 
 |  |  |                             sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                         } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { | 
 |  |  |                             sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                         } else sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); | 
 |  |  |                         if (active.equals("ls") || active.equals("ssltd")) { | 
 |  |  |                             sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                         } else if (active.equals("xh")) { | 
 |  |  |                             sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); | 
 |  |  |                         } else if (active.equals("druid")) { | 
 |  |  |                             sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); | 
 |  |  |                         } | 
 |  |  |                     } else if (type == 3) { | 
 |  |  |                         //宣教 | 
 |  |  |                         ServiceOutPath serviceOutPath = new ServiceOutPath(); | 
 |  |  | 
 |  |  |                         if (heLibrary.getHetype().equals("1")) { | 
 |  |  |                             sendMagParam.setPhone(serviceSubtask.getPhone()); | 
 |  |  |                             sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format); | 
 |  |  |                             if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { | 
 |  |  |                                 sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                             } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { | 
 |  |  |                                 sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                             } else | 
 |  |  |                             if (active.equals("ls") || active.equals("sltd")) { | 
 |  |  |                                 sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                             } else if (active.equals("xh")) { | 
 |  |  |                                 sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); | 
 |  |  |                             } | 
 |  |  |                         } else { | 
 |  |  |                             //通知 | 
 |  |  |                             sendMagParam.setPhone(serviceSubtask.getPhone()); | 
 |  |  | 
 |  |  |  | 
 |  |  |                     //短信还需要模板 | 
 |  |  |                     String s = null; | 
 |  |  |                     if (visitHosp == 1) { | 
 |  |  |                     if (active.equals("xh")) { | 
 |  |  |                         //新华的短信发送方式 | 
 |  |  |                         Map<String, String> req = new HashMap<>(); | 
 |  |  |                         req.put("phone", sendMagParam.getPhone()); | 
 |  |  |                         req.put("content", sendMagParam.getContent()); | 
 |  |  |                         s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); | 
 |  |  |                     } else if (visitHosp == 2) { | 
 |  |  |                     } else if (active.equals("ls")) { | 
 |  |  |                         String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid()); | 
 |  |  |                         log.info("-------00token.360的URL为:{}", url); | 
 |  |  |                         //丽水的短信发送方式 | 
 |  |  |                         Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); | 
 |  |  |                         log.info("-----------map的值为:{}", map); | 
 |  |  |                         String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), url); | 
 |  |  |                         log.info("-----------token的值为:{}", token); | 
 |  |  |                         if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { | 
 |  |  | 
 |  |  |                         log.info("---------丽水短信发送结果:{}-------", dxCode); | 
 |  |  |                         ObjectMapper objectMapper = new ObjectMapper(); | 
 |  |  |                         Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class); | 
 |  |  |                         log.info("---------丽水短信发送结果--textParam的值为:{}-------", textParam); | 
 |  |  |                         String code = textParam.get("Code").toString(); | 
 |  |  |                         if (code.equals("0")) { | 
 |  |  |                             s = "true"; | 
 |  |  | 
 |  |  |                             setFailPreachForm(serviceSubtask, sendPreachform, "短信发送失败", "5"); | 
 |  |  |                             throw new BaseException("短信发送失败"); | 
 |  |  |                         } | 
 |  |  |                     } else if (visitHosp == 3) { | 
 |  |  |                     } else if (active.equals("sltd")) { | 
 |  |  |                         //省立同德的短信发送方式 | 
 |  |  |                         JSONObject data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); | 
 |  |  |                         String code = data.get("code").toString(); | 
 |  |  | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                     String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx); | 
 |  |  |                     log.error("wxCode的值为:{}", wxCode); | 
 |  |  |                     Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); | 
 |  |  | 
 |  |  |  | 
 |  |  |             } else if (descByCode.equals("人工")) { | 
 |  |  |                 setFailPreachForm(serviceSubtask, sendPreachform, "人工待执行", "2"); | 
 |  |  |             } else if (descByCode.equals("微信小程序")) { | 
 |  |  |                 setFailPreachForm(serviceSubtask, sendPreachform, "微信小程序待执行", "2"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private String getSendPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform, ServiceSubtask serviceSubtask) { | 
 |  |  |         log.info("-----getSendPreachform的serviceSubtaskPreachform入参:{},------serviceSubtask:{}", serviceSubtaskPreachform, serviceSubtask); | 
 |  |  |         List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); | 
 |  |  |  | 
 |  |  |         // 情况1:currentPreachform为空,取sort为1的preachform | 
 |  |  | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Boolean setFailPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) { | 
 |  |  |         log.info("^^^^^^^^^--------setFailPreachForm的入参为serviceSubtask:{}   ,preachform值为:{},  failSendstate:{}", serviceSubtask, preachform, failSendstate); | 
 |  |  |         if (preachform.equals("-1")) { | 
 |  |  |             //说明都不需要执行了 | 
 |  |  |             ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); | 
 |  |  | 
 |  |  |             serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); | 
 |  |  |             serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); | 
 |  |  |             serviceSubtaskPreachform.setSendstate(failSendstate); | 
 |  |  |             if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) { | 
 |  |  |                 //如果是宣教或通知,并且发送成功,直接将发送状态改成9 | 
 |  |  |                 if (failSendstate.equals("2")) serviceSubtaskPreachform.setSendstate("9"); | 
 |  |  |             } | 
 |  |  |             serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform); | 
 |  |  |  | 
 |  |  |             return true; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |         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); | 
 |  |  |             //如果当前的preachform已经是最后一个了,并且本次还是发送失败,那直接将serviceSubtask的sendstate状态改成5就行了(全失败了) | 
 |  |  | 
 |  |  |             log.error("【MQ中该患者没有查询到属于他的发送方式,subid:{},prechform:{},orgid:{}】", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid()); | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         log.info("^^^^^^^^^--------preachform的值为:{}", preachform); | 
 |  |  |         serviceSubtask.setCurrentPreachform(preachform); | 
 |  |  |         serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); | 
 |  |  |         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; | 
 |  |  |     } |