From 8895f10b758cdeb5d97736b2954385a15472dd4a Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 25 八月 2026 10:48:36 +0800
Subject: [PATCH] 手术随访问题调整

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   67 ++++++++++++++++++++-------------
 1 files changed, 40 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 dc25230..8805bc4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -866,7 +866,7 @@
             log.info("璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓猴細{}", taskid);
             patMedOperationItem.setOpercheckFlag("2");
             patMedOperationItem.setLongTaskReason(longTaskReason + " & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid);
-            patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
+            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
             return;
         } else {
             serviceTask = serviceTasks.get(0);
@@ -1145,13 +1145,15 @@
         serviceSubtask.setTaskid(serviceTask.getTaskid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
             serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
-        serviceSubtask.setNurseId(patMedOperationItem.getNurseId());
-        serviceSubtask.setNurseName(patMedOperationItem.getNurseName());
-//        serviceSubtask.setInhospid(patMedInhosp.getInhospid());
-        serviceSubtask.setDrcode(patMedOperationItem.getDrcode());
-        serviceSubtask.setDrname(patMedOperationItem.getDrname());
-        serviceSubtask.setDeptcode(patMedOperationItem.getDeptcode());
-        serviceSubtask.setDeptname(patMedOperationItem.getDeptname());
+        serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
+        serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
+        serviceSubtask.setInhospid(patMedInhosp1.getInhospid());
+        serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
+        serviceSubtask.setDrname(patMedInhosp1.getDrname());
+        serviceSubtask.setDeptcode(patMedInhosp1.getLeaveldeptcode());
+        serviceSubtask.setDeptname(patMedInhosp1.getLeaveldeptname());
+        serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
+        serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
 
         serviceSubtask.setTemplateid(serviceTask.getTemplateid());
         serviceSubtask.setTemplatename(serviceTask.getTemplatename());
@@ -1163,19 +1165,18 @@
         serviceSubtask.setSex(patArchive.getSex());
         serviceSubtask.setAge(patArchive.getAge());
         serviceSubtask.setSendstate(2L);
-        serviceSubtask.setManagementDoctor(patMedOperationItem.getDrname());
-        serviceSubtask.setManagementDoctorCode(patMedOperationItem.getDrcode());
-//        serviceSubtask.setStarttime(patMedInhosp.getStarttime());
-//        serviceSubtask.setEndtime(patMedInhosp.getEndtime());
+        serviceSubtask.setManagementDoctor(patMedInhosp1.getDrname());
+        serviceSubtask.setManagementDoctorCode(patMedInhosp1.getDrcode());
+
+        serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
+        serviceSubtask.setEndtime(patMedInhosp1.getEndtime());
 
         serviceSubtask.setServiceType(serviceTask.getServiceType());
         serviceSubtask.setPreachform(serviceTask.getPreachform());
         serviceSubtask.setHospType("2");
         serviceSubtask.setCreateTime(new Date());
         serviceSubtask.setUpdateTime(new Date());
-        serviceSubtask.setCreateBy(patMedOperationItem.getNurseName());
-//        serviceSubtask.setLeavehospitaldistrictcode(patArchive.getLeavehospitaldistrictcode());
-//        serviceSubtask.setLeavehospitaldistrictname(patArchive.getLeavehospitaldistrictname());
+        serviceSubtask.setCreateBy(patMedInhosp1.getNurseName());
         serviceSubtask.setOperationItemId(patMedOperationItem.getId());
         serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
         serviceSubtask.setUpdateTime(new Date());
@@ -1291,19 +1292,31 @@
                     continue;
                 }
                 // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
-                ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
-                serviceTaskoper.setLongtask(1L);
-                serviceTaskoper.setOrgid(opItem.getOrgid());
-                serviceTaskoper.setOplevelcode(opItem.getOplevelcode());
-
-                //鏍规嵁绉戝銆佺梾鍖鸿繃婊�
+                List<ServiceTaskoper> serviceTaskopersDept = new ArrayList<>();
                 if(StringUtils.isNotEmpty(opItem.getLeaveldeptcode())){
-                    serviceTaskoper.setDeptCode(opItem.getLeaveldeptcode());
-                }else {
-                    serviceTaskoper.setWardCode(opItem.getLeavehospitaldistrictcode());
+                    ServiceTaskoper serviceTaskoper1 = new ServiceTaskoper();
+                    serviceTaskoper1.setLongtask(1L);
+                    serviceTaskoper1.setOrgid(opItem.getOrgid());
+                    serviceTaskoper1.setOplevelcode(opItem.getOplevelcode());
+                    serviceTaskoper1.setDeptCode(opItem.getLeaveldeptcode());
+                    serviceTaskopersDept = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper1);
                 }
 
-                List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
+
+                List<ServiceTaskoper> serviceTaskopersWard = new ArrayList<>();
+                if(StringUtils.isNotEmpty(opItem.getLeavehospitaldistrictcode())){
+                    ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
+                    serviceTaskoper2.setLongtask(1L);
+                    serviceTaskoper2.setOrgid(opItem.getOrgid());
+                    serviceTaskoper2.setOplevelcode(opItem.getOplevelcode());
+                    serviceTaskoper2.setWardCode(opItem.getLeavehospitaldistrictcode());
+                    serviceTaskopersWard = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper2);
+                }
+
+
+                List<ServiceTaskoper> serviceTaskopers = new ArrayList<>();
+                serviceTaskopers.addAll(serviceTaskopersDept);
+                serviceTaskopers.addAll(serviceTaskopersWard);
                 //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
                 if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
                     PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId());
@@ -1311,8 +1324,8 @@
                     patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "鎵�鎮g殑鎵嬫湳鏈厤缃暱鏈熶换鍔�;");
                     patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
                 } else {
-                    for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) {
-                        writeInSubTaskForOp(serviceTaskoper1.getTaskId(), true, opItem, config);
+                    for (ServiceTaskoper serviceTaskoper : serviceTaskopers) {
+                        writeInSubTaskForOp(serviceTaskoper.getTaskId(), true, opItem, config);
                     }
                 }
 

--
Gitblit v1.9.3