liusheng
2025-10-21 2d1db09ab80b4f164ca9dd66b18d0992203fa417
新增Orgid
已修改19个文件
320 ■■■■■ 文件已修改
.idea/modules.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTask.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/modules.xml
@@ -3,12 +3,6 @@
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/ruoyi-admin/ruoyi-admin.iml" filepath="$PROJECT_DIR$/ruoyi-admin/ruoyi-admin.iml" />
      <module fileurl="file://$PROJECT_DIR$/ruoyi-common/ruoyi-common.iml" filepath="$PROJECT_DIR$/ruoyi-common/ruoyi-common.iml" />
      <module fileurl="file://$PROJECT_DIR$/ruoyi-framework/ruoyi-framework.iml" filepath="$PROJECT_DIR$/ruoyi-framework/ruoyi-framework.iml" />
      <module fileurl="file://$PROJECT_DIR$/ruoyi-generator/ruoyi-generator.iml" filepath="$PROJECT_DIR$/ruoyi-generator/ruoyi-generator.iml" />
      <module fileurl="file://$PROJECT_DIR$/ruoyi-quartz/ruoyi-quartz.iml" filepath="$PROJECT_DIR$/ruoyi-quartz/ruoyi-quartz.iml" />
      <module fileurl="file://$PROJECT_DIR$/ruoyi-system/ruoyi-system.iml" filepath="$PROJECT_DIR$/ruoyi-system/ruoyi-system.iml" />
      <module fileurl="file://$PROJECT_DIR$/smartor/smartor.iml" filepath="$PROJECT_DIR$/smartor/smartor.iml" />
    </modules>
  </component>
</project>
</project>
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -1,14 +1,9 @@
package com.ruoyi.web.controller.common;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.sms.smsUtils;
import com.ruoyi.framework.config.ServerConfig;
import com.smartor.domain.HtmlContentVO;
import com.smartor.domain.ServiceOutPath;
import com.smartor.domain.ServiceTask;
import com.smartor.domain.smsVO;
@@ -18,14 +13,13 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -262,8 +262,9 @@
        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
            patArchiveReq.setLeaveldeptcodes(null);
        }
        System.out.println("--------11111111:" + patArchiveReq);
        List<PatArchiveOthreInfo> patientInfo = patArchiveService.getPatientInfoQC(patArchiveReq);
        System.out.println("--------222222:" + patientInfo.size());
        patArchiveReq.setPageSize(null);
        patArchiveReq.setPageNum(null);
        List<PatArchiveOthreInfo> patientInfoQC = patArchiveService.getPatientInfoQC(patArchiveReq);
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
@@ -6,7 +6,9 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.*;
import com.smartor.service.IServiceSubtaskAnswerService;
@@ -139,6 +141,8 @@
    @PostMapping("/getQuestionCacheXCH")
    public AjaxResult getQuestionCacheXCH(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
        log.info("【saveQuestionCache-----getQuestionCacheXCH】的入参为:{}", serviceSubTaskCacheReq);
        if (StringUtils.isEmpty(serviceSubTaskCacheReq.getParam1()) || StringUtils.isEmpty(serviceSubTaskCacheReq.getParam2()))
            throw new BaseException("请检查param1或param2的值");
        return AjaxResult.success(serviceSubtaskAnswerService.getQuestionCache(serviceSubTaskCacheReq, 1L));
    }
