From 684484fb93775edcfa19cfc7a43d0a748c8362be Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 12 四月 2024 10:59:30 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java |   33 ++++++++++++++++++++++-----------
 1 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java
index 4eabc58..3807225 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java
@@ -104,31 +104,32 @@
             }
         }
         // loc
-        List<String> newMapLocList = new ArrayList<>();
+        List<String> newLocList = new ArrayList<>();
         for (MapItem item : param.getItemList()) {
             int row = Integer.parseInt(String.valueOf(item.getProperty().get("row")));
             int bay = Integer.parseInt(String.valueOf(item.getProperty().get("bay")));
             String locNo = Utils.getLocNo(row, bay, param.getFloor());
-            newMapLocList.add(locNo);
+            newLocList.add(locNo);
         }
 
         List<String> existLocList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getLev, param.getFloor()))
                 .stream().map(Loc::getLocNo).collect(Collectors.toList());
 
-        // todo
 
-        locService.remove(new LambdaQueryWrapper<Loc>().eq(Loc::getLev, param.getFloor()));
-        for (MapItem item : param.getItemList()) {
+        List<String> locListToSave = newLocList.stream().filter(locNo -> !existLocList.contains(locNo)).collect(Collectors.toList());
+
+        List<String> locListToRemove = existLocList.stream().filter(locNo -> !newLocList.contains(locNo)).collect(Collectors.toList());
+
+        List<String> locListInBoth = newLocList.stream().filter(existLocList::contains).collect(Collectors.toList());
+
+        for (String locNo : locListToSave) {
             Loc loc = new Loc();
-            loc.setRow(Integer.parseInt(String.valueOf(item.getProperty().get("row"))));
-            loc.setBay(Integer.parseInt(String.valueOf(item.getProperty().get("bay"))));
-            loc.setLev(param.getFloor());
-            String locNo = Utils.getLocNo(loc.getRow(), loc.getBay(), loc.getLev());
             loc.setLocNo(locNo);
             loc.setName(locNo);
-
+            loc.setRow(Utils.getRow(locNo));
+            loc.setBay(Utils.getBay(locNo));
+            loc.setLev(Utils.getLev(locNo));
             loc.setLocSts(LocStsType.O.val());
-
             loc.setCreateBy(userId);
             loc.setCreateTime(now);
             loc.setUpdateBy(userId);
@@ -137,6 +138,16 @@
                 throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
             }
         }
+
+        for (String locNo : locListToRemove) {
+            if (!locService.remove(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, locNo))) {
+                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
+            }
+        }
+
+        for (String locNo : locListInBoth) {
+
+        }
     }
 
 

--
Gitblit v1.9.1