liusheng
2026-05-01 336d113220f675976f864ad3eab7df7cd432808d
Merge branch 'master' of http://116.62.18.175:6699/r/smartor
已修改8个文件
已添加1个文件
278 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-ls.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskIsAbnormalStatistic.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -20,6 +20,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.quartz.task.RyTask;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDeptService;
import com.smartor.domain.*;
@@ -77,6 +78,9 @@
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private RyTask ryTask;
    @Value("${spring.profiles.active}")
    private String active;
@@ -580,6 +584,25 @@
        return success(serviceStatistics);
    }
    /**
     * éšè®¿å¼‚常统计导出-废案 æš‚时不使用
     */
    //@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
    @Log(title = "随访统计导出", businessType = BusinessType.EXPORT)
    @PostMapping("/getSfStatisticsIsAbnormalExport")
    public void getSfStatisticsIsAbnormalExport(HttpServletResponse response, ServiceSubtaskCountReq serviceSubtaskCountReq) {
        List<ServiceSubtaskIsAbnormalStatistic> sfStatistics = serviceSubtaskService.getSfStatisticsIsAbnormalExport(serviceSubtaskCountReq);
        ExcelUtil<ServiceSubtaskIsAbnormalStatistic> util = new ExcelUtil<ServiceSubtaskIsAbnormalStatistic>(ServiceSubtaskIsAbnormalStatistic.class);
        String sheetName = "";
        String fileName = "";
        if (active.equals("ls") || active.equals("druid")) {
            fileName = sheetName = LocalDate.now().getMonthValue() + "月出院随访异常统计表";
            util.exportExcelWithFileName(response, sfStatistics, sheetName, fileName);
        } else {
            sheetName = "随访异常统计导出";
            util.exportExcel(response, sfStatistics, sheetName);
        }
    }
    /**
     * èŽ·å–éšè®¿ç»Ÿè®¡æ¯”ä¾‹
@@ -737,4 +760,9 @@
        return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO);
    }
    @PostMapping("/test")
    public void test() {
        ryTask.longTaskSend();
    }
}
ruoyi-admin/src/main/resources/application-ls.yml
@@ -185,7 +185,7 @@
req_path: 8093
#localIP: https://wx.lihusmart.com
#丽水外链请求IP和端口号
localIP: https://221.12.19.26
localIP: https://lishuisf.health-y.cn
#获取患者信息URL(华卓提供)
hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange
ruoyi-admin/src/main/resources/application.yml
@@ -74,7 +74,7 @@
    # å›½é™…化资源文件路径
    basename: i18n/messages
  profiles:
    active: durid
    active: druid
  # æ–‡ä»¶ä¸Šä¼ 
  servlet:
smartor/src/main/java/com/smartor/domain/ServiceSubtaskIsAbnormalStatistic.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.smartor.domain;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * å„病区随访统计比例
 *
 * @author ruoyi
 * @date 2024-12-11
 */
@ApiModel(value = "ServiceSubtaskStatistic", description = "各病区随访统计比例")
@Data
public class ServiceSubtaskIsAbnormalStatistic implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "科室病区")
    private Integer statisticaltype;
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    @ApiModelProperty(value = "出院科室编号")
    private String deptcode;
    @ApiModelProperty(value = "出院科室名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String deptname;
    /**
     * æ€§åˆ«
     */
    @ApiModelProperty(value = "性别 1男  2女")
    private Long sex;
    @ApiModelProperty(value = "异常人数0-10岁")
    private Long abnormalCount010 = 0L;
    @ApiModelProperty(value = "异常人数10-20岁")
    private Long abnormalCount1020 = 0L;
    @ApiModelProperty(value = "异常人数20-30岁")
    private Long abnormalCount2030 = 0L;
    @ApiModelProperty(value = "异常人数30-40岁")
    private Long abnormalCount3040 = 0L;
    @ApiModelProperty(value = "异常人数40-50岁")
    private Long abnormalCount4050 = 0L;
    @ApiModelProperty(value = "异常人数50-60岁")
    private Long abnormalCount5060 = 0L;
    @ApiModelProperty(value = "异常人数60-70岁")
    private Long abnormalCount6070 = 0L;
    @ApiModelProperty(value = "异常人数70-80岁")
    private Long abnormalCount7090 = 0L;
    @ApiModelProperty(value = "异常人数80岁以上")
    private Long abnormalCount80More = 0L;
}
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -136,6 +136,9 @@
    @ApiModelProperty(value = "首次随访人工详情")
    private List<ServiceSubtask> manualInfo;
    @ApiModelProperty(value = "首次随访语音详情")
    private List<ServiceSubtask> voiceInfo;
    @ApiModelProperty(value = "首次随访短信详情")
    private List<ServiceSubtask> smsInfo;
