From a2dd18982406d0b859ba8a6f3aa1696014faf966 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 15 十二月 2025 17:05:22 +0800
Subject: [PATCH] 【丽水】处理患者信息,进入子任务表定时任务 空指针异常修复

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 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 9f44995..923a97e 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -249,7 +249,6 @@
                     patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                 } else {
                     for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
-                        //todo 1
                         writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
                     }
                     patMedInhosp1.setDeptcheckFlag("1");
@@ -301,7 +300,6 @@
                         patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                     } else {
                         for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
-                            //todo 2
                             writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
                         }
                         pmiBQ1.setWardcheckFlag("1");
@@ -355,7 +353,6 @@
                         patMedInhospMapper.updatePatMedInhosp(pmiJB);
                     } else {
                         for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
-                            //todo 3
                             writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
                         }
                         pmiJB.setDiagcheckFlag("1");
@@ -539,7 +536,6 @@
         return calendar.getTime();
     }
 
-    //todo
     //灏嗘偅鑰呮斁鍒皊ubtask涓�
     private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) {
         String longTaskReason = patMedInhosp1.getLongTaskReason();
@@ -567,9 +563,9 @@
                 patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                 return;
             }
+        }else {
             serviceTask = serviceTasks.get(0);
         }
-
         if (Objects.isNull(patMedInhosp1.getEndtime())) {
             return;
         }
@@ -587,7 +583,7 @@
 
         Integer i = 0;
         //鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠�
-        if (check && serviceSubtask.getTaskSituation() != 6) {
+        if (check && (Objects.isNull(serviceSubtask.getTaskSituation()) || serviceSubtask.getTaskSituation() != 6)) {
             //鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛�
             ServiceSubtaskVO subtask = new ServiceSubtaskVO();
             subtask.setPatid(patArchive.getId());
@@ -605,8 +601,26 @@
                     if (type == 1 || type == 2) {
                         Date endTime = serviceSubtask.getEndtime();
                         Date endTime1 = serviceSubtask1.getEndtime();
-                        String serviceType1 = serviceSubtask1.getServiceType();
-                        if (endTime1.before(endTime) && "2".equals(serviceType1)) {
+                        //鍑洪櫌鏃堕棿鍒ょ┖锛屽鏋滀负绌鸿烦杩�
+                        if(Objects.isNull(endTime)){
+                            serviceSubtask.setResult("error");
+                            serviceSubtask.setRemark("鍑洪櫌鏃堕棿涓虹┖锛宻erviceSubtask鐨処d涓�" + serviceSubtask.getId());
+                            serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+                            serviceSubtask.setUpdateTime(new Date());
+                            Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+                            if (aBoolean) i = 1;
+                            continue;
+                        }
+                        if(Objects.isNull(endTime1)){
+                            serviceSubtask1.setResult("error");
+                            serviceSubtask1.setRemark("鍑洪櫌鏃堕棿涓虹┖锛宻erviceSubtask鐨処d涓�" + serviceSubtask1.getId());
+                            serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy());
+                            serviceSubtask1.setUpdateTime(new Date());
+                            Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+                            if (aBoolean) i = 1;
+                            continue;
+                        }
+                        if (endTime1.before(endTime) && serviceSubtask1.getServiceType().equals("2")) {
                             //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺�
                             serviceSubtask1.setSendstate(4L);
                             if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))

--
Gitblit v1.9.3