From dc3f9cc91759823ce59486f19b138be4b296a0f1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 28 四月 2026 09:43:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/service/WrkCommandRollbackService.java |   56 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/core/service/WrkCommandRollbackService.java b/src/main/java/com/zy/core/service/WrkCommandRollbackService.java
index cd36992..d10bf93 100644
--- a/src/main/java/com/zy/core/service/WrkCommandRollbackService.java
+++ b/src/main/java/com/zy/core/service/WrkCommandRollbackService.java
@@ -1,6 +1,7 @@
 package com.zy.core.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.param.ManualRollbackTaskParam;
@@ -70,13 +71,21 @@
 
         saveWrkLog(wrkMast.getWrkNo());
 
-        wrkMast.setWrkSts(updateStatus);
-        wrkMast.setSendFailCount(nextFailCount);
-        wrkMast.setErrorTime(new Date());
-        wrkMast.setErrorMemo(failMessage);
-        wrkMast.setSystemMsg(failMessage);
-        wrkMast.setModiTime(new Date());
-        wrkMastService.updateById(wrkMast);
+        Long currentWrkSts = wrkMast.getWrkSts();
+        Date now = new Date();
+        boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+                .set("wrk_sts", updateStatus)
+                .set("send_fail_count", nextFailCount)
+                .set("error_time", now)
+                .set("error_memo", failMessage)
+                .set("system_msg", failMessage)
+                .set("modi_time", now)
+                .eq("wrk_no", wrkMast.getWrkNo())
+                .eq("wrk_sts", currentWrkSts));
+        if (!updated) {
+            log.info("宸ヤ綔妗g姸鎬佸凡鍙樺寲锛岃烦杩囧懡浠ゅけ璐ュ洖婊氥�倃rkNo={}", wrkMast.getWrkNo());
+            return;
+        }
 
         if (manualRequired) {
             News.taskError(wrkMast.getWrkNo(), "{}涓嬪彂鍛戒护澶辫触锛屽凡杈惧埌鑷姩鍥炴粴涓婇檺({})锛岃鍦ㄥ伐浣滄。鎵嬪姩鍥炴粴銆傚師鍥�: {}", deviceName, rollbackLimit, failMessage);
@@ -99,11 +108,17 @@
 
         saveWrkLog(wrkMast.getWrkNo());
 
-        wrkMast.setWrkSts(rollbackStatus);
-        wrkMast.setSendFailCount(0);
-        wrkMast.setSystemMsg("浜哄伐鍥炴粴瀹屾垚锛岀瓑寰呴噸鏂颁笅鍙�");
-        wrkMast.setModiTime(new Date());
-        wrkMastService.updateById(wrkMast);
+        Long currentWrkSts = wrkMast.getWrkSts();
+        boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+                .set("wrk_sts", rollbackStatus)
+                .set("send_fail_count", 0)
+                .set("system_msg", "浜哄伐鍥炴粴瀹屾垚锛岀瓑寰呴噸鏂颁笅鍙�")
+                .set("modi_time", new Date())
+                .eq("wrk_no", wrkMast.getWrkNo())
+                .eq("wrk_sts", currentWrkSts));
+        if (!updated) {
+            throw new CoolException("浠诲姟鐘舵�佸凡鍙樺寲锛岃鍒锋柊鍚庨噸璇�");
+        }
         News.taskInfo(wrkMast.getWrkNo(), "浜哄伐鍥炴粴瀹屾垚锛屼换鍔$姸鎬佸凡鎭㈠涓哄緟鎵ц");
         return true;
     }
@@ -118,12 +133,17 @@
 
         saveWrkLog(wrkMast.getWrkNo());
 
-        wrkMast.setSendFailCount(0);
-        wrkMast.setErrorTime(null);
-        wrkMast.setErrorMemo(null);
-        wrkMast.setSystemMsg("");
-        wrkMast.setModiTime(new Date());
-        wrkMastService.updateById(wrkMast);
+        boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+                .set("send_fail_count", 0)
+                .set("error_time", null)
+                .set("error_memo", null)
+                .set("system_msg", "")
+                .set("modi_time", new Date())
+                .eq("wrk_no", wrkMast.getWrkNo())
+                .eq("wrk_sts", wrkMast.getWrkSts()));
+        if (!updated) {
+            log.info("宸ヤ綔妗g姸鎬佸凡鍙樺寲锛岃烦杩囨竻鐞嗕笅鍙戝け璐ユ爣璁般�倃rkNo={}", wrkMast.getWrkNo());
+        }
     }
 
     private WrkMast findWrkMast(Integer wrkNo, String taskNo) {

--
Gitblit v1.9.1