From 51e110ca563b40854763ec5a317514da8fda548c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期日, 19 四月 2026 11:30:09 +0800
Subject: [PATCH] #优化工作档和工作号事务V3.0.0.4
---
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