From 356088d23c5f1a796685871f99e80a3b6a7de564 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 23 六月 2026 17:32:10 +0800
Subject: [PATCH] 【市一】外链开放机构号生成

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   54 ++++++++++++++++++++++++++----------------------------
 1 files changed, 26 insertions(+), 28 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 d7ddca4..8db8f65 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -313,7 +313,6 @@
         addSubTaskByRule(config);
         //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑闀挎湡浠诲姟,鏂板崕鍖婚櫌鍙互鍏堜笉鐢ㄦ牴鎹梾鍖哄拰鐤剧梾鏉ュ仛
         if (!active.equals("xh")) {
-            //todo 鎵嬫湳涓昏〃-鎵嬫湳璇︽儏琛�-鍑洪櫌璁板綍琛�-绉戝鍏崇郴锛� 闇�瑕侀檺鍒剁瀹わ紵
             addOperationSubTask(config);
         }
 
@@ -783,27 +782,18 @@
         } else {
             serviceTask = serviceTasks.get(0);
         }
-        if (Objects.isNull(patMedOperationItem.getOpid())) {
-            return;
-        }
         if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
             return;
         }
-        PatMedOperation patMedOperationVo = new PatMedOperation();
-        PatMedOperation patMedOperation = new PatMedOperation();
-        patMedOperationVo.setOpid(patMedOperationItem.getOpid());
-        List<PatMedOperation> patMedOperationList = patMedOperationMapper.selectPatMedOperationList(patMedOperationVo);
-        if (CollectionUtils.isEmpty(patMedOperationList)) {
+        if (Objects.isNull(patMedOperationItem.getPatid())) {
             return;
-        }else {
-            patMedOperation = patMedOperationList.get(0);
         }
-        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
+        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
         if (Objects.isNull(patArchive)) {
             return;
         }
         PatMedInhosp patMedInhosp = new PatMedInhosp();
-        patMedInhosp.setPatid(patMedOperation.getPatid());
+        patMedInhosp.setPatid((patMedOperationItem.getPatid()));
         patMedInhosp.setInhospstate("1");
         patMedInhosp.setFuflag("1");
         List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -813,12 +803,17 @@
         }
 
         //灏佽serviceSubtask
-        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config);
+        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
         if (ObjectUtils.isEmpty(serviceSubtask)) {
             return;
         }
-        serviceSubtask.setVisitDeptCode(patMedOperation.getReqdeptcode());
-        serviceSubtask.setVisitDeptName(patMedOperation.getReqdeptname());
+        if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
+        }else {
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
+        }
         //璁板綍insertServiceSubtask璇彞杩斿洖鐘舵��
         Integer i = 0;
         try {
@@ -1050,18 +1045,18 @@
     }
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
+    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
             serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
-        serviceSubtask.setNurseId(patMedOperation.getNurseId());
-        serviceSubtask.setNurseName(patMedOperation.getNurseName());
+        serviceSubtask.setNurseId(patMedOperationItem.getNurseId());
+        serviceSubtask.setNurseName(patMedOperationItem.getNurseName());
 //        serviceSubtask.setInhospid(patMedInhosp.getInhospid());
-        serviceSubtask.setDrcode(patMedOperation.getDrcode());
-        serviceSubtask.setDrname(patMedOperation.getDrname());
-        serviceSubtask.setDeptcode(patMedOperation.getDeptcode());
-        serviceSubtask.setDeptname(patMedOperation.getDeptname());
+        serviceSubtask.setDrcode(patMedOperationItem.getDrcode());
+        serviceSubtask.setDrname(patMedOperationItem.getDrname());
+        serviceSubtask.setDeptcode(patMedOperationItem.getDeptcode());
+        serviceSubtask.setDeptname(patMedOperationItem.getDeptname());
 
         serviceSubtask.setTemplateid(serviceTask.getTemplateid());
         serviceSubtask.setTemplatename(serviceTask.getTemplatename());
@@ -1073,8 +1068,8 @@
         serviceSubtask.setSex(patArchive.getSex());
         serviceSubtask.setAge(patArchive.getAge());
         serviceSubtask.setSendstate(2L);
-        serviceSubtask.setManagementDoctor(patMedOperation.getDrname());
-        serviceSubtask.setManagementDoctorCode(patMedOperation.getDrcode());
+        serviceSubtask.setManagementDoctor(patMedOperationItem.getDrname());
+        serviceSubtask.setManagementDoctorCode(patMedOperationItem.getDrcode());
 //        serviceSubtask.setStarttime(patMedInhosp.getStarttime());
 //        serviceSubtask.setEndtime(patMedInhosp.getEndtime());
 
@@ -1083,14 +1078,13 @@
         serviceSubtask.setHospType("2");
         serviceSubtask.setCreateTime(new Date());
         serviceSubtask.setUpdateTime(new Date());
-        serviceSubtask.setCreateBy(patMedOperation.getNurseName());
+        serviceSubtask.setCreateBy(patMedOperationItem.getNurseName());
 //        serviceSubtask.setLeavehospitaldistrictcode(patArchive.getLeavehospitaldistrictcode());
 //        serviceSubtask.setLeavehospitaldistrictname(patArchive.getLeavehospitaldistrictname());
         serviceSubtask.setOperationItemId(patMedOperationItem.getId());
         serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
         serviceSubtask.setUpdateTime(new Date());
 
-        //todo
         //璁剧疆鍙戦�佹椂闂�
         if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
         Date newDate = null;
@@ -1189,7 +1183,7 @@
         pmoi.setOpercheckFlag("0");
         pmoi.setMainFlag("1");
 
-        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectPatMedOperationItemList(pmoi);
+        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
         log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鎵嬫湳鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
 
         for (PatMedOperationItem opItem : patMedOperationItems) {
@@ -1204,6 +1198,10 @@
                 serviceTaskoper.setOrgid(opItem.getOrgid());
                 serviceTaskoper.setOplevelcode(opItem.getOplevelcode());
 
+                //鏍规嵁绉戝銆佺梾鍖鸿繃婊�
+                serviceTaskoper.setDeptCode(opItem.getDeptcode());
+                serviceTaskoper.setWardCode(opItem.getHospitaldistrictcode());
+
                 List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
                 //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
                 if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {

--
Gitblit v1.9.3