| | |
| | | private ServiceSubtaskMapper serviceSubtaskMapper; |
| | | |
| | | @Autowired |
| | | private IvrTaskTemplateMapper ivrTaskTemplateMapper; |
| | | private ServiceTaskdeptMapper serviceTaskdeptMapper; |
| | | |
| | | @Autowired |
| | | private PatArchiveImportMapper patArchiveImportMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private SvyTaskTemplateMapper svyTaskTemplateMapper; |
| | | private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; |
| | | |
| | | @Autowired |
| | | private HeLibraryMapper heLibraryMapper; |
| | | |
| | | @Autowired |
| | | private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; |
| | | @Autowired |
| | | private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper; |
| | | |
| | | @Autowired |
| | | private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; |
| | |
| | | @Autowired |
| | | private PatArchiveMapper patArchiveMapper; |
| | | |
| | | @Autowired |
| | | private PatMedInhospMapper patMedInhospMapper; |
| | | |
| | | @Autowired |
| | | private PatMedOuthospMapper patMedOuthospMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; |
| | | @Autowired |
| | | private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper; |
| | | |
| | | @Autowired |
| | | private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Boolean deleteServiceTaskByTaskid(Long taskid) { |
| | | ServiceSubtask ServiceTaskcall = new ServiceSubtask(); |
| | | ServiceTaskcall.setTaskid(taskid); |
| | | ServiceTaskcall.setDelFlag("1"); |
| | | Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(ServiceTaskcall); |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setTaskid(taskid); |
| | | |
| | | //查询子任务 |
| | | ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | for (ServiceSubtask ss : serviceSubtaskList) { |
| | | log.error("sfSend需要移除的subId为:{}", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-exist", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-0", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-1", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-2", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-3", ss.getId().toString()); |
| | | redisCache.removeElementFromList("cache-4", ss.getId().toString()); |
| | | } |
| | | |
| | | serviceSubtask.setDelFlag("1"); |
| | | Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask); |
| | | |
| | | //关联表删除 |
| | | ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | | serviceTaskdept.setTaskId(taskid); |
| | | int i = serviceTaskdeptMapper.deleteServiceTaskdeptByTaskId(serviceTaskdept); |
| | | |
| | | Boolean isSuccess = false; |
| | | if (!aBoolean) { |
| | | if (!aBoolean || i <= 0) { |
| | | new BaseException("任务删除失败"); |
| | | } |
| | | isSuccess = serviceTaskMapper.deleteServiceTaskByTaskid(taskid); |
| | | return isSuccess; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取随访及时率 |
| | | * |
| | | * @param serviceSubtask |
| | | * @return |
| | | */ |
| | | public Map<String, Object> selectTimelyRate(ServiceSubtask serviceSubtask) { |
| | | if (serviceSubtask.getEndtime() != null && new Date().before(serviceSubtask.getEndtime())) { |
| | | serviceSubtask.setEndtime(new Date()); |
| | | } |
| | | Double dob = serviceSubtaskMapper.selectTimelyRate(serviceSubtask); |
| | | // 1. 查询全部数据(SQL不分页) |
| | | List<ServiceSubtask> allList = serviceSubtaskMapper.selectTimelyRateDetail(serviceSubtask); |
| | | // 2. Java代码分页 |
| | | int pageNum = serviceSubtask.getPn() != null ? serviceSubtask.getPn() : 1; |
| | | int pageSize = serviceSubtask.getPs() != null ? serviceSubtask.getPs() : 10; |
| | | int fromIndex = (pageNum - 1) * pageSize; |
| | | int toIndex = Math.min(fromIndex + pageSize, allList.size()); |
| | | List<ServiceSubtask> pageList = new ArrayList<>(); |
| | | if (fromIndex < allList.size()) { |
| | | pageList = allList.subList(fromIndex, toIndex); |
| | | } |
| | | log.info("代码分页参数: pageNum={}, pageSize={}, fromIndex={}, toIndex={}, total={}", pageNum, pageSize, fromIndex, toIndex, allList.size()); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("rate", dob); |
| | | map.put("detail", pageList); |
| | | map.put("total", allList.size()); // 可选:返回总数 |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | serviceSubtaskVO.setPatid(patid); |
| | | serviceSubtaskVO.setTaskid(taskid); |
| | | // List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | serviceSubtaskVO.setSendstate(3L); |
| | | List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | // //查询患者是否重覆做题 |
| | | // if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { |
| | | // Long submit = selectServiceSubtaskList.get(0).getSubmit(); |
| | |
| | | ServiceSubtask ss = new ServiceSubtask(); |
| | | ss.setTaskid(taskid); |
| | | ss.setPatid(patid); |
| | | ss.setSendstate(1L); |
| | | ss.setResult("success"); |
| | | ss.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(ss); |
| | | Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss); |
| | | if (integer != null && integer != 6) { |
| | | ss.setSendstate(1L); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(ss); |
| | | } |
| | | } |
| | | } |
| | | |
| | | SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid()); |
| | | if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) { |
| | | //将当前方式的发送状态改成已领取 |
| | | ServiceSubtask serviceSubtask = selectServiceSubtaskList.get(0); |
| | | ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); |
| | | serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform()); |
| | | serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); |
| | | serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); |
| | | List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { |
| | | ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); |
| | | ssp.setSendstate("3"); |
| | | serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); |
| | | } |
| | | } |
| | | |
| | | if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb()); |
| | | map.put("script", info); |
| | | if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy()); |
| | | map.put("type", serviceTask.getType()); |
| | | map.put("taskName", serviceTask.getTaskName()); |
| | | map.put("submit", "0"); |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) { |
| | | //通过任务ID获取模板ID |
| | | ServiceTask serviceTask = selectServiceTaskByTaskid(taskid); |
| | | //通过模板ID获取问题信息 |
| | | SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); |
| | | svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid())); |
| | | svyLibTemplateScript.setDelFlag("0"); |
| | | List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) { |
| | | log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理"); |
| | | return null; |
| | | } |
| | | PatArchive patArchive = null; |
| | | if (StringUtils.isNotEmpty(zyserialnum)) { |
| | | PatMedInhospVO patMedInhospVO = new PatMedInhospVO(); |
| | | patMedInhospVO.setSerialnum(zyserialnum); |
| | | List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO); |
| | | if (CollectionUtils.isNotEmpty(patMedInhospList)) { |
| | | patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(mzserialnum)) { |
| | | PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); |
| | | patMedOuthosp.setSerialnum(mzserialnum); |
| | | List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); |
| | | if (CollectionUtils.isNotEmpty(patMedOuthosps)) { |
| | | patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid()); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(tsserialnum)) { |
| | | PatArchive pa = new PatArchive(); |
| | | pa.setPatientno(tsserialnum); |
| | | List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(pa); |
| | | if (CollectionUtils.isNotEmpty(patArchives)) patArchive = patArchives.get(0); |
| | | } |
| | | |
| | | //判断一下今天是否已经做过题,做过就不让再做了 |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | serviceSubtaskVO.setTaskid(taskid); |
| | | serviceSubtaskVO.setPatid(patArchive.getId()); |
| | | serviceSubtaskVO.setVisitTime(new Date()); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() > 0) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("result", "今日已经做过满意度调查 ,无需再重复做答!"); |
| | | return map; |
| | | } |
| | | |
| | | List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); |
| | | //将模板问题话术里的通配符替换 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | Map<String, Map<String, String>> serviceTaskMap = null; |
| | | try { |
| | | serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class); |
| | | } catch (JsonProcessingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<Map<String, String>> mapList = new ArrayList<>(); |
| | | |
| | | for (Map<String, String> map : serviceTaskMap.values()) { |
| | | mapList.add(map); |
| | | } |
| | | for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { |
| | | if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { |
| | | for (Map<String, String> map : mapList) { |
| | | for (String key : map.keySet()) { |
| | | |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); |
| | | } |
| | | } |
| | | //替换患者个人信息数据 |
| | | log.error("问题id:{}, 问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent()); |
| | | if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); |
| | | } |
| | | //获取问题选项 |
| | | SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption(); |
| | | svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId()); |
| | | List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption); |
| | | svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); |
| | | } |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("result", null); |
| | | map.put("svyLibTemplateScriptVOS", svyLibTemplateScriptVOS); |
| | | return map; |
| | | } |
| | | |
| | |
| | | */ |
| | | public List sfInfo(ServiceTask serviceTask, Long patid, String patfrom) { |
| | | //通过模板ID获取问题信息 |
| | | IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript(); |
| | | ivrLibaTemplateScript.setTemplateid(Long.valueOf(serviceTask.getLibtemplateid())); |
| | | ivrLibaTemplateScript.setDelFlag("0"); |
| | | List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript); |
| | | if (CollectionUtils.isEmpty(ivrLibaTemplateScripts) || ivrLibaTemplateScripts.size() == 0) { |
| | | IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript(); |
| | | ivrTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); |
| | | ivrTaskTemplateScript.setDelFlag("0"); |
| | | List<IvrTaskTemplateScript> ivrTaskTemplateScripts = ivrTaskTemplateScriptMapper.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript); |
| | | if (CollectionUtils.isEmpty(ivrTaskTemplateScripts) || ivrTaskTemplateScripts.size() == 0) { |
| | | log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理"); |
| | | return new ArrayList<>(); |
| | | } |
| | | List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class); |
| | | List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScripts, IvrTaskTemplateScriptVO.class); |
| | | |
| | | //获取患者信息 |
| | | PatArchive patArchive = null; |
| | |
| | | } |
| | | |
| | | //将模板问题话术里的通配符替换 |
| | | for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) { |
| | | if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptContent())) { |
| | | for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) { |
| | | if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptContent())) { |
| | | for (Map<String, String> map : mapList) { |
| | | for (String key : map.keySet()) { |
| | | |
| | | ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); |
| | | ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); |
| | | } |
| | | } |
| | | //替换患者个人信息数据 |
| | | ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); |
| | | ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); |
| | | ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); |
| | | ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); |
| | | ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); |
| | | ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); |
| | | |
| | | //获取问题选项 |
| | | IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption(); |
| | | ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId()); |
| | | List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption); |
| | | ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions); |
| | | IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption(); |
| | | ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId()); |
| | | List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetOptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption); |
| | | ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); |
| | | } |
| | | } |
| | | Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingInt(IvrLibaTemplateScriptVO::getSort)); |
| | | Collections.sort(ivrTaskTemplateScriptVOS, Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort)); |
| | | |
| | | return ivrLibaTemplateScriptVOS; |
| | | return ivrTaskTemplateScriptVOS; |
| | | } |
| | | |
| | | /** |
| | |
| | | serviceSubtaskVO.setPatid(patid); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) { |
| | | if (serviceSubtaskList.get(0).getSendstate() != 6 && isFinish == true) { |
| | | if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) { |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setSendstate(7L); |
| | | serviceSubtask.setSendstate(1L); |
| | | serviceSubtask.setPatid(patid); |
| | | serviceSubtask.setTaskid(serviceTask.getTaskid()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask); |
| | |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setTaskid(taskid); |
| | | serviceSubtask.setPatid(patid); |
| | | serviceSubtask.setResult("完成"); |
| | | serviceSubtask.setFinishtime(new Date()); |
| | | serviceSubtask.setUpdateTime(new Date()); |
| | | log.error("serviceSubtask---xjInfo-的修改数据:{}", serviceSubtask); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); |
| | | Integer integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask); |
| | | if (integer == 3) { |
| | | serviceSubtask.setResult("完成"); |
| | | serviceSubtask.setFinishtime(new Date()); |
| | | serviceSubtask.setSendstate(6L); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); |
| | | } |
| | | } |
| | | HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId)); |
| | | List list = new ArrayList(); |