From d44606236559adf331ee38846ef6acb1b25e5eef Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 29 十二月 2025 12:18:50 +0800
Subject: [PATCH] #新增erp中间表
---
src/main/java/com/zy/third/erp/task/ERPLocDetlScheduler.java | 59 +++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/zy/third/erp/task/ERPLocDetlScheduler.java b/src/main/java/com/zy/third/erp/task/ERPLocDetlScheduler.java
index 2b42588..66a744f 100644
--- a/src/main/java/com/zy/third/erp/task/ERPLocDetlScheduler.java
+++ b/src/main/java/com/zy/third/erp/task/ERPLocDetlScheduler.java
@@ -1,5 +1,6 @@
package com.zy.third.erp.task;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocDetlChangelog;
import com.zy.asrs.mapper.LocDetlChangelogMapper;
@@ -35,7 +36,7 @@
@Scheduled(cron = "${erp.refreshtime}")
public void LocDetlScheduler() {
if (!erpEnabled) return;
-
+ boolean result = false;
List<LocDetlChangelog> logs = locDetlChangelogMapper.selectUnprocessedLogs();
for (LocDetlChangelog changelog : logs) {
@@ -45,10 +46,14 @@
Map<String, Object> content = locDetlToMap(item);
switch (action) {
- case "INSERT":
+ case "INSERT":
String insertSql = buildInsertSql("asr_loc_detl", content);
- erpSqlServer.update(insertSql);
- log.info("鍚屾ERP鏂板鎴愬姛: locNo={}", item.getLocNo());
+ if(erpSqlServer.update(insertSql) > 0){
+ log.info("鍚屾ERP鏂板鎴愬姛: locNo={}", item.getLocNo());
+ result = true;
+ }else{
+ log.info("鍚屾ERP鏂板澶辫触: locNo={}", item.getLocNo());
+ }
break;
case "UPDATE":
@@ -56,7 +61,6 @@
// 瑙f瀽 JSON
Map<String, Object> dataMap = JSON.parseObject(changelog.getData(), Map.class);
Map<String, Object> afterMap = (Map<String, Object>) dataMap.get("after");
-
// 鎷兼帴 UPDATE SQL
StringBuilder setSql = new StringBuilder();
afterMap.forEach((k, v) -> {
@@ -69,27 +73,42 @@
}
});
setSql.deleteCharAt(setSql.length() - 1); // 鍘绘帀鏈�鍚庨�楀彿
-
- String updateSql = "UPDATE asr_loc_detl SET " + setSql + " WHERE loc_no='" + escapeSql((String)afterMap.get("loc_no")) + "' AND zpallet='" + escapeSql((String)afterMap.get("zpallet")) + "'";
- erpSqlServer.update(updateSql);
-
- log.info("鍚屾ERP鏇存柊鎴愬姛: locNo={}, zpallet={}", afterMap.get("loc_no"), afterMap.get("zpallet"));
+ String updateSql =
+ "UPDATE asr_loc_detl SET " + setSql +
+ " WHERE loc_no='" + escapeSql((String)afterMap.get("loc_no")) +
+ "' AND zpallet='" + escapeSql((String)afterMap.get("zpallet")) +
+ "' AND matnr='" + escapeSql((String)afterMap.get("matnr")) + "'";
+ if(erpSqlServer.update(updateSql) > 0){
+ log.info("鍚屾ERP鏇存柊鎴愬姛: locNo={}, zpallet={}", afterMap.get("loc_no"), afterMap.get("zpallet"));
+ result = true;
+ }else{
+ log.info("鍚屾ERP鏇存柊澶辫触: locNo={}, zpallet={}", afterMap.get("loc_no"), afterMap.get("zpallet"));
+ }
} catch (Exception e) {
log.error("鏇存柊ERP澶辫触: locNo=" + changelog.getLocNo(), e);
}
-
- case "DELETE":
- String deleteSql = "DELETE FROM asr_loc_detl WHERE loc_no='" + escapeSql(item.getLocNo()) + "'";
- erpSqlServer.update(deleteSql);
- log.info("鍚屾ERP鍒犻櫎鎴愬姛: locNo={}", item.getLocNo());
break;
-
+ case "DELETE":
+ String deleteSql = "DELETE FROM asr_loc_detl WHERE " +
+ "loc_no='" + escapeSql(item.getLocNo()) + "' AND " +
+ "zpallet='" + escapeSql(item.getZpallet()) + "' AND " +
+ "matnr='" + escapeSql(item.getMatnr()) + "' AND " +
+ "anfme=" + item.getAnfme();
+ if(erpSqlServer.update(deleteSql) > 0){
+ log.info("鍚屾ERP鍒犻櫎鎴愬姛: locNo={}", item.getLocNo());
+ result = true;
+ }else{
+ log.info("鍚屾ERP鍒犻櫎澶辫触: locNo={}", item.getLocNo());
+ }
+ break;
default:
log.error("鏈煡鎿嶄綔绫诲瀷锛�" + action);
}
-
- locDetlChangelogMapper.markProcessed(changelog.getId());
-
+ if(result){
+ locDetlChangelogMapper.markProcessed(changelog.getId());
+ }else {
+ throw new CoolException("鍚屾澶辫触");
+ }
} catch (Exception e) {
log.error("鍚屾ERP澶辫触锛屾棩蹇桰D锛�" + changelog.getId(), e);
}
@@ -192,4 +211,4 @@
if (str == null) return "";
return str.replace("'", "''");
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.1