From 83ba8a26cfc33a700d0de16ba9ad6e9229db0932 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 07 四月 2026 17:40:01 +0800
Subject: [PATCH] 优化,部分历史明细被额外删除的bug
---
src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java | 24 ++++++++++++++++--------
src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java | 15 ++++++++-------
2 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java
index f7911cd..1e70810 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkArchiveToLogServiceImpl.java
@@ -17,6 +17,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.text.MessageFormat;
import java.util.List;
@@ -69,6 +70,10 @@
int detlCount = wrkDetlLogMapper.selectCount(detlLogW);
boolean wrkMastDeleted =false;
boolean wrkDetlDeleted =false;
+// JSONObject detlJson = new JSONObject(true);
+// detlJson.put("mastCount", mastCount);
+// detlJson.put("detlCount", detlCount);
+// detlJson.put("num", num);
if (mastCount > 0 && detlCount > 0) {
wrkMastDeleted = wrkMastMapper.deleteById(wrkNo) > 0;
if (!wrkMastDeleted) {
@@ -78,16 +83,19 @@
if (!wrkDetlDeleted) {
log.error(MessageFormat.format("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", wrkNo));
}
+ }else {
+// detlJson.put("rollback","瑙﹀彂鍥炴粴");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
if (printLog) {
- JSONObject detlJson = new JSONObject(true);
- detlJson.put("service", "WrkArchiveToLogService");
- detlJson.put("wrkNo", wrkNo);
- detlJson.put("wrkDetls", JSON.toJSON(detls));
- detlJson.put("wrkMast", (JSONObject) JSON.toJSON(wrkMast));
- detlJson.put("wrkMastDeleted", wrkMastDeleted);
- detlJson.put("wrkDetlDeleted", wrkDetlDeleted);
- log.info(detlJson.toJSONString());
+
+// detlJson.put("service", "WrkArchiveToLogService");
+// detlJson.put("wrkNo", wrkNo);
+// detlJson.put("wrkDetls", JSON.toJSON(detls));
+// detlJson.put("wrkMast", (JSONObject) JSON.toJSON(wrkMast));
+// detlJson.put("wrkMastDeleted", wrkMastDeleted);
+// detlJson.put("wrkDetlDeleted", wrkDetlDeleted);
+// log.info(detlJson.toJSONString());
}
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java b/src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java
index 78bd822..90bb425 100644
--- a/src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java
@@ -20,10 +20,10 @@
@Transactional
public ReturnT<String> start() {
try {
- batchDelete("asr_stk_hplc", 180);
- batchDelete("asr_wrk_detl_log", 360);
- batchDelete("asr_wrk_mast_log", 360);
- batchDelete("cust_wait_pakin_log", 360);
+ batchDelete("asr_stk_hplc", "appe_time", 180);
+ batchDelete("asr_wrk_detl_log", "io_time", 360);
+ batchDelete("asr_wrk_mast_log", "io_time", 360);
+ batchDelete("cust_wait_pakin_log", "appe_time", 360);
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -32,13 +32,14 @@
return SUCCESS;
}
- private void batchDelete(String tableName, int days) {
+ @SuppressWarnings("SameParameterValue")
+ private void batchDelete(String tableName, String time, int days) {
int batchSize = 1000;
int affected;
do {
String sql = String.format(
- "WITH cte AS (SELECT TOP (%d) * FROM %s WHERE dateadd(day, %d, appe_time) <= getdate()) DELETE FROM cte",
- batchSize, tableName, days
+ "WITH cte AS (SELECT TOP (%d) * FROM %s WHERE dateadd(day, %d, %s) <= getdate()) DELETE FROM cte",
+ batchSize, tableName, days, time
);
affected = jdbcTemplate.update(sql);
} while (affected > 0);
--
Gitblit v1.9.1