liusheng
昨天 459aa78c84cf552ebea6ef056d978c2531d71ac8
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -9,6 +9,7 @@
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.IServiceSubtaskAnswerService;
import com.smartor.service.IServiceTaskService;
@@ -177,7 +178,7 @@
            if (key.contains("-WJscriptCache")) {
                List<SvyTaskTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
                log.error("问卷回答结果:{}", cacheList);
                log.info("问卷回答结果:{}", cacheList);
                for (int i = 0; i < cacheList.size(); i++) {
                    if (i == 0) {
                        //这个时间要找到第一题
@@ -202,15 +203,16 @@
                    } else {
                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = cacheList.get(i);
                        log.info("svyTaskTemplateScriptVO的信息为:{},i的值为:{}", svyTaskTemplateScriptVO.getScriptno(), 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)) {
                            log.error("svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
//                            log.error("svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
                            Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
                            log.error("map的信息为:{}", map);
                            log.error("nextScriptNo的信息为:{}", map.get("nextScriptNo"));
                            if (!Objects.isNull(map.get("nextScriptNo")))
                                nextScriptno = Long.valueOf(map.get("nextScriptNo"));
                            if (score == null) {
@@ -224,7 +226,7 @@
            } else if (key.contains("-SFscriptCache")) {
                List<IvrTaskTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort));
                log.error("电话随访问卷回答结果:{}", cacheList);
                log.error("电话随访问卷回答结果:{}", cacheList.size());
                for (int i = 0; i < cacheList.size(); i++) {
                    if (i == 0) {
                        //这个时间要找到第一题
@@ -253,7 +255,7 @@
                        if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) {
                            Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
                            log.error("map的信息为:{}", map);
                            log.error("----nextScriptNo2的信息为:{}", map.get("nextScriptNo"));
                            if (!Objects.isNull(map.get("nextScriptNo")))
                                nextScriptno = Long.valueOf(map.get("nextScriptNo"));
                            if (score == null) {
@@ -271,7 +273,7 @@
            redisCache.deleteObject(key);
            //查询出该任务中正在执行的患者信息
            ServiceSubtaskVO ssVO = new ServiceSubtaskVO();
            ServiceSubtaskEntity ssVO = new ServiceSubtaskEntity();
            ssVO.setTaskid(tid);
            ssVO.setPatid(pid);
//            ssVO.setSendstate(3L);
@@ -539,7 +541,7 @@
                subId = Long.valueOf(serviceSubTaskCacheReq.getParam6());
        }
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(tid);
        serviceSubtaskVO.setPatid(pid);
        serviceSubtaskVO.setSubId(subId);
@@ -644,7 +646,7 @@
    private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid) {
        log.error("-----svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patid);
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -682,6 +684,7 @@
        }
        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
        serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
        serviceSubtaskDetailVO.setCategoryid(svyTaskTemplateScriptVO.getCategoryid());
        serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
        serviceSubtaskDetailVO.setTargetid(svyTaskTemplateScriptVO.getTargetid() != null ? svyTaskTemplateScriptVO.getTargetid().intValue() : null);
        serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
@@ -716,7 +719,17 @@
    private Boolean sendTaskIds(List<Integer> sendTaskids, ServiceSubtask serviceSubtask) {
        for (Integer taskId : sendTaskids) {
            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(Long.valueOf(taskId));
            if (Objects.isNull(serviceTask)) return false;
            String content = sendMQContent(serviceTask, null);
            //先查询一下,该患者在该service_task中,是否已经存在,如果已经存在,则不用再保存了
            ServiceSubtask ss = new ServiceSubtask();
            ss.setTaskid(Long.valueOf(taskId));
            ss.setPatid(serviceSubtask.getPatid());
            ss.setCreateTimeNew(new Date());
            List<Integer> list = serviceSubtaskMapper.selectSendstateByCondition(ss);
            if (CollectionUtils.isNotEmpty(list)) return true;
            //先修改状态
            insertServiceSubtask(serviceTask, new Date(), serviceSubtask);
            //立即发送
@@ -724,7 +737,7 @@
            serviceTask.setStopState(null);
            log.info("消息发送成功");
        }
        return null;
        return true;
    }
@@ -736,6 +749,9 @@
        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
        serviceSubtask.setSendstate(2L);
        serviceSubtask.setServiceType(serviceTask.getServiceType());
        serviceSubtask.setType(serviceTask.getType());
        serviceSubtask.setCurrentPreachform(null);
        serviceSubtask.setVisitTime(date);
        serviceSubtask.setId(null);
        serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
@@ -784,7 +800,7 @@
    }
    private Map<String, String> setSFInfo(IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, Long taskid, Long patid) {
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patid);
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);