@@ -153,6 +157,8 @@
    @PostMapping("/getQuestionCache")
    public AjaxResult getQuestionCache(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
        log.info("【saveQuestionCache-----getQuestionCache】的入参为:{}", serviceSubTaskCacheReq);
        if (StringUtils.isEmpty(serviceSubTaskCacheReq.getParam1()) || StringUtils.isEmpty(serviceSubTaskCacheReq.getParam2()))
            throw new BaseException("请检查param1或param2的值");
        return AjaxResult.success(serviceSubtaskAnswerService.getQuestionCache(serviceSubTaskCacheReq, 0L));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -18,6 +18,7 @@
import com.smartor.mapper.PatMedOuthospMapper;
import com.smartor.service.IServiceSubtaskRecordService;
import com.smartor.service.IServiceSubtaskService;
import com.smartor.service.IServiceTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -46,6 +47,9 @@
    private IServiceSubtaskService serviceSubtaskService;
    @Autowired
    private IServiceTaskService serviceTaskService;
    @Autowired
    private IServiceSubtaskRecordService serviceSubtaskRecordService;
    /**
@@ -70,6 +74,9 @@
            if (ObjectUtils.isNotEmpty((serviceSubtask.getTaskid())))
                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
            serviceSubtask.setServiceSubtaskRecordList(serviceSubtaskRecordService.selectServiceSubtaskRecordList(serviceSubtaskRecord));
            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
            if (ObjectUtils.isNotEmpty(serviceTask)) serviceSubtask.setPreachform(serviceTask.getPreachform());
        }
        Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
        map.put("serviceSubtaskList", serviceSubtaskList);
@@ -373,8 +380,7 @@
    @ApiOperation("获取随访满意度明细")
    @PostMapping("/getSfStatisticsJoydetails")
    public AjaxResult getSfStatisticsJoydetails(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
        if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size()==0&&
                serviceSubtaskCountReq.getDeptcodes().size()==0) {
        if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() == 0 && serviceSubtaskCountReq.getDeptcodes().size() == 0) {
            return error("科室或病区不能为空");
        }
        return success(serviceSubtaskService.getSfStatisticsJoydetails(serviceSubtaskCountReq));
ruoyi-admin/src/main/resources/application.yml
@@ -74,7 +74,7 @@
    # 国际化资源文件路径
    basename: i18n/messages
  profiles:
    active: druid
    active: sltd
  # 文件上传
  servlet:
    multipart:
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
@@ -67,6 +67,21 @@
    private Long templateID;
    /**
     * 问题结果
     */
    @Excel(name = "问题结果")
    @ApiModelProperty(value = "问题结果")
    private String scriptResult;
    /**
     * 问题结果
     */
    @Excel(name = "问题结果")
    @ApiModelProperty(value = "问题结果ID")
    private String scriptResultId;
    /**
     * 话术ID
     */
    @Excel(name = "话术ID")
smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
@@ -26,10 +26,10 @@
    private String param6;
    @ApiModelProperty(value = "问题回答明细(随访)")
    private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList;
    private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList;
    @ApiModelProperty(value = "问题回答明细(问卷)")
    List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS;
    List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS;
    @ApiModelProperty(value = "试卷类型:1 随访   2 问卷")
    private Integer type;
smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java
@@ -17,7 +17,7 @@
public class ServiceSubTaskMYDAnswerReq {
    @ApiModelProperty(value = "问卷结果")
    private List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS;
    private List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS;
    @ApiModelProperty(value = "流水号")
    private String serialnum;
smartor/src/main/java/com/smartor/domain/ServiceTask.java
@@ -276,6 +276,9 @@
    @ApiModelProperty(value = " 任务形式 1,多媒体   2,纸质  3,电话  4,短信  5.微信公众号 6.微信小程序  7.支付宝  8.智能小程序  9.钉钉 ")
    private String preachform;
    @ApiModelProperty(value = " 任务形式描述")
    private String preachformDesc;
    /**
     * 发送类型: 1指定时间段发送 2即刻发送 3时间点
     */
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -128,14 +128,18 @@
    @ApiModelProperty(value = " 任务形式 1,人工   2,纸质  3,电话  4,短信  5.微信公众号 6.微信小程序  7.支付宝  8.智能小程序  9.钉钉 ")
    private String preachform;
    @ApiModelProperty(value = " 任务形式描述")
    private String PreachformDesc;
    /**
     * 任务形式 1,多媒体   2,纸质  3,电话  4,短信  5.微信公众号 6.微信小程序  7.支付宝  8.智能小程序  9.钉钉
     * [
     *     {
     *         "sort": 1,   //序号
     *         "preachform": "1",  //发送方式
     *         "compensateTime": 2   //补偿时间
     *     }
     * {
     * "sort": 1,   //序号
     * "preachform": "1",  //发送方式
     * "compensateTime": 2   //补偿时间
     * }
     * ]
     */
    @Excel(name = "  任务形式 1,人工   2,纸质  3,电话  4,短信  5.微信公众号 6.微信小程序  7.支付宝  8.智能小程序  9.钉钉 ")
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
@@ -54,6 +54,14 @@
    private Long templateID;
    /**
     * 问题结果
     */
    @Excel(name = "问题结果")
    @ApiModelProperty(value = "问题结果ID")
    private String scriptResultId;
    /**
     * 话术ID
     */
    @ApiModelProperty(value = "话术ID")
@@ -192,6 +200,10 @@
    private String scriptResult;
    @ApiModelProperty("选项答案的附加信息")
    private String answerps;
    /**
     * 异常预警:0绿色;1红色;2黄色
     */
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateServiceImpl.java
@@ -14,6 +14,7 @@
import com.smartor.service.IIvrTaskTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -55,6 +56,7 @@
    @Override
    public IvrTaskTemplateVO selectIvrTaskTemplateInfoByID(Long ID) {
        IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateMapper.selectIvrTaskTemplateByID(ID);
        if (ObjectUtils.isEmpty(ivrTaskTemplate)) throw new BaseException("该随访模板不存在,请检查后再查询");
        IvrTaskTemplateVO ivrTaskTemplateVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplate, IvrTaskTemplateVO.class);
        IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript();
        ivrTaskTemplateScript.setTemplateID(ivrTaskTemplate.getId());
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -792,7 +792,9 @@
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
            //  查看住院  1  查看门诊  2   查看体检  3   查看出院 4
            patArchiveReq.setCry(1);
            log.warn("--------查看出院的入参值为:{}", patArchiveReq);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
            log.warn("--------查看出院的返参值为:{}", patArchives1.size());
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -172,18 +172,18 @@
                continue;
            }
            if (key.contains("-WJscriptCache")) {
                List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
                List<SvyTaskTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
                log.error("问卷回答结果:{}", cacheList);
                for (int i = 0; i < cacheList.size(); i++) {
                    if (i == 0) {
                        //这个时间要找到第一题
                        for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : cacheList) {
                            if (svyLibTemplateScriptVO.getSort() == 1L) {
                        for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : cacheList) {
                            if (svyTaskTemplateScriptVO.getSort() == 1L) {
                                //说明是第一题
                                SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), SvyTaskTemplateScriptVO.class);
                                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = cacheList.get(0).getSvyLibTemplateTargetoptions();
                                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
//                                SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), SvyTaskTemplateScriptVO.class);
                                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = cacheList.get(0).getSvyTaskTemplateTargetoptions();
//                                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyTaskTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
                                svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                                Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid);
                                if (map == null) continue aa;
@@ -198,8 +198,10 @@
                        }
                    } else {
                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), SvyTaskTemplateScriptVO.class);
                        List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO =cacheList.get(i);
