From 1f28c318888b4b7eb6153997218d29ab7969a53a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 21 三月 2026 19:38:27 +0800
Subject: [PATCH] 修改bug和优化推送消息触发的先后顺序

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
index d8f78b6..a642d24 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
@@ -53,6 +53,7 @@
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -489,8 +490,14 @@
             }
         }
         //批量保存排班明细数据
-        if (!schedulingDetails.isEmpty()) {
-            this.saveOrUpdateBatch(schedulingDetails);
+
+        //找出需要删除的数据
+        Set<Long> collect = schedulingDetails.stream().filter(s -> s.getId() != null).collect(Collectors.toList()).stream().map(XpSchedulingDetail::getId).collect(Collectors.toSet());
+        List<XpSchedulingDetail> collect1 = list.stream().filter(s -> !collect.contains(s.getId())).collect(Collectors.toList());
+        collect1.forEach(s -> s.setDeleted(true));
+        collect1.addAll(schedulingDetails);
+        if (!collect1.isEmpty()) {
+            this.saveOrUpdateBatch(collect1);
         }
         //异步处理消息通知数据
         pushMessage(pushMessage, notifications);

--
Gitblit v1.7.1