liusheng
23 小时以前 459aa78c84cf552ebea6ef056d978c2531d71ac8
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import com.smartor.domain.*;
@@ -69,7 +70,7 @@
    @Autowired
    private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
    private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper;
@@ -169,7 +170,7 @@
        serviceSubtask.setTaskid(taskid);
        //查询子任务
        ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
        ServiceSubtaskEntity serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskEntity.class);
        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        for (ServiceSubtask ss : serviceSubtaskList) {
            log.error("sfSend需要移除的subId为:{}", ss.getId().toString());
@@ -231,7 +232,7 @@
    @Override
    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom) {
        Map<String, Object> map = new HashMap<>();
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setPatid(patid);
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setSendstate(3L);
@@ -246,6 +247,9 @@
//        }
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        if (serviceTask == null) {
            throw new BaseException("任务不存在或已被删除,taskid: " + taskid);
        }
        List info = new ArrayList();
        if (serviceTask.getType().equals("1")) {
            //随访
@@ -263,9 +267,10 @@
                ServiceSubtask ss = new ServiceSubtask();
                ss.setTaskid(taskid);
                ss.setPatid(patid);
                Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
                if (integer != null && integer != 6) {
                    ss.setSendstate(1L);
                ss.setSendstate(3L);
                List<Integer> integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
                if (integer != null) {
                    ss.setSendstate(6L);
                    serviceSubtaskMapper.updateServiceSubtaskByCondition(ss);
                }
            }
@@ -299,6 +304,9 @@
    public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) {
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        if (serviceTask == null) {
            throw new BaseException("任务不存在或已被删除,taskid: " + taskid);
        }
        //通过模板ID获取问题信息
        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
@@ -331,7 +339,7 @@
        }
        //判断一下今天是否已经做过题,做过就不让再做了
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patArchive.getId());
        serviceSubtaskVO.setVisitTime(new Date());
@@ -461,7 +469,7 @@
    private List wjInfo(ServiceTask serviceTask, Long patid, Boolean isFinish, String patfrom) {
        //用户点击了外链,就算他领取了
        //这样做会有一个问题,如果固定任务,会出现一个任务里,有多个该患者
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
        serviceSubtaskVO.setPatid(patid);
        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -480,8 +488,11 @@
        svyTaskTemplateScript.setDelFlag("0");
        List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
        if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
            log.info("svyTaskTemplateScripts为空了,请尽快联系管理员处理");
            return new ArrayList<>();
            insertSvyTaskTempScript(null, serviceTask);
            svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
            if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
                throw new BaseException("请联系管理员,检查问题模板信息!");
            }
        }
        List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
@@ -504,16 +515,16 @@
        }
        List<Map<String, String>> mapList = new ArrayList<>();
        for (Map<String, String> map : ivrTaskMap.values()) {
            mapList.add(map);
        if (ivrTaskMap != null) {
            for (Map<String, String> map : ivrTaskMap.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) : ""));
                    }
                }
@@ -532,11 +543,68 @@
                if (svyTaskTemplateTargetoption.getNodynamiccruxs().size() == 0)
                    svyTaskTemplateTargetoption.setNodynamiccruxs(null);
                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption);
                svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoptions)) {
                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                } else {
                    //如果选项没有查到,需要去基础模板库将选项查询出来,放到任务模板选项库中
                    insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask);
                }
            }
        }
        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) {
@@ -544,8 +612,9 @@
            ServiceSubtask serviceSubtask = new ServiceSubtask();
            serviceSubtask.setTaskid(taskid);
            serviceSubtask.setPatid(patid);
            Integer integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask);
            if (integer == 3) {
            serviceSubtask.setSendstate(3L);
            List<Integer> integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask);
            if (integer != null) {
                serviceSubtask.setResult("完成");
                serviceSubtask.setFinishtime(new Date());
                serviceSubtask.setSendstate(6L);