//                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), SvyTaskTemplateScriptVO.class);
                        List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = cacheList.get(i).getSvyTaskTemplateTargetoptions();
//                        List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyTaskTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
                        svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                        if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) {
@@ -217,18 +219,18 @@
                    }
                }
            } else if (key.contains("-SFscriptCache")) {
                List<IvrLibaTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort));
                List<IvrTaskTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort));
                log.error("电话随访问卷回答结果:{}", cacheList);
                for (int i = 0; i < cacheList.size(); i++) {
                    if (i == 0) {
                        //这个时间要找到第一题
                        for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : cacheList) {
                            if (ivrLibaTemplateScriptVO.getSort() == 1L) {
                        for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : cacheList) {
                            if (ivrTaskTemplateScriptVO.getSort() == 1L) {
                                //说明是第一题
                                IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), IvrTaskTemplateScriptVO.class);
                                List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = cacheList.get(0).getIvrLibaScriptTargetoptionList();
                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class);
//                                IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), IvrTaskTemplateScriptVO.class);
                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = cacheList.get(0).getIvrTaskScriptTargetoptionList();
//                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class);
                                ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
                                Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid);
                                if (!Objects.isNull(map.get("nextScriptNo")))
@@ -243,7 +245,7 @@
                    } else {
                        IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), IvrTaskTemplateScriptVO.class);
                        List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
                        List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrTaskScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
                        ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
                        if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) {
@@ -333,19 +335,19 @@
            }
        }
        if (CollectionUtils.isNotEmpty(serviceSubTaskMYDAnswerReq.getSvyLibTemplateScriptVOS())) {
        if (CollectionUtils.isNotEmpty(serviceSubTaskMYDAnswerReq.getSvyTaskTemplateScriptVOS())) {
            Double score = null;
            List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = serviceSubTaskMYDAnswerReq.getSvyLibTemplateScriptVOS();
            List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = serviceSubTaskMYDAnswerReq.getSvyTaskTemplateScriptVOS();
            Long nextScriptno = null;
            for (int i = 0; i < svyLibTemplateScriptVOS.size(); i++) {
            for (int i = 0; i < svyTaskTemplateScriptVOS.size(); i++) {
                if (i == 0) {
                    //这个时间要找到第一题
                    for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) {
                        if (svyLibTemplateScriptVO.getSort() == 1L) {
                    for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
                        if (svyTaskTemplateScriptVO.getSort() == 1L) {
                            //说明是第一题
                            SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(0), SvyTaskTemplateScriptVO.class);
                            List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateScriptVOS.get(0).getSvyLibTemplateTargetoptions();
                            List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
//                            SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(0), SvyTaskTemplateScriptVO.class);
                            List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptVOS.get(0).getSvyTaskTemplateTargetoptions();
//                            List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyTaskTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
                            svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                            Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid);
                            if (map == null) continue;
@@ -363,8 +365,10 @@
                    }
                } else {
                    SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i), SvyTaskTemplateScriptVO.class);
                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
                    SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = svyTaskTemplateScriptVOS.get(i);
//                    SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i), SvyTaskTemplateScriptVO.class);
                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions =svyTaskTemplateScriptVOS.get(i).getSvyTaskTemplateTargetoptions();
//                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                    if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) {
@@ -485,18 +489,18 @@
                tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
                pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
            }
            if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS().size() > 0) {
            if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS().size() > 0) {
                //问卷
                redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
                redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
                redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOS());
                //设置过期时间 3天
                Long tims = Long.valueOf(3 * 24 * 3600);
                boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
                return 1;
            } else if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList()) && serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList().size() > 0) {
            } else if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList()) && serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList().size() > 0) {
                //问卷
                redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache");
                redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList());
                redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrTaskTemplateScriptVOList());
                //设置过期时间 3天
                Long tims = Long.valueOf(3 * 24 * 3600);
                redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims);
