liusheng
12 小时以前 ab2884ade73fed97d1e7d7daf4b9b5b6dee83fdd
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -63,6 +63,8 @@
import com.ruoyi.task.service.IServiceSubtaskDetailTraceService;
import com.ruoyi.task.domain.ServiceSubtaskPreachform;
import com.ruoyi.task.service.IServiceTaskService;
import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper;
import com.ruoyi.patarchive.mapper.PatArchiveMapper;
/**
 * 任务问卷问题选项Service业务层处理
 *
@@ -920,7 +922,8 @@
        Map<String, Object> map = new HashMap<>();
        if (serviceSubTaskQueryReq.getSubId() != null) {
            ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
            if (serviceSubtask.getSendstate() == 4L) {
            // 任务可能已被删除/查不到,sendstate 也可能为空,这里必须判空,否则拆箱会 NPE
            if (serviceSubtask != null && Long.valueOf(4L).equals(serviceSubtask.getSendstate())) {
                log.info("患者子任务ID为:{},状态为:{}", serviceSubTaskQueryReq.getSubId(), serviceSubtask.getSendstate());
                throw new BaseException("该任务不执行");
            }
@@ -933,7 +936,7 @@
        //获取上次的问答结果
        ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
        map.put("upScriptResult", null);
        map.put("templateName", serviceSubtask.getTemplatename());
        map.put("templateName", serviceSubtask == null ? null : serviceSubtask.getTemplatename());
        map.put("upTaskName", null);
        if (ObjectUtils.isNotEmpty(serviceSubtask) && serviceSubtask.getUpid() != null) {
            Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(), serviceSubTaskQueryReq.getSubId());
@@ -951,7 +954,7 @@
    private Map<String, Object> getMap(Map<String, Object> scriptInfoByCondition, Long subid, Long patid) {
        Map<String, Object> map = new HashMap<>();
        if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) {
            if (scriptInfoByCondition.get("type").equals("1")) {
            if ("1".equals(scriptInfoByCondition.get("type"))) {
                List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = (List<IvrTaskTemplateScriptVO>) scriptInfoByCondition.get("script");
                // 批量查询所有明细,避免循环中逐条查数据库(N+1问题优化)
                Map<Long, ServiceSubtaskDetail> detailMap = getScriptResultMap(subid, patid);
@@ -964,7 +967,7 @@
                }
                map.put("scriptResult", ivrTaskTemplateScriptVOS);
                map.put("taskName", scriptInfoByCondition.get("taskName"));
            } else if (scriptInfoByCondition.get("type").equals("2")) {
            } else if ("2".equals(scriptInfoByCondition.get("type"))) {
                List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
                // 批量查询所有明细,避免循环中逐条查数据库(N+1问题优化)
                Map<Long, ServiceSubtaskDetail> detailMap = getScriptResultMap(subid, patid);
@@ -980,7 +983,7 @@
                }
                map.put("scriptResult", svyTaskTemplateScriptVOList);
                map.put("taskName", scriptInfoByCondition.get("taskName"));
            } else if (scriptInfoByCondition.get("type").equals("3")) {
            } else if ("3".equals(scriptInfoByCondition.get("type"))) {
                //宣教不需要查看
                List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script");
                map.put("scriptResult", heLibraryList);
@@ -1220,6 +1223,8 @@
            //非满意度意见异常自动填入空
            subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException());
            subtaskDetailTrace.setAsrtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException());
            //补充描述(选了"其他/有症状"时填的文字)一并带到 trace 表
            subtaskDetailTrace.setAnswerps(serviceSubtaskDetail.getAnswerps());
            subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException());
            subtaskDetailTrace.setRecordpath(null);
@@ -1513,6 +1518,8 @@
            subtaskDetailTrace.setType(ivrLibaScriptAssort != null ? ivrLibaScriptAssort.getType() : null);
            subtaskDetailTrace.setScriptid(ivrTaskTemplateScriptVO.getId() == null ? ivrTaskTemplateScriptVO.getScriptID() : ivrTaskTemplateScriptVO.getId());
            subtaskDetailTrace.setAsrtext(ivrTaskTemplateScriptVO.getIvrtext());
            //补充描述一并带到 trace 表
            subtaskDetailTrace.setAnswerps(serviceSubtaskDetail.getAnswerps());
            subtaskDetailTrace.setRecordpath(null);
            subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid());
            JSONObject patdescJson2 = new JSONObject();