liusheng
2024-07-16 17a443d510a0aa4c545df0d11467ff17a24cfa6a
smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java
@@ -67,8 +67,8 @@
            serviceTask.setTaskid(sendTaskVO.getTaskId());
            serviceTask.setStopState(ivrTask.getStopState() + 1);
            serviceTask.setSendState(sendTaskVO.getSendState());
            ivrTaskService.updateServiceTask(serviceTask);
            return 0;
            int i = ivrTaskService.updateServiceTask(serviceTask);
            return i;
        }
        //判断发送状态是否为空
@@ -86,6 +86,7 @@
            serviceTask.setTaskid(ivrTask.getTaskid());
            serviceTask.setSendState(2);
            ivrTaskService.updateServiceTask(serviceTask);
            log.error("消息发送成功");
        } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) {
            //时间段发送
            ObjectMapper objectMapper = new ObjectMapper();
@@ -98,9 +99,9 @@
                    log.error("JsonProcessingException报错了:{}", e.getMessage());
                }
                for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) {
                    //去SendTimeslot中,获取所有的时间段
                    List<TaskSendTimeVO> list = new ArrayList<>();
                    list.add(taskSendTimeVO);
//                    //去SendTimeslot中,获取所有的时间段
//                    List<TaskSendTimeVO> list = new ArrayList<>();
//                    list.add(taskSendTimeVO);
                    //获取开始发送时间
                    String begantime = taskSendTimeVO.getBegantime();
@@ -111,14 +112,15 @@
                        Date date = sdf.parse(begantime);
                        milliseconds = date.getTime() - System.currentTimeMillis();
                        System.out.println("日期毫秒数:" + milliseconds);
                        SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class);
                        sendTaskVO1.setSendType("1");
                        String content = sendMQContent(sendTaskVO1, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), taskSendTimeVO);
                        redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS);
                    } catch (Exception e) {
                        e.printStackTrace();
                        if (milliseconds < 0)
                            throw new BaseException("请检查任务开始时间,不能小于当前时间");
                    }
                    SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class);
                    sendTaskVO1.setSendType("1");
                    String content = sendMQContent(sendTaskVO1, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), list);
                    redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS);
                }
                //将任务状态修改成执行中
                ServiceTask serviceTask = new ServiceTask();
@@ -126,8 +128,7 @@
                serviceTask.setSendState(2);
                ivrTaskService.updateServiceTask(serviceTask);
            }
        }
        return 1;
        } return 1;
    }
    public int wjSend(SendTaskVO sendTaskVO) {
@@ -171,8 +172,8 @@
                }
                for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) {
                    //去SendTimeslot中,获取所有的时间段
                    List<TaskSendTimeVO> list = new ArrayList<>();
                    list.add(taskSendTimeVO);
//                    List<TaskSendTimeVO> list = new ArrayList<>();
//                    list.add(taskSendTimeVO);
                    //获取开始发送时间
                    String begantime = taskSendTimeVO.getBegantime();
@@ -189,7 +190,7 @@
                    SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class);
                    sendTaskVO1.setSendType("1");
                    String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), list);
                    String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO);
                    redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS);
                }
                //将任务状态修改成执行中
@@ -243,8 +244,8 @@
                }
                for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) {
                    //去SendTimeslot中,获取所有的时间段
                    List<TaskSendTimeVO> list = new ArrayList<>();
                    list.add(taskSendTimeVO);
//                    List<TaskSendTimeVO> list = new ArrayList<>();
//                    list.add(taskSendTimeVO);
                    //获取开始发送时间
                    String begantime = taskSendTimeVO.getBegantime();
@@ -261,7 +262,7 @@
                    SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class);
                    sendTaskVO1.setSendType("1");
                    String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), list);
                    String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO);
                    redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS);
                }
                //将任务状态修改成执行中
@@ -284,7 +285,7 @@
     * @param sendTimeslot
     * @return
     */
    private String sendMQContent(SendTaskVO sendTaskVO, String templateid, String preachform, Long stopState, List<TaskSendTimeVO> sendTimeslot) {
    private String sendMQContent(SendTaskVO sendTaskVO, String templateid, String preachform, Long stopState, TaskSendTimeVO sendTimeslot) {
        CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
        commonTaskcallMQ.setTaskid(sendTaskVO.getTaskId());
        commonTaskcallMQ.setSendType(sendTaskVO.getSendType());