@@ -546,7 +550,7 @@
            }
        }
        //问卷
        List<SvyLibTemplateScriptVO> svyTaskTemplateScriptVOList = redisCache.getCacheList(pid + "-" + tid + "-WJscriptCache");
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOList = redisCache.getCacheList(pid + "-" + tid + "-WJscriptCache");
        map.put("result", svyTaskTemplateScriptVOList);
        return map;
    }
@@ -583,29 +587,29 @@
//            log.error("-----------scriptInfoByCondition的值为:{}", scriptInfoByCondition);
            if (scriptInfoByCondition.get("type").equals("1")) {
                List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = (List<IvrTaskTemplateScriptVO>) scriptInfoByCondition.get("script");
                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScriptVOS, IvrLibaTemplateScriptVO.class);
                for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
                    Map<String, String> scriptResult = getScriptResult(subid, patid, ivrLibaTemplateScriptVO.getId());
//                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScriptVOS, IvrLibaTemplateScriptVO.class);
                for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) {
                    Map<String, String> scriptResult = getScriptResult(subid, patid, ivrTaskTemplateScriptVO.getId());
                    if (ObjectUtils.isNotEmpty(scriptResult)) {
                        ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
                        ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
                        ivrTaskTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
                        ivrTaskTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
                    }
                }
                map.put("scriptResult", ivrLibaTemplateScriptVOList);
                map.put("scriptResult", ivrTaskTemplateScriptVOS);
                map.put("taskName", scriptInfoByCondition.get("taskName"));
            } else if (scriptInfoByCondition.get("type").equals("2")) {
                List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
                for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) {
                    Map<String, String> scriptResult = getScriptResult(subid, patid, svyLibTemplateScriptVO.getId());
                List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
                for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOList) {
                    Map<String, String> scriptResult = getScriptResult(subid, patid, svyTaskTemplateScriptVO.getId());
                    if (ObjectUtils.isNotEmpty(scriptResult)) {
                        if (StringUtils.isNotEmpty(scriptResult.get("asrtext")))
                            svyLibTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : "");
                        svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
                            svyTaskTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : "");
                        svyTaskTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
                        if (StringUtils.isNotEmpty(scriptResult.get("answerps")))
                            svyLibTemplateScriptVO.setAnswerps(scriptResult.get("answerps"));
                            svyTaskTemplateScriptVO.setAnswerps(scriptResult.get("answerps"));
                    }
                }
                map.put("scriptResult", svyLibTemplateScriptVOList);
                map.put("scriptResult", svyTaskTemplateScriptVOList);
                map.put("taskName", scriptInfoByCondition.get("taskName"));
            } else if (scriptInfoByCondition.get("type").equals("3")) {
                //宣教不需要查看
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,7 +1,6 @@
package com.smartor.service.impl;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
@@ -24,7 +23,6 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.Duration;
@@ -177,15 +175,14 @@
            ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
            ObjectMapper objectMapper = new ObjectMapper();
            try {
                List<Map<String, Object>> mapList = objectMapper.readValue(serviceTask.getPreachform(), List.class);
                List<Map<String, Object>> mapList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
                serviceTaskVO.setPreachformList(mapList);
                String result = mapList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
                serviceTaskVO.setPreachform(result);
//
//                String result = mapList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
//                serviceTaskVO.setPreachform(result);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return serviceTaskVO;
        }
@@ -453,7 +450,7 @@
        ObjectMapper mapper = new ObjectMapper();
        try {
            String preachformList = mapper.writeValueAsString(serviceTaskVO.getPreachformList());
            serviceTask.setPreachform(preachformList);
            serviceTask.setPreachformDesc(preachformList);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
@@ -849,7 +846,7 @@
                        ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
                        serviceSubtaskPreachform.setSort(ObjectUtils.isEmpty(map.get("sort")) ? 0 : Long.valueOf(map.get("sort").toString()));
                        serviceSubtaskPreachform.setPreachform(ObjectUtils.isEmpty(map.get("preachform")) ? "" : map.get("preachform").toString());
                        serviceSubtaskPreachform.setCompensateTime(ObjectUtils.isEmpty(map.get("compensateTime")) ? "" : map.get("preachcompensateTimeform").toString());
                        serviceSubtaskPreachform.setCompensateTime(ObjectUtils.isEmpty(map.get("compensateTime")) ? "" : map.get("compensateTime").toString());
                        serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
                        serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
                        //这个sendstate需要在数据库设置一个默认值为“1”
@@ -2304,22 +2301,22 @@
                }
            }
            //随访情况
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==1) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 1) {
                serviceSubtaskStatistic.setTaskSituation1(serviceSubtaskStatistic.getTaskSituation1() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==2) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 2) {
                serviceSubtaskStatistic.setTaskSituation2(serviceSubtaskStatistic.getTaskSituation2() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==3) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 3) {
                serviceSubtaskStatistic.setTaskSituation3(serviceSubtaskStatistic.getTaskSituation3() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==4) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 4) {
                serviceSubtaskStatistic.setTaskSituation4(serviceSubtaskStatistic.getTaskSituation4() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==5) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 5) {
                serviceSubtaskStatistic.setTaskSituation5(serviceSubtaskStatistic.getTaskSituation5() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==6) {
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 6) {
                serviceSubtaskStatistic.setTaskSituation6(serviceSubtaskStatistic.getTaskSituation6() + 1);
            }
        }
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -51,7 +51,7 @@
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
    private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
    @Autowired
    private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
