liusheng
5 天以前 6f1e752bf00b584c8a17569578fa8e54cdb71b60
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -45,13 +45,15 @@
    @Autowired
    private SvyTaskTemplateMapper svyTaskTemplateMapper;
    private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
    private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
    @Autowired
    private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
    @Autowired
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
@@ -59,12 +61,20 @@
    @Autowired
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
    private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper;
    @Autowired
    private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper;
    @Autowired
    private RedisCache redisCache;
@@ -187,13 +197,45 @@
        return isSuccess;
    }
    /**
     * 获取随访及时率
     *
     * @param serviceSubtask
     * @return
     */
    public Map<String, Object> selectTimelyRate(ServiceSubtask serviceSubtask) {
        if (serviceSubtask.getEndtime() != null && new Date().before(serviceSubtask.getEndtime())) {
            serviceSubtask.setEndtime(new Date());
        }
        Double dob = serviceSubtaskMapper.selectTimelyRate(serviceSubtask);
        // 1. 查询全部数据(SQL不分页)
        List<ServiceSubtask> allList = serviceSubtaskMapper.selectTimelyRateDetail(serviceSubtask);
        // 2. Java代码分页
        int pageNum = serviceSubtask.getPn() != null ? serviceSubtask.getPn() : 1;
        int pageSize = serviceSubtask.getPs() != null ? serviceSubtask.getPs() : 10;
        int fromIndex = (pageNum - 1) * pageSize;
        int toIndex = Math.min(fromIndex + pageSize, allList.size());
        List<ServiceSubtask> pageList = new ArrayList<>();
        if (fromIndex < allList.size()) {
            pageList = allList.subList(fromIndex, toIndex);
        }
        log.info("代码分页参数: pageNum={}, pageSize={}, fromIndex={}, toIndex={}, total={}", pageNum, pageSize, fromIndex, toIndex, allList.size());
        Map<String, Object> map = new HashMap<>();
        map.put("rate", dob);
        map.put("detail", pageList);
        map.put("total", allList.size()); // 可选:返回总数
        return map;
    }
    @Override
    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom) {
        Map<String, Object> map = new HashMap<>();
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setPatid(patid);
        serviceSubtaskVO.setTaskid(taskid);
//        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        serviceSubtaskVO.setSendstate(3L);
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
//        //查询患者是否重覆做题
//        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
//            Long submit = selectServiceSubtaskList.get(0).getSubmit();
@@ -224,21 +266,121 @@
                Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
                if (integer != null && integer != 6) {
                    ss.setSendstate(1L);
                    ss.setResult("success");
                    ss.setFinishtime(new Date());
                    serviceSubtaskMapper.updateServiceSubtaskByCondition(ss);
                }
            }
        }
        SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid());
        if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
            //将当前方式的发送状态改成已领取
            ServiceSubtask serviceSubtask = selectServiceSubtaskList.get(0);
            ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
            serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform());
            serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
            serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
            List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
            if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
                ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0);
                ssp.setSendstate("3");
                serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp);
            }
        }
        if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb());
        map.put("script", info);
        if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy());
        map.put("type", serviceTask.getType());
        map.put("taskName", serviceTask.getTaskName());
        map.put("submit", "0");
        return map;
    }
    @Override
    public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) {
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        //通过模板ID获取问题信息
        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)) {
            PatMedInhospVO patMedInhospVO = new PatMedInhospVO();
            patMedInhospVO.setSerialnum(zyserialnum);
            List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
            if (CollectionUtils.isNotEmpty(patMedInhospList)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
            }
        } else if (StringUtils.isNotEmpty(mzserialnum)) {
            PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
            patMedOuthosp.setSerialnum(mzserialnum);
            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
            if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
            }
        } else if (StringUtils.isNotEmpty(tsserialnum)) {
            PatArchive pa = new PatArchive();
            pa.setPatientno(tsserialnum);
            List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(pa);
            if (CollectionUtils.isNotEmpty(patArchives)) patArchive = patArchives.get(0);
        }
        //判断一下今天是否已经做过题,做过就不让再做了
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patArchive.getId());
        serviceSubtaskVO.setVisitTime(new Date());
        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() > 0) {
            Map<String, Object> map = new HashMap<>();
            map.put("result", "今日已经做过满意度调查 ,无需再重复做答!");
            return map;
        }
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
        //将模板问题话术里的通配符替换
        ObjectMapper objectMapper = new ObjectMapper();
        Map<String, Map<String, String>> serviceTaskMap = null;
        try {
            serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        List<Map<String, String>> mapList = new ArrayList<>();
        for (Map<String, String> map : serviceTaskMap.values()) {
            mapList.add(map);
        }
        for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) {
                for (Map<String, String> map : mapList) {
                    for (String key : map.keySet()) {
                        svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                    }
                }
                //替换患者个人信息数据
                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() : ""));
                }
                //获取问题选项
                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", svyTaskTemplateScriptVOS);
        return map;
    }