@@ -156,6 +159,9 @@
    @ApiModelProperty(value = "再次随访人工详情")
    private List<ServiceSubtask> manualAgainInfo;
    @ApiModelProperty(value = "再次随访语音详情")
    private List<ServiceSubtask> voiceAgainInfo;
    @ApiModelProperty(value = "再次随访短信详情")
    private List<ServiceSubtask> smsAgainInfo;
@@ -178,6 +184,10 @@
    @ApiModelProperty(value = "首次人工")
    @Excel(name = " é¦–次人工 ")
    private Long manual = 0L;
    @ApiModelProperty(value = "首次语音")
    @Excel(name = " é¦–次语音 ")
    private Long voice = 0L;
    @ApiModelProperty(value = "首次短信")
    @Excel(name = " é¦–次短信 ")
@@ -214,10 +224,13 @@
    @Excel(name = " äºŒæ¬¡äººå·¥ ")
    private Long manualAgain = 0L;
    @ApiModelProperty(value = "二次语音")
    @Excel(name = " äºŒæ¬¡è¯­éŸ³ ")
    private Long voiceAgain = 0L;
    @ApiModelProperty(value = "二次短信")
    @Excel(name = " äºŒæ¬¡çŸ­ä¿¡ ")
    private Long smsAgain = 0L;
    @Excel(name = " äºŒæ¬¡å¾®ä¿¡ ")
    @ApiModelProperty(value = "二次微信")
    private Long weChatAgain = 0L;
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -137,6 +137,9 @@
    //导出随访
    public List<ServiceSubtaskStatistic> getSfStatisticsExport(ServiceSubtaskCountReq serviceSubtaskCountReq);
    //导出随访-异常
    public List<ServiceSubtaskIsAbnormalStatistic> getSfStatisticsIsAbnormalExport(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<ServiceSubtaskStatistic> getSfStatisticsJoy(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -457,7 +457,9 @@
            //将当前发送状态改成9完成
            ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
            serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform());
            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform());
            }
            serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
            serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
            List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