@@ -74,7 +74,7 @@
    private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper;
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper;
    @Autowired
    private RedisCache redisCache;
@@ -300,13 +300,13 @@
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        //通过模板ID获取问题信息
        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
        svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
        svyLibTemplateScript.setDelFlag("0");
        List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
        if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) {
            log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理");
            return null;
        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
        svyTaskTemplateScript.setDelFlag("0");
        List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
        if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
            log.error("svyTaskTemplateScripts为空了,请尽快联系管理员处理");
            throw new BaseException("svyTaskTemplateScripts为空了,请尽快联系管理员处理");
        }
        PatArchive patArchive = null;
        if (StringUtils.isNotEmpty(zyserialnum)) {
@@ -342,7 +342,7 @@
            return map;
        }
        List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class);
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
        //将模板问题话术里的通配符替换
        ObjectMapper objectMapper = new ObjectMapper();
        Map<String, Map<String, String>> serviceTaskMap = null;
@@ -356,31 +356,31 @@
        for (Map<String, String> map : serviceTaskMap.values()) {
            mapList.add(map);
        }
        for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
        for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) {
                for (Map<String, String> map : mapList) {
                    for (String key : map.keySet()) {
                        svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                        svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                    }
                }
                //替换患者个人信息数据
                log.error("问题id:{},   问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                }
                //获取问题选项
                SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
                svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId());
                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption);
                svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
                SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption();
                svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getId());
                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption);
                svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("result", null);
        map.put("svyLibTemplateScriptVOS", svyLibTemplateScriptVOS);
        map.put("svyLibTemplateScriptVOS", svyTaskTemplateScriptVOS);
        return map;
    }