@@ -251,15 +393,15 @@
     */
    public List sfInfo(ServiceTask serviceTask, Long patid, String patfrom) {
        //通过模板ID获取问题信息
        IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
        ivrLibaTemplateScript.setTemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
        ivrLibaTemplateScript.setDelFlag("0");
        List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
        if (CollectionUtils.isEmpty(ivrLibaTemplateScripts) || ivrLibaTemplateScripts.size() == 0) {
        IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript();
        ivrTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
        ivrTaskTemplateScript.setDelFlag("0");
        List<IvrTaskTemplateScript> ivrTaskTemplateScripts = ivrTaskTemplateScriptMapper.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript);
        if (CollectionUtils.isEmpty(ivrTaskTemplateScripts) || ivrTaskTemplateScripts.size() == 0) {
            log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理");
            return new ArrayList<>();
        }
        List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class);
        List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScripts, IvrTaskTemplateScriptVO.class);
        //获取患者信息
        PatArchive patArchive = null;
@@ -284,29 +426,29 @@
        }
        //将模板问题话术里的通配符替换
        for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptContent())) {
        for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) {
            if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptContent())) {
                for (Map<String, String> map : mapList) {
                    for (String key : map.keySet()) {
                        ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                        ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                    }
                }
                //替换患者个人信息数据
                ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                //获取问题选项
                IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption();
                ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId());
                List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption);
                ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
                IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption();
                ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId());
                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetOptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption);
                ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
            }
        }
        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingInt(IvrLibaTemplateScriptVO::getSort));
        Collections.sort(ivrTaskTemplateScriptVOS, Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort));
        return ivrLibaTemplateScriptVOS;
        return ivrTaskTemplateScriptVOS;
    }
    /**
@@ -333,15 +475,18 @@
            }
        }
        //通过模板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 new ArrayList<>();
        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) {
            insertSvyTaskTempScript(null, serviceTask);
            svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
            if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
                throw new BaseException("请联系管理员,检查问题模板信息!");
            }
        }
        List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class);
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
        //获取患者信息
        PatArchive patArchive = null;
@@ -367,30 +512,90 @@
        }
        //将模板问题话术里的通配符替换
        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);
                if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoptions)) {
                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                } else {
                    //如果选项没有查到,需要去基础模板库将选项查询出来,放到任务模板选项库中
                    insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask);
                }
            }
        }
        Collections.sort(svyLibTemplateScriptVOS, Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
        return svyLibTemplateScriptVOS;
        Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
        return svyTaskTemplateScriptVOS;
    }
    private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, ServiceTask serviceTask) {
        log.info("-------基础模板libtemplateid的值为:{}", serviceTask.getLibtemplateid());
        if (StringUtils.isEmpty(serviceTask.getLibtemplateid())) {
            return;
        }
        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
        svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
        List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
        log.info("-------基础模板svyLibTemplateScripts问题值为:{}", svyLibTemplateScripts.size());
        for (SvyLibTemplateScript sll : svyLibTemplateScripts) {
            if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptVO)) {
                if (sll.getScriptContent().trim().equals(svyTaskTemplateScriptVO.getScriptContent().trim())) {
                    SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption();
                    sltto.setScriptid(sll.getId());
                    List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
                    //将查出来的选项,放到svyTaskTemplateTargetoption中
                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
                    for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
                        svyTaskTemplateTargetoptionList.get(i).setTemplateID(svyTaskTemplateScriptVO.getTemplateID());
                        svyTaskTemplateTargetoptionList.get(i).setScriptid(svyTaskTemplateScriptVO.getId());
                        svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
                        log.info("-------新增完之后的选项ID值为:{}", svyTaskTemplateTargetoptionList.get(i).getId());
                    }
                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptionList);
                }
            } else {
                //新增问题
                SvyTaskTemplateScript stts = DtoConversionUtils.sourceToTarget(sll, SvyTaskTemplateScript.class);
                stts.setId(null);
                stts.setTaskid(serviceTask.getTaskid());
                stts.setTemplateID(serviceTask.getTemplateid());
                svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(stts);
                //新增问题选项
                SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption();
                sltto.setScriptid(sll.getId());
                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
                for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
                    svyTaskTemplateTargetoptionList.get(i).setTemplateID(serviceTask.getTemplateid());
                    svyTaskTemplateTargetoptionList.get(i).setScriptid(stts.getId());
                    svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
                }
            }
        }
    }
    private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) {