From af6c73841b54f0c9002ce85b8c0d1679e25d5d7c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 01 七月 2026 18:06:02 +0800
Subject: [PATCH] 【景宁】任务组开发

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |  107 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 80 insertions(+), 27 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index abd8d24..f12c0f4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -364,10 +364,13 @@
                         String opLevelCodes = serviceTaskSchedule.getOplevelCodes();
 
                         List<String> icd10CodeList = new ArrayList<>();
-                        List<String> opLevelList = new ArrayList<>();
+                        List<String> opLevelCodeList = new ArrayList<>();
                         List<String> deptCodeList = new ArrayList<>();
                         List<String> wardCodeList = new ArrayList<>();
 
+                        /**
+                         * 闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾 4-鍏ラ櫌绉戝 5-鍏ラ櫌鐥呭尯 6-鎵嬫湳)
+                         */
                         Integer type = 1;
                         if (StringUtils.isNotEmpty(deptCodes)) {
                             type = 1;
@@ -382,38 +385,88 @@
                             icd10CodeList = Arrays.asList(icd10Codes.split(","));
                         }
                         if (StringUtils.isNotEmpty(opLevelCodes)) {
-                            opLevelList = Arrays.asList(opLevelCodes.split(","));
+                            type = 6;
+                            opLevelCodeList = Arrays.asList(opLevelCodes.split(","));
                         }
-                        PatMedInhosp patMedInhospVo = new PatMedInhosp();
-                        patMedInhospVo.setDeptcodeList(deptCodeList);
-                        patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
-                        patMedInhospVo.setIcd10codeList(icd10CodeList);
-                        List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
-                        log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
+                        //闈炴墜鏈鐞嗘柟寮�
+                        if(type != 6){
+                            PatMedInhosp patMedInhospVo = new PatMedInhosp();
+                            patMedInhospVo.setScheduleCheckFlag("0");
+                            patMedInhospVo.setInhospstate("1");
+                            patMedInhospVo.setFuflag("1");
+                            patMedInhospVo.setDeptcodeList(deptCodeList);
+                            patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
+                            patMedInhospVo.setIcd10codeList(icd10CodeList);
+                            List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+                            log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
 
-                        for(PatMedInhosp patMedInhosp : patList){
-                            ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
-                            scheduleDetailVo.setTaskid(serviceTask.getTaskid());
-                            scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
-                            List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+                            for(PatMedInhosp patMedInhosp : patList){
+                                ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+                                scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+                                scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+                                List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
 
-                            List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = new ArrayList<>();
-                            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
-                            if (Objects.isNull(patArchive)) {
-                                break;
-                            }
-                            //灏佽serviceSubtask
-                            ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
-                            List<Map<String, Object>> preachformList = new ArrayList<>();
-                            if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
-                                try {
-                                    ObjectMapper objectMapper = new ObjectMapper();
-                                    preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
-                                }catch (Exception e){
+                                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
+                                if (Objects.isNull(patArchive)) {
                                     break;
                                 }
+                                //灏佽serviceSubtask
+                                ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
+                                List<Map<String, Object>> preachformList = new ArrayList<>();
+                                if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+                                    try {
+                                        ObjectMapper objectMapper = new ObjectMapper();
+                                        preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+                                    }catch (Exception e){
+                                        break;
+                                    }
+                                }
+                                scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
                             }
-                            scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+                        }else {
+                            //浠诲姟缁� - 鎵嬫湳闅忚
+                            if(CollectionUtils.isNotEmpty(opLevelCodeList)){
+                                //鐩墠浠呴檺鍗曚竴鎵嬫湳绛夌骇
+                                String opLevelCode = opLevelCodeList.get(0);
+                                PatMedOperationItem pmoi = new PatMedOperationItem();
+                                //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
+                                pmoi.setOpercheckFlag("0");
+                                pmoi.setMainFlag("1");
+                                pmoi.setOplevelcode(opLevelCode);
+                                pmoi.setDeptCodes(deptCodeList);
+                                pmoi.setWardCodes(wardCodeList);
+                                List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
+                                for(PatMedOperationItem patMedOperationItem : patMedOperationItems){
+                                    PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
+                                    if (Objects.isNull(patArchive)) {
+                                        break;
+                                    }
+                                    PatMedInhosp patMedInhospVo = new PatMedInhosp();
+                                    patMedInhospVo.setPatid((patMedOperationItem.getPatid()));
+                                    patMedInhospVo.setScheduleCheckFlag("0");
+                                    patMedInhospVo.setInhospstate("1");
+                                    patMedInhospVo.setFuflag("1");
+                                    List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+                                    if(CollectionUtils.isNotEmpty(patMedInhospList)){
+                                        ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+                                        scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+                                        scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+                                        List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+                                        //灏佽serviceSubtask
+                                        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
+                                        List<Map<String, Object>> preachformList = new ArrayList<>();
+                                        if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+                                            try {
+                                                ObjectMapper objectMapper = new ObjectMapper();
+                                                preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+                                            }catch (Exception e){
+                                                break;
+                                            }
+                                        }
+                                        scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+                                    }
+                                }
+                            }
                         }
                     }
                 }

--
Gitblit v1.9.3