From f1f9e42e3714dc51cd63e8187add28e4138cb8e8 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 14 九月 2026 10:46:01 +0800
Subject: [PATCH] 【丽水】报错处理

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   35 +++++++++++++++++++++++++----------
 1 files changed, 25 insertions(+), 10 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 a9ba655..7f4d5a3 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -727,7 +727,7 @@
                             //鍐嶅叆闄㈤�昏緫
                             //鏅畞 鍑洪櫌棣栨锛�7澶╋級闅忚涓�瀹氳鍋�
                             boolean firstVisit = false;
-                            if (orgId.equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) {
+                            if (orgId.equals("47255004333112711A1001")) {
                                 firstVisit = true;
                             }
                             if (!firstVisit) {
@@ -865,7 +865,7 @@
         if (CollectionUtils.isEmpty(serviceTasks)) {
             log.info("璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓猴細{}", taskid);
             patMedOperationItem.setOpercheckFlag("2");
-            patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + longTaskReason + " & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid +";");
+            patMedOperationItem.setLongTaskReason(" & 璇ユ墜鏈搴旀墜鏈瓑绾х殑闀挎湡浠诲姟涓嶅瓨鍦�,浠诲姟ID涓�:" + taskid +";");
             patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
             return;
         } else {
@@ -897,7 +897,7 @@
 
         //灏佽serviceSubtask
         ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
-        if (ObjectUtils.isEmpty(serviceSubtask)) {
+        if (ObjectUtils.isEmpty(serviceSubtask) || Objects.isNull(serviceSubtask.getTaskid())) {
             return;
         }
         if (StringUtils.isNotEmpty(patMedOperationItem.getLeaveldeptcode())) {
@@ -971,17 +971,20 @@
                 PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
                 patMedOperationItem2.setId(patMedOperationItem.getId());
                 patMedOperationItem2.setOpercheckFlag("2");
-                patMedOperationItem2.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "鐢熸垚瀛愪换鍔″け璐� 4;");
+                patMedOperationItem2.setLongTaskReason("鐢熸垚瀛愪换鍔″け璐� 4;");
+                patMedOperationItem2.setUpdateTime(new Date());
                 patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
             }
         } catch (Exception e) {
             //鍑洪敊鍥炴粴浜嬪姟
 
-            log.info("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴serviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
+            log.error("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴serviceSubtask鐨則askid涓猴細{},patid涓猴細{},鎵嬫湳璇︽儏ID涓猴細{}",
+                    serviceSubtask.getTaskid(), serviceSubtask.getPatid(), patMedOperationItem.getId(), e);
             PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
             patMedOperationItem2.setId(patMedOperationItem.getId());
             patMedOperationItem2.setOpercheckFlag("2");
-            patMedOperationItem2.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "鐢熸垚瀛愪换鍔℃姤閿欏洖婊� 4;");
+            patMedOperationItem2.setUpdateTime(new Date());
+            patMedOperationItem2.setLongTaskReason("鐢熸垚瀛愪换鍔℃姤閿欏洖婊� 4;");
             patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
             e.printStackTrace();
         }
@@ -990,6 +993,10 @@
     private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) {
         //灏唒reachformDesc鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓�
         ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+        if (Objects.isNull(serviceTask)) {
+            log.error("addServiceSubtaskPreachform taskid={} 鏌ヤ笉鍒颁换鍔★紝璺宠繃preachform瀛愯〃鐢熸垚", serviceSubtask.getTaskid());
+            return 0;
+        }
         String preachformDesc = serviceTask.getPreachformDesc();
 
         ObjectMapper objectMapper = new ObjectMapper();
@@ -1000,6 +1007,11 @@
                 });
             } catch (JsonProcessingException e) {
                 log.error("preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage());
+            }
+            if (CollectionUtils.isEmpty(serviceSubtaskPreachformList)) {
+                log.error("preachformDesc瑙f瀽鍚庝负绌猴紝璺宠繃preachform瀛愯〃鐢熸垚锛宼askid涓猴細{}锛宲reachformDesc涓猴細{}",
+                        serviceSubtask.getTaskid(), preachformDesc);
+                return 0;
             }
             for (ServiceSubtaskPreachform serviceSubtaskPreachform : serviceSubtaskPreachformList) {
                 serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
@@ -1188,13 +1200,13 @@
             newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue());
         } else {
             patMedOperationItem.setOpercheckFlag("2");
-            patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鎵嬫湳璇︽儏ID涓�:" + patMedOperationItem.getId() + ";");
+            patMedOperationItem.setLongTaskReason("璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鎵嬫湳璇︽儏ID涓�:" + patMedOperationItem.getId() + ";");
             patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
 //            patMedInhosp1.setDeptcheckFlag("2");
 //            patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 璇ユ偅鑰呮墜鏈嚭闄㈡椂闂翠负绌�,鍑洪櫌璁板綍ID涓�:" + patMedInhosp1.getInhospid());
 //            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
             //濡傛灉鍑洪櫌鏃堕棿涓虹┖锛屽垯杩斿洖涓�涓柊瀵硅薄
-            return new ServiceSubtask();
+            return null;
         }
         serviceSubtask.setLongSendTime(newDate);
         serviceSubtask.setVisitTime(newDate);
@@ -1251,7 +1263,7 @@
                         }
                         //鏅畞 鍑洪櫌棣栨锛�7澶╋級闅忚涓�瀹氳鍋�
                         boolean firstVisit = false;
-                        if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) {
+                        if (serviceSubtask1.getOrgid().equals("47255004333112711A1001")) {
                             firstVisit = true;
                         }
                         if (!firstVisit) {
@@ -1284,6 +1296,7 @@
         }
         pmoi.setOpercheckFlag("0");
         pmoi.setMainFlag("1");
+        pmoi.setOpid("5414");
 
         List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
         log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鎵嬫湳鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
@@ -1324,7 +1337,8 @@
                 if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
                     PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId());
                     patMedOperationItem.setOpercheckFlag("2");
-                    patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "鎵�鎮g殑鎵嬫湳鏈厤缃暱鏈熶换鍔�;");
+                    patMedOperationItem.setLongTaskReason("鎵�鎮g殑鎵嬫湳鏈厤缃暱鏈熶换鍔�;");
+                    patMedOperationItem.setUpdateTime(new Date());
                     patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
                 } else {
                     for (ServiceTaskoper serviceTaskoper : serviceTaskopers) {
@@ -1335,6 +1349,7 @@
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error("浜哄憳鎵嬫湳澶勭悊鍑哄紓甯镐簡锛歿}", e.getMessage());
+                opItem.setUpdateTime(new Date());
                 opItem.setOpercheckFlag("2");
                 opItem.setLongTaskReason("浜哄憳鎵嬫湳澶勭悊寮傚父");
                 patMedOperationItemMapper.updatePatMedOperationItem(opItem);

--
Gitblit v1.9.3