| | |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.smartor.common.LSHospTokenUtil; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.IBaseSmsaccountService; |
| | | import com.smartor.service.IServiceOutPathService; |
| | |
| | | @Autowired |
| | | private ISysConfigService configService; |
| | | |
| | | // 创建固定大小的线程池 |
| | | private static final ExecutorService executorService = Executors.newFixedThreadPool(10); |
| | | |
| | | public RedisMqReceiver(RedisMessageListenerContainer listenerContainer) { |
| | | super(listenerContainer); |
| | | } |
| | |
| | | ServiceTask serviceTask = new ServiceTask(); |
| | | serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid())); |
| | | |
| | | //在问卷中,选中某个选项要进行服务补偿时,只是借用该服务的外壳,不对该服务有任务影响 |
| | | if (commonTaskcallMQ.getUpdateSendstate() == null || commonTaskcallMQ.getUpdateSendstate() == 1) { |
| | | serviceTask.setSendState(5L); |
| | | serviceTask.setFail(1L); |
| | | serviceTaskMapper.updateServiceTask(serviceTask); |
| | | } |
| | | // //在问卷中,选中某个选项要进行服务补偿时,只是借用该服务的外壳,不对该服务有任务影响 |
| | | // if (commonTaskcallMQ.getUpdateSendstate() == null || commonTaskcallMQ.getUpdateSendstate() == 1) { |
| | | // serviceTask.setSendState(5L); |
| | | // serviceTask.setFail(1L); |
| | | // serviceTaskMapper.updateServiceTask(serviceTask); |
| | | // } |
| | | } catch (Exception e) { |
| | | Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString()); |
| | | if (integer != null && integer == 3) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 任务处理 |
| | | * 任务处理 单次随访 |
| | | * |
| | | * @param commonTaskcallMQ |
| | | */ |
| | |
| | | ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); |
| | | |
| | | //通过任务ID拿到患者信息 |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid()); |
| | | serviceSubtaskVO.setSendstate(2L); |
| | | List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | |
| | | serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); |
| | | |
| | | } else if (descByCode.equals("人工")) { |
| | | setFailPreachForm(serviceSubtask, sendPreachform, "人工待执行", "2"); |
| | | setFailPreachForm(serviceSubtask, sendPreachform, "人工超时", "7"); |
| | | } else if (descByCode.equals("微信小程序")) { |
| | | setFailPreachForm(serviceSubtask, sendPreachform, "微信小程序待执行", "2"); |
| | | } |
| | |
| | | if (allSendStateNot1AndNot9) { |
| | | //说明全发送失败了 |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("-----getSendPreachform,发送方式全部失败"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | } |
| | | return "-1"; |
| | |
| | | if (failSendstate.equals("4") || failSendstate.equals("5")) { |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setRemark("setFailPreachForm方法 当前的preachform已经是最后一个了,全部执行失败"); |
| | | //人工发送超时 |
| | | if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1") && failSendstate.equals("7")){ |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("人工发送超时"); |
| | | } |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | return true; |
| | | } |
| | |
| | | serviceSubtask.setCurrentPreachform(preachform); |
| | | serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); |
| | | serviceSubtask.setSendstate(3L); |
| | | //人工发送超时 |
| | | if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1") && failSendstate.equals("7")){ |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setRemark("人工发送超时"); |
| | | } |
| | | if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) { |
| | | //如果是宣教或通知,并且发送成功,则直接将serviceSubtask状态改成6L(这个患者是没有题做的,不会再触发接口进行状态修改) |
| | | if (failSendstate.equals("2")) { |