@@ -475,15 +475,15 @@
            }
        }
        //通过模板ID获取问题信息
        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
        svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
        svyLibTemplateScript.setDelFlag("0");
        List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
        if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) {
            log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理");
        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
        svyTaskTemplateScript.setDelFlag("0");
        List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
        if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
            log.info("svyTaskTemplateScripts为空了,请尽快联系管理员处理");
            return new ArrayList<>();
        }
        List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class);
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
        //获取患者信息
        PatArchive patArchive = null;
@@ -509,30 +509,34 @@
        }
        //将模板问题话术里的通配符替换
        for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
        for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) {
                for (Map<String, String> map : mapList) {
                    for (String key : map.keySet()) {
                        svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                        svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                    }
                }
                //替换患者个人信息数据
                log.error("问题id:{},   问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                }
                //获取问题选项
                SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
                svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId());
                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption);
                svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
                SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption();
                svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getId());
                if (svyTaskTemplateTargetoption.getDynamiccruxs().size() == 0)
                    svyTaskTemplateTargetoption.setDynamiccruxs(null);
                if (svyTaskTemplateTargetoption.getNodynamiccruxs().size() == 0)
                    svyTaskTemplateTargetoption.setNodynamiccruxs(null);
                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption);
                svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
            }
        }
        Collections.sort(svyLibTemplateScriptVOS, Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
        return svyLibTemplateScriptVOS;
        Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
        return svyTaskTemplateScriptVOS;
    }
    private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) {
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -33,6 +33,7 @@
        <result property="pid" column="pid"/>
        <result property="guid" column="guid"/>
        <result property="preachform" column="preachform"/>
        <result property="preachformDesc" column="preachform_desc"/>
        <result property="sendType" column="send_type"/>
        <result property="sendState" column="send_state"/>
        <result property="hospType" column="hosp_type"/>
@@ -79,6 +80,7 @@
               text_param,
               templateid,
               templatename,
               preachform_desc,
               labelinfo,
               count,
               executed,
@@ -235,6 +237,7 @@
        service_task.pid,
        service_task.guid,
        service_task.preachform,
        service_task.preachform_desc,
        service_task.send_type,
        service_task.send_state,
        service_task.send_time_slot,
@@ -365,6 +368,7 @@
            <if test="pid != null">pid,</if>
            <if test="guid != null">guid,</if>
            <if test="preachform != null">preachform,</if>
            <if test="preachformDesc != null">preachform_desc,</if>
            <if test="sendType != null">send_type,</if>
            <if test="sendState != null">send_state,</if>
            <if test="hospType != null  and hospType != ''">hosp_type,</if>
@@ -419,6 +423,7 @@
            <if test="pid != null">#{pid},</if>
            <if test="guid != null">#{guid},</if>
            <if test="preachform != null">#{preachform},</if>
            <if test="preachformDesc != null">#{preachformDesc},</if>
            <if test="sendType != null">#{sendType},</if>
            <if test="sendState != null">#{sendState},</if>
            <if test="hospType != null  and hospType != ''">#{hospType},</if>
@@ -477,6 +482,7 @@
            <if test="pid != null">pid = #{pid},</if>
            <if test="guid != null">guid = #{guid},</if>
            <if test="preachform != null">preachform = #{preachform},</if>
            <if test="preachformDesc != null">preachform_desc = #{preachformDesc},</if>
            <if test="sendType != null">send_type = #{sendType},</if>
            <if test="sendState != null">send_state = #{sendState},</if>
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if>
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml
@@ -95,8 +95,8 @@
            <if test="pid != null ">and pid = #{pid}</if>
            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
            <if test="scriptid != null ">and scriptid = #{scriptid}</if>
            <if test="nodynamiccruxs != null  and nodynamiccruxs != ''">and nodynamiccruxs = #{nodynamiccruxsJson}</if>
            <if test="dynamiccruxs != null  and dynamiccruxs != ''">and dynamiccruxs = #{dynamiccruxsJson}</if>
            <if test="nodynamiccruxs != null ">and nodynamiccruxs = #{nodynamiccruxsJson}</if>
            <if test="dynamiccruxs != null ">and dynamiccruxs = #{dynamiccruxsJson}</if>
            <if test="nextQuestion != null ">and next_question = #{nextQuestion}</if>
            <if test="picturePath != null  and picturePath != ''">and picture_path = #{picturePath}</if>
            <if test="optionCode != null">and option_code = #{optionCode}</if>