From 57610f520d214c9b5797191f7dbc68c121c7f0c1 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 14 四月 2026 19:34:52 +0800
Subject: [PATCH] mat导入问题 移库数据丢失修复

---
 src/main/java/com/zy/asrs/utils/MatExcelListener.java |   46 +++++++++++++++++++++++++++++++---------------
 1 files changed, 31 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/MatExcelListener.java b/src/main/java/com/zy/asrs/utils/MatExcelListener.java
index cd399be..497492c 100644
--- a/src/main/java/com/zy/asrs/utils/MatExcelListener.java
+++ b/src/main/java/com/zy/asrs/utils/MatExcelListener.java
@@ -56,6 +56,9 @@
         MatService matService = SpringUtils.getBean(MatService.class);
         Date now = new Date();
         Long tagId;
+        if (Cools.isEmpty(excel.getMatnr())) {
+            throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖锛侊紒");
+        }
         // 鍒嗙被
         // 涓�绾у垎绫�
         if (!Cools.isEmpty(excel.getPriClass()) && !Cools.isEmpty(excel.getSecClass())) {
@@ -125,21 +128,34 @@
         }
         // 鍟嗗搧
         Mat mat = matService.selectByMatnr(excel.getMatnr());
-        if (mat == null) {
-            mat = excel;
-            mat.setTagId(tagId);
-            mat.setLocType(tagId);
-            if (Objects.isNull(mat.getVolume())) {
-                throw new CoolException("姣忓叕鏂ら暱搴︿笉鑳戒负绌猴紒锛�");
-            }
-            if (Objects.isNull(mat.getSafeQty())) {
-                throw new CoolException("褰掗浂闃�鍊间笉鑳戒负绌猴紒锛�");
-            }
-            if (!matService.insert(mat)) {
-                throw new CoolException("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屽晢鍝佺紪鐮侊細" + excel.getMatnr());
-            }
-            total++;
+        boolean isNew = mat == null;
+        if (isNew) {
+            mat = new Mat();
+            mat.setCreateBy(userId);
+            mat.setCreateTime(now);
         }
+        mat.setMatnr(excel.getMatnr());
+        mat.setMaktx(excel.getMaktx());
+        mat.setUnit(excel.getUnit());
+        mat.setSafeQty(excel.getSafeQty());
+        mat.setVolume(excel.getVolume());
+        mat.setStoreMax(excel.getStoreMax());
+        mat.setStoreMin(excel.getStoreMin());
+        mat.setTagId(tagId);
+        mat.setLocType(tagId);
+        mat.setUpdateBy(userId);
+        mat.setUpdateTime(now);
+        if (Objects.isNull(mat.getVolume())) {
+            throw new CoolException("姣忓叕鏂ら暱搴︿笉鑳戒负绌猴紒锛�");
+        }
+        if (Objects.isNull(mat.getSafeQty())) {
+            throw new CoolException("褰掗浂闃堝�间笉鑳戒负绌猴紒锛�");
+        }
+        boolean ok = isNew ? matService.insert(mat) : matService.updateById(mat);
+        if (!ok) {
+            throw new CoolException((isNew ? "淇濆瓨" : "鏇存柊") + "鍟嗗搧淇℃伅澶辫触锛屽晢鍝佺紪鐮侊細" + excel.getMatnr());
+        }
+        total++;
     }
 
     /**
@@ -148,7 +164,7 @@
      */
     @Override
     public void doAfterAllAnalysed(AnalysisContext ctx) {
-        log.info("鏂板{}鏉$墿鏂欎俊鎭紒", total);
+        log.info("鍚屾{}鏉$墿鏂欎俊鎭紒", total);
     }
 
     public int getTotal() {

--
Gitblit v1.9.1