| | |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerById(id); |
| | | } |
| | | |
| | | /** |
| | | * 保存问卷答案 (异步处理,快速返回) |
| | | * |
| | | * @param serviceSubTaskAnswerReq 答案请求 |
| | | * @param flag 标志位 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Async("threadPoolTaskExecutor") |
| | | public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq, Long flag) { |
| | | String threadName = Thread.currentThread().getName(); |
| | | log.info("[{}] 开始异步处理保存问卷答案", threadName); |
| | | try { |
| | | //参数解密 |
| | | Long tid = null; |
| | | Long pid = null; |
| | |
| | | log.error("将该key和value从redis中,serviceSubtask的值为--------:{}", serviceSubtask); |
| | | if (score != null && !score.isEmpty()) serviceSubtask.setScore(score); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); |
| | | //修改住院满意度状态(避免重复查询) |
| | | if (serviceSubtask.getServiceType() != null && "6".equals(serviceSubtask.getServiceType())) { |
| | | Long inhospid = serviceSubtask.getInhospid(); |
| | | if (inhospid != null) { |
| | | PatMedInhosp patMedInhosp = new PatMedInhosp(); |
| | | patMedInhosp.setInhospMydFlag("1"); |
| | | patMedInhosp.setInhospid(inhospid); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp); |
| | | } |
| | | } |
| | | |
| | | //将当前发送状态改成 9 完成(缓存 preachform 查询) |
| | | String currentPreachform = serviceSubtask.getCurrentPreachform(); |
| | |
| | | } |
| | | |
| | | } |
| | | log.info("[{}] 完成异步处理保存问卷答案", Thread.currentThread().getName()); |
| | | return 1; |
| | | } catch (Exception e) { |
| | | log.error("[{}] 异步处理保存问卷答案发生异常 : {},请求的对象为:{}", Thread.currentThread().getName(), e.getMessage(), e,serviceSubTaskAnswerReq); |
| | | throw new RuntimeException("保存问卷答案失败", e); |
| | | } |
| | | |
| | | } |
| | | @Override |
| | | public Integer saveQuestionDetail(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) { |
| | | Long tid = Long.valueOf(serviceSubTaskCacheReq.getParam1()); |
| | |
| | | } |
| | | |
| | | private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid) { |
| | | log.error("-----svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setTaskid(taskid); |
| | | serviceSubtaskVO.setPatid(patid); |
| | |
| | | } |
| | | |
| | | private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid, List<ServiceSubtask> selectServiceSubtaskList, ServiceTask serviceTask, Map<Long, Long> existingDetailIdMap, Map<Long, Long> existingTraceIdMap) { |
| | | log.error("-----svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO); |
| | | String score = "0"; |
| | | //下题跳转 |
| | | String nextScriptNo = null; |
| | |
| | | //去除两端空白并处理特殊字符进行比较 |
| | | if (optionContent.trim().replaceAll("\\s+", "").equals(scriptResult.replaceAll("\\s+", ""))) { |
| | | stt = svyTaskTemplateTargetoption; |
| | | log.error("找到匹配的选项"); |
| | | break; // 找到匹配项后跳出循环 |
| | | } |
| | | } |
| | | } |
| | | |
| | | String orgid = selectServiceSubtaskList.get(0).getOrgid(); |
| | | //景宁-随访异常提示 其他-异常满意度提示 |
| | | boolean addTrace = false; |
| | | if(StringUtils.isNotEmpty(orgid) && orgid.equals("47255004333112711A1001")){ |
| | | if (stt != null) { |
| | | addTrace = Long.valueOf(1L).equals(stt.getIsabnormal()); |
| | | } |
| | | }else { |
| | | addTrace = StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getIsMydException()); |
| | | } |
| | | //判断一下当前的问题是不是满意度问题,并且 dutyDeptCode 是否有值,并且选项是不是异常选项,如果全符合,则往满意度问题异常表新增 |
| | | if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && Long.valueOf(1L).equals(stt.getIsabnormal()) || StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getIsMydException())) { |
| | | if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && Long.valueOf(1L).equals(stt.getIsabnormal()) || StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) |
| | | && addTrace) { |
| | | isabnormalFlag = 1L; |
| | | ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); |
| | | subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId()); |
| | |
| | | //获取所有选项 |
| | | subtaskDetailTrace.setTargetid(stt != null ? stt.getId() : null); |
| | | subtaskDetailTrace.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue()); |
| | | subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); |
| | | subtaskDetailTrace.setGuid(svyTaskTemplateScriptVO.getGuid()); |
| | | subtaskDetailTrace.setValueType(serviceSubtaskDetail.getValueType()); |
| | | subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException()); |
| | | subtaskDetailTrace.setTemplateType(2); |
| | | |
| | | SvyLibScriptCategory svyLibScriptCategory = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(svyTaskTemplateScriptVO.getCategoryid()); |
| | | subtaskDetailTrace.setType(svyLibScriptCategory != null ? svyLibScriptCategory.getType() : null); |
| | | |
| | | subtaskDetailTrace.setScriptid(svyTaskTemplateScriptVO.getId()); |
| | | //非满意度意见异常自动填入空 |
| | | subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); |
| | | subtaskDetailTrace.setAsrtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); |
| | | subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException()); |
| | | |
| | | subtaskDetailTrace.setRecordpath(null); |
| | | subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid()); |
| | | JSONObject patdescJson1 = new JSONObject(); |
| | |
| | | subtaskDetailTrace.setDutyDeptPersonName(svyTaskTemplateScriptVO.getDutyDeptPersonName()); |
| | | subtaskDetailTrace.setReportDeptPersonCode(svyTaskTemplateScriptVO.getReportDeptPersonCode()); |
| | | subtaskDetailTrace.setReportDeptPersonName(svyTaskTemplateScriptVO.getReportDeptPersonName()); |
| | | subtaskDetailTrace.setCirculationDeptPersonCode(svyTaskTemplateScriptVO.getCirculationDeptPersonCode()); |
| | | subtaskDetailTrace.setCirculationDeptPersonName(svyTaskTemplateScriptVO.getCirculationDeptPersonName()); |
| | | |
| | | Long existTraceId = existingTraceIdMap.get(subtaskDetailTrace.getScriptid()); |
| | | if (existTraceId != null) { |
| | |
| | | stt = ivrTaskTemplateTargetoption; |
| | | } |
| | | |
| | | |
| | | String orgid = selectServiceSubtaskList.get(0).getOrgid(); |
| | | //景宁-随访异常提示 其他-异常满意度提示 |
| | | boolean addTrace = false; |
| | | if(StringUtils.isNotEmpty(orgid) && orgid.equals("47255004333112711A1001")){ |
| | | if (stt != null) { |
| | | addTrace = Long.valueOf(1L).equals(stt.getIsabnormal()); |
| | | } |
| | | }else { |
| | | addTrace = StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIsMydException()); |
| | | } |
| | | //判断一下当前的问题是不是满意度问题,并且dutyDeptCode是否有值,并且选项是不是异常选项,如果全符合,则往满意度问题异常表新增 |
| | | if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal() || StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIsMydException())) { |
| | | if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal() || StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getDutyDeptCode()) |
| | | && addTrace) { |
| | | isabnormalFlag = "1"; |
| | | ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace(); |
| | | subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId()); |