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    |   38 +++++++++++++++++++++++++-------------
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |    5 +++++
 2 files changed, 30 insertions(+), 13 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 d18bd66..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);
@@ -1292,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());
@@ -1312,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);
                     }
                 }
 
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index ab13b48..ad402cc 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1458,6 +1458,10 @@
                 return info;
             }).collect(Collectors.toList()) : null;
 
+            if(ObjectUtils.isNotEmpty(patMedOperation.getId())){
+                patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(patMedOperation.getId().toString());
+            }
+
             //addMianTableFalg鏄惁闇�瑕佸皢涓绘墜鏈殑淇℃伅鏀惧埌PatMedOperation琛ㄤ腑锛堝彧鏈夌涓�涓富鎵嬫湳淇℃伅闇�瑕佹斁锛屽悗闈㈢殑閮戒笉闇�瑕佹斁浜嗭紝涔熷氨鏄锛岀涓�涓斁瀹屽悗锛屽氨瑕佹妸杩欎釜flag鏀规垚false锛�
             Boolean addMianTableFalg = true;
             for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) {
@@ -1491,6 +1495,7 @@
                     addMianTableFalg = false;
                 }
                 patMedOperationItem.setCreateTime(new Date());
+                patMedOperationItem.setUpdateTime(new Date());
                 patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
             }
         }

--
Gitblit v1.9.3