| | |
| | | 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业务层处理 |
| | | * |
| | |
| | | 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("该任务不执行"); |
| | | } |
| | |
| | | //获取上次的问答结果 |
| | | 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()); |
| | |
| | | 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); |
| | |
| | | } |
| | | 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); |
| | |
| | | } |
| | | 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); |
| | |
| | | //非满意度意见异常自动填入空 |
| | | 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); |
| | |
| | | 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(); |