@@ -900,7 +902,7 @@
        }
        //判断一下当前的问题是不是满意度问题,并且dutyDeptCode是否有值,并且选项是不是异常选项,如果全符合,则往满意度问题异常表新增
        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal()) {
        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && 1 == stt.getIsabnormal()) {
            isabnormalFlag = 1L;
            ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
            subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId());
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2493,7 +2493,7 @@
        return jsRates;
    }
    @Override
    public List<ServiceSubtaskStatistic> getSfStatisticsExport(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        List<ServiceSubtaskStatistic> sfStatistics = getSfStatistics(serviceSubtaskCountReq);
        // æ·»åŠ æ€»è®¡è¡Œ
@@ -2505,6 +2505,12 @@
        }
        return sfStatistics;
    }
    @Override
    public List<ServiceSubtaskIsAbnormalStatistic> getSfStatisticsIsAbnormalExport(ServiceSubtaskCountReq serviceSubtaskCountReq){
        return null;
    }
    /**
@@ -2719,6 +2725,8 @@
            List<ServiceSubtask> followUpFailInfo = new ArrayList<>();
            //记录首次随访人工详情
            List<ServiceSubtask> manualInfo = new ArrayList<>();
            //记录首次随访语音详情
            List<ServiceSubtask> voiceInfo = new ArrayList<>();
            //记录首次随访短信详情
            List<ServiceSubtask> smsInfo = new ArrayList<>();
            //记录首次随访微信详情
@@ -2732,11 +2740,13 @@
            List<ServiceSubtask> followUpSuccessAgainInfo = new ArrayList<>();
            //记录再次随访失败详情
            List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
            //记录首次随访人工详情
            //记录再次随访人工详情
            List<ServiceSubtask> manualAgainInfo = new ArrayList<>();
            //记录首次随访短信详情
            //记录再次随访语音详情
            List<ServiceSubtask> voiceAgainInfo = new ArrayList<>();
            //记录再次随访短信详情
            List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
            //记录首次随访微信详情
            //记录再次随访微信详情
            List<ServiceSubtask> wechatAgainInfo = new ArrayList<>();
            for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
@@ -2781,17 +2791,22 @@
                            followUpSuccessInfo.add(serviceSubtask);
                        }
                        //首次随访人工 (不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                            serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                            manualInfo.add(serviceSubtask);
                        }
                        //首次随访语音 (不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                            serviceSubtaskStatistic.setVoice(serviceSubtaskStatistic.getVoice() + 1L);
                            voiceInfo.add(serviceSubtask);
                        }
                        //首次随访短信(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                            serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                            smsInfo.add(serviceSubtask);
                        }
                        //首次随访微信(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                            serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                            wechatInfo.add(serviceSubtask);
                        }
@@ -2802,17 +2817,22 @@
                            followUpSuccessInfo.add(serviceSubtask);
                        }
                        //首次随访人工 (统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                            serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                            manualInfo.add(serviceSubtask);
                        }
                        //首次随访语音 (统计不执行)
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                            serviceSubtaskStatistic.setVoice(serviceSubtaskStatistic.getVoice() + 1L);
                            voiceInfo.add(serviceSubtask);
                        }
                        //首次随访短信(统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                            serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                            smsInfo.add(serviceSubtask);
                        }
                        //首次随访微信(统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                            serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                            wechatInfo.add(serviceSubtask);
                        }
@@ -2854,17 +2874,22 @@
                            followUpSuccessAgainInfo.add(serviceSubtask);
                        }
                        //再次随访人工(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                            serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                            manualAgainInfo.add(serviceSubtask);
                        }
                        //再次随访语音(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                            serviceSubtaskStatistic.setVoiceAgain(serviceSubtaskStatistic.getVoiceAgain() + 1L);
                            voiceAgainInfo.add(serviceSubtask);
                        }
                        //再次随访短信(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                            serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                            smsAgainInfo.add(serviceSubtask);
                        }
                        //再次随访微信(不统计不执行)
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
                        if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                            serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                            wechatAgainInfo.add(serviceSubtask);
                        }
@@ -2875,17 +2900,22 @@
                            followUpSuccessAgainInfo.add(serviceSubtask);
                        }
                        //再次随访人工(统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                            serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                            manualAgainInfo.add(serviceSubtask);
                        }
                        //再次随访语音(统计不执行)
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                            serviceSubtaskStatistic.setVoiceAgain(serviceSubtaskStatistic.getVoiceAgain() + 1L);
                            voiceAgainInfo.add(serviceSubtask);
                        }
                        //再次随访短信(统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                            serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                            smsAgainInfo.add(serviceSubtask);
                        }
                        //再次随访微信(统计不执行)
                        if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                        if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                            serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                            wechatAgainInfo.add(serviceSubtask);
                        }
@@ -2934,6 +2964,8 @@
            serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
            //记录首次随访人工详情
            serviceSubtaskStatistic.setManualInfo(manualInfo);
            //记录首次随访语音详情
            serviceSubtaskStatistic.setVoiceInfo(voiceInfo);
            //记录首次随访短信详情
            serviceSubtaskStatistic.setSmsInfo(smsInfo);
            //记录首次随访微信详情
@@ -2948,6 +2980,8 @@
            serviceSubtaskStatistic.setFollowUpFailAgainInfo(followUpFailAgainInfo);
            //记录再次随访人工详情
            serviceSubtaskStatistic.setManualAgainInfo(manualAgainInfo);
            //记录再次随访语音详情
            serviceSubtaskStatistic.setVoiceAgainInfo(voiceAgainInfo);
            //记录再次随访短信详情
            serviceSubtaskStatistic.setSmsAgainInfo(smsAgainInfo);
            //记录再次随访微信详情
@@ -2990,6 +3024,8 @@
        List<ServiceSubtask> followUpFailInfo = new ArrayList<>();
        //记录首次随访人工详情
        List<ServiceSubtask> manualInfo = new ArrayList<>();
        //记录首次随访语音详情
        List<ServiceSubtask> voiceInfo = new ArrayList<>();
        //记录首次随访短信详情
        List<ServiceSubtask> smsInfo = new ArrayList<>();
        //记录首次随访微信详情
@@ -3037,17 +3073,22 @@
                        followUpSuccessInfo.add(serviceSubtask);
                    }
                    //首次随访人工 (不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                        serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                        manualInfo.add(serviceSubtask);
                    }
                    //首次随访语音 (不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                        serviceSubtaskStatistic.setVoice(serviceSubtaskStatistic.getVoice() + 1L);
                        voiceInfo.add(serviceSubtask);
                    }
                    //首次随访短信(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                        serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                        smsInfo.add(serviceSubtask);
                    }
                    //首次随访微信(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                        serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                        wechatInfo.add(serviceSubtask);
                    }
@@ -3058,17 +3099,22 @@
                        followUpSuccessInfo.add(serviceSubtask);
                    }
                    //首次随访人工 (统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                        serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                        manualInfo.add(serviceSubtask);
                    }
                    //首次随访语音 (统计不执行)
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                        serviceSubtaskStatistic.setVoice(serviceSubtaskStatistic.getVoice() + 1L);
                        voiceInfo.add(serviceSubtask);
                    }
                    //首次随访短信(统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                        serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                        smsInfo.add(serviceSubtask);
                    }
                    //首次随访微信(统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                        serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                        wechatInfo.add(serviceSubtask);
                    }
@@ -3117,6 +3163,8 @@
        serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
        //记录首次随访人工详情
        serviceSubtaskStatistic.setManualInfo(manualInfo);
        //记录首次随访语音详情
        serviceSubtaskStatistic.setVoiceInfo(voiceInfo);
        //记录首次随访短信详情
        serviceSubtaskStatistic.setSmsInfo(smsInfo);
        //记录首次随访微信详情
@@ -3158,6 +3206,8 @@
        List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
        //记录再次随访人工详情
        List<ServiceSubtask> manualAgainInfo = new ArrayList<>();
        //记录再次随访语音详情
        List<ServiceSubtask> voiceAgainInfo = new ArrayList<>();
        //记录再次随访短信详情
        List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
        //记录再次随访微信详情
@@ -3205,17 +3255,22 @@
                        followUpSuccessAgainInfo.add(serviceSubtask);
                    }
                    //再次随访人工(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("1")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                        serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                        manualAgainInfo.add(serviceSubtask);
                    }
                    //再次随访语音(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                        serviceSubtaskStatistic.setVoiceAgain(serviceSubtaskStatistic.getVoiceAgain() + 1L);
                        voiceAgainInfo.add(serviceSubtask);
                    }
                    //再次随访短信(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("4")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                        serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                        smsAgainInfo.add(serviceSubtask);
                    }
                    //再次随访微信(不统计不执行)
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && serviceSubtask.getPreachform().equals("5")) {
                    if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                        serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                        wechatAgainInfo.add(serviceSubtask);
                    }
@@ -3226,17 +3281,22 @@
                        followUpSuccessAgainInfo.add(serviceSubtask);
                    }
                    //再次随访人工(统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                        serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                        manualAgainInfo.add(serviceSubtask);
                    }
                    //再次随访语音(统计不执行)
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                        serviceSubtaskStatistic.setVoiceAgain(serviceSubtaskStatistic.getVoiceAgain() + 1L);
                        voiceAgainInfo.add(serviceSubtask);
                    }
                    //再次随访短信(统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                        serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                        smsAgainInfo.add(serviceSubtask);
                    }
                    //再次随访微信(统计不执行)
                    if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                    if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                        serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                        wechatAgainInfo.add(serviceSubtask);
                    }
@@ -3285,6 +3345,8 @@
        serviceSubtaskStatistic.setFollowUpFailAgainInfo(followUpFailAgainInfo);
        //记录再次随访人工详情
        serviceSubtaskStatistic.setManualAgainInfo(manualAgainInfo);
        //记录再次随访语音详情
        serviceSubtaskStatistic.setVoiceAgainInfo(voiceAgainInfo);
        //记录再次随访短信详情
        serviceSubtaskStatistic.setSmsAgainInfo(smsAgainInfo);
        //记录再次随访微信详情
@@ -3345,13 +3407,13 @@
                } else {
                    serviceSubtaskStatistic.setFollowUpRate("0.00%");
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -3377,13 +3439,13 @@
                } else {
                    serviceSubtaskStatistic.setFollowUpRateAgain("0.00%");
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -3463,13 +3525,13 @@
                } else {
                    serviceSubtaskStatistic.setFollowUpRate("0.00%");
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -3495,13 +3557,13 @@
                } else {
                    serviceSubtaskStatistic.setFollowUpRateAgain("0.00%");
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("1")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("4")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getPreachform().equals("5")) {
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
@@ -3886,13 +3948,18 @@
            serviceSubtaskPreachform1.setRemark(remark);
            serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
            //如果当前的preachform已经是最后一个了,那直接将serviceSubtask的sendstate状态改成5就行了(全失败了)
            if (serviceSubtaskPreachform1.getSort() == spSize.size() && failSendstate.equals("4")) {
                serviceSubtask.setCurrentPreachform(preachform);
                serviceSubtask.setSendstate(5L);
                serviceSubtask.setRemark("所有发送方式均未获取结果,任务失败");
                serviceSubtask.setRemark(remark + ";所有发送方式均未获取结果,任务失败");
                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                return true;
            }else {
                //加入目前补偿里的 remark
                serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + remark : remark);
                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
            }
        }
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml
@@ -162,7 +162,7 @@
            <if test="prompt != null">prompt,</if>
            <if test="sendTaskid != null">send_taskid,</if>
            <if test="sendTaskname != null">send_taskname,</if>
            <if test="defaultValue != null">default_value,</if>
            <if test="defaultValue != null">default_value</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="taskid != null">#{taskid},</if>