| | |
| | | Long cs = currentSort.get(); |
| | | if (cs.equals(serviceSubtaskPreachforms.size())) { |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("处理补偿任务,当前处理最后补偿,全部执行失败"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | //修改发送方式的状态为失败 |
| | | serviceSubtaskPreachform.setSendstate("5"); |
| | |
| | | wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx); |
| | | } |
| | | |
| | | Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); |
| | | Map map = JSONObject.parseObject(wxCode, Map.class); |
| | | //任务发送记录 |
| | | ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); |
| | | serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); |
| | |
| | | serviceSubtaskRecord.setPreachform("4"); |
| | | serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); |
| | | serviceSubtaskRecord.setResult("success"); |
| | | if (!map.isEmpty() && (Boolean) map.get("succ") == false) serviceSubtaskRecord.setResult("error"); |
| | | Boolean wxCodeSuccess = false; |
| | | if(active.equals("hzszlyy")){ |
| | | if(!map.isEmpty() && map.get("success") != null){ |
| | | wxCodeSuccess = (boolean) map.get("success"); |
| | | } |
| | | }else { |
| | | if(!map.isEmpty() && map.get("succ") != null){ |
| | | wxCodeSuccess = (boolean) map.get("succ"); |
| | | } |
| | | } |
| | | if (!map.isEmpty() && !wxCodeSuccess) serviceSubtaskRecord.setResult("error"); |
| | | serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); |
| | | |
| | | //发送完成后,修改状态 |
| | | serviceSubtask.setSendstate(3L); |
| | | if ((Boolean) map.get("succ") == true) { |
| | | if (wxCodeSuccess) { |
| | | serviceSubtask.setResult("success"); |
| | | setSuccessPreachForm(serviceSubtask, sendPreachform, "【公众号】公众号发送成功", "2"); |
| | | } else { |
| | |
| | | Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst(); |
| | | |
| | | if (currentSort.isPresent()) { |
| | | //微信已发送、已领取视为发送成功,不再进行补偿 -丽水中医院 |
| | | if (active.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"))) { |
| | | return "-1"; |
| | | } |
| | | } |
| | | |
| | | // 检查是否所有sendstate不等于9 |
| | | boolean allSendStateNot1AndNot9 = serviceSubtaskPreachforms.stream().allMatch(item -> !item.getSendstate().equals("9")); |
| | | if (!allSendStateNot1AndNot9) { |
| | |
| | | if (allSendStateNot1AndNot9) { |
| | | //说明全发送失败了 |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("getSendPreachform方法 检查是否所有sendstate不等于9, 全失败了"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | //修改发送状态 |
| | | setFail(serviceSubtaskPreachforms, serviceSubtask); |
| | |
| | | |
| | | // 当sort等于列表size时,下一个sort为-1 |
| | | Long nextSort = currentSort.get() + 1; |
| | | |
| | | //如果当前的发送方式不为空,并且开始准备要用下一种方式发送了,那当前的肯定没有发送成功,需要设置失败 |
| | | // (这里主要是,人工如果没有随访,然后到公众号的时候,就不会再去管人工是否成功,人工的状态会一直卡在2的状态上) |
| | | if (StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform())) { |
| | |
| | | // 找到下一个sort对应的preachform |
| | | String nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1"); |
| | | |
| | | //微信已发送、已领取跳过短信发送,进行人工 -丽水中医院 |
| | | if (active.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")){ |
| | | log.error("【sfHandlle】微信已发送,短信不发送,跳转人工"); |
| | | setSuccessPreachForm(serviceSubtask, "-1", "微信已发送,短信不发送,跳转人工", "6"); |
| | | //跳过短信,执行下一步 |
| | | Long newNextSort = nextSort + 1; |
| | | //找到短信再下一个sort对应的preachform |
| | | nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> newNextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1"); |
| | | } |
| | | } |
| | | } |
| | | //更新一下当前发送时间 |
| | | if (StringUtils.isNotEmpty(nextPreachform)) { |
| | | serviceSubtaskPreachform.setCurrentSendTime(new Date()); |
| | |
| | | if (failSendstate.equals("4") || failSendstate.equals("5")) { |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("setSuccessPreachForm方法,当前的preachform已经是最后一个了,全部执行失败"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | return true; |
| | | } |