From 2baa05224b72fbae849678e338bbc85506a9cfe6 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 29 九月 2025 18:31:55 +0800 Subject: [PATCH] 新增Orgid --- smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 188 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 165 insertions(+), 23 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java index 3ad858d..2ed3017 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java @@ -45,13 +45,15 @@ @Autowired - private SvyTaskTemplateMapper svyTaskTemplateMapper; + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Autowired private HeLibraryMapper heLibraryMapper; @Autowired private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; + @Autowired + private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper; @Autowired private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; @@ -59,9 +61,17 @@ @Autowired private PatArchiveMapper patArchiveMapper; + @Autowired + private PatMedInhospMapper patMedInhospMapper; + + @Autowired + private PatMedOuthospMapper patMedOuthospMapper; + @Autowired private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; + @Autowired + private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper; @Autowired private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; @@ -187,13 +197,45 @@ 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. 鏌ヨ鍏ㄩ儴鏁版嵁锛圫QL涓嶅垎椤碉級 + List<ServiceSubtask> allList = serviceSubtaskMapper.selectTimelyRateDetail(serviceSubtask); + // 2. Java浠g爜鍒嗛〉 + 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("浠g爜鍒嗛〉鍙傛暟: 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 public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom) { Map<String, Object> map = new HashMap<>(); 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); // //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰� // if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { // Long submit = selectServiceSubtaskList.get(0).getSubmit(); @@ -224,21 +266,121 @@ Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss); if (integer != null && integer != 6) { ss.setSendstate(1L); - ss.setResult("success"); - ss.setFinishtime(new Date()); 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) : "")); + } + } + //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹� + 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; } @@ -251,15 +393,15 @@ */ 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); //鑾峰彇鎮h�呬俊鎭� PatArchive patArchive = null; @@ -284,29 +426,29 @@ } //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹� - 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) : "")); } } //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹� - 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; } /** -- Gitblit v1.9.3