From 8a1f312d9f7842bb02c97b200e017926f0af63a5 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 17 九月 2025 14:48:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/LocMastController.java |  202 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 136 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 55346b9..09048b0 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -13,8 +13,10 @@
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasMap;
+import com.zy.asrs.entity.BasShuttleCharge;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.service.BasMapService;
+import com.zy.asrs.service.BasShuttleChargeService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.MapNode;
@@ -41,6 +43,8 @@
     private LocMastService locMastService;
     @Autowired
     private BasMapService basMapService;
+    @Autowired
+    private BasShuttleChargeService basShuttleChargeService;
 
     @RequestMapping(value = "/locMast/{id}/auth")
     @ManagerAuth
@@ -145,81 +149,147 @@
     @PostMapping("/locMast/init")
     @ManagerAuth(memo = "鍒濆鍖栧簱浣�")
     @Transactional
-    public R locMastInit(@RequestParam Integer lev) {
-        BasMap basMap = basMapService.selectLatestMap(lev);
-        locMastService.delete(new EntityWrapper<>(new LocMast())
-                .eq("lev1", lev));
-        List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
-        for (int row = 0; row < lists.size(); row++) {
-            List<MapNode> nodeList = lists.get(row);
-            for (int bay = 0; bay < nodeList.size(); bay++) {
-                MapNode mapNode = nodeList.get(bay);
+    public R locMastInit() {
+        List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
+        basShuttleChargeService.delete(new EntityWrapper<>());
+        int chargeNo = 1;
+        for (BasMap basMap : basMaps) {
+            Integer lev = basMap.getLev();
+            locMastService.delete(new EntityWrapper<>(new LocMast())
+                    .eq("lev1", lev));
+            List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱)
+            for (int row = 0; row < lists.size(); row++) {
+                List<MapNode> nodeList = lists.get(row);
+                for (int bay = 0; bay < nodeList.size(); bay++) {
+                    MapNode mapNode = nodeList.get(bay);
 
-                if (mapNode.getValue() == MapNodeType.DISABLE.id) {
-                    continue;
-                }
-
-                String locNo = Utils.getLocNo(row, bay, lev);
-                LocMast locMast = new LocMast();
-                locMast.setLocNo(locNo);
-                locMast.setRow1(row);
-                locMast.setBay1(bay);
-                locMast.setLev1(lev);
-                locMast.setStatus(1);
-
-                if (mapNode.getValue() == MapNodeType.NORMAL_PATH.id) {
-                    locMast.setLocSts(LocStsType.O.toString());
-                } else if (mapNode.getValue() == MapNodeType.MAIN_PATH.id) {
-                    locMast.setLocSts(LocStsType.W.toString());
-                }
-
-                locMastService.insert(locMast);
-            }
-        }
-
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("lev1", lev).orderBy("row1", false));
-        Integer rowMax = locMast.getRow1();
-        Integer baseRow = basMap.getBaseRow();
-        Integer baseRowCode = basMap.getBaseRowCode();
-
-        for (int i = baseRow; i <= rowMax; i++) {
-            Integer baseBayCode = basMap.getBaseBayCode();
-            if (basMap.getBaseBay() > 0) {
-                for (int j = 1; j <= basMap.getBaseBay(); j++) {
-                    String locNo = Utils.getLocNo(i, j, lev);
-
-                    LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
-                            .eq("loc_no", locNo));
-                    if (locMast1 != null) {
-                        HashMap<String, Object> point = new HashMap<>();
-                        point.put("y", baseRowCode);
-                        point.put("x", baseBayCode);
-                        point.put("z", lev);
-                        locMast1.setQrCodeValue(JSON.toJSONString(point));
-                        locMastService.updateById(locMast1);
+                    if (mapNode.getValue() == MapNodeType.DISABLE.id) {
+                        continue;
                     }
-                    baseBayCode += 1;
+
+                    String locNo = Utils.getLocNo(row, bay, lev);
+                    LocMast locMast = new LocMast();
+                    locMast.setLocNo(locNo);
+                    locMast.setRow1(row);
+                    locMast.setBay1(bay);
+                    locMast.setLev1(lev);
+                    locMast.setStatus(1);
+
+                    if (mapNode.getValue() == MapNodeType.NORMAL_PATH.id) {
+                        locMast.setLocSts(LocStsType.O.toString());
+                    } else if (mapNode.getValue() == MapNodeType.MAIN_PATH.id) {
+                        locMast.setLocSts(LocStsType.W.toString());
+                    } else if (mapNode.getValue() == MapNodeType.CHARGE.id) {
+                        locMast.setLocSts(LocStsType.C.toString());
+
+                        BasShuttleCharge basShuttleCharge = new BasShuttleCharge();
+                        basShuttleCharge.setChargeId(chargeNo++);
+                        basShuttleCharge.setLocNo(locNo);
+                        basShuttleCharge.setWaitLocNo(locNo);
+                        basShuttleCharge.setStatus(1);
+                        basShuttleCharge.setCreateTime(new Date());
+                        basShuttleCharge.setUpdateTime(new Date());
+                        basShuttleChargeService.insert(basShuttleCharge);
+                    } else if (mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+                        locMast.setLocSts(LocStsType.E.toString());
+                    } else if (mapNode.getValue() == MapNodeType.LIFT.id) {
+                        locMast.setLocSts(LocStsType.E.toString());
+                    }
+
+                    locMastService.insert(locMast);
+                }
+            }
+
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("lev1", lev).orderBy("row1", false));
+            Integer rowMax = locMast.getRow1();
+            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("lev1", lev).orderBy("bay1", false));
+            Integer bayMax = locMast2.getBay1();
+
+            Integer baseRow = basMap.getBaseRow();
+            Integer baseRowCode = basMap.getBaseRowCode();
+
+            if (baseRow > 0) {
+                for (int i = baseRow; i <= rowMax; i++) {
+                    Integer baseBayCode = basMap.getBaseBayCode();
+                    if (basMap.getBaseBay() > 0) {
+                        for (int j = basMap.getBaseBay(); j <= bayMax; j++) {
+                            String locNo = Utils.getLocNo(i, j, lev);
+
+                            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", locNo));
+                            if (locMast1 != null) {
+                                HashMap<String, Object> point = new HashMap<>();
+                                point.put("y", baseRowCode);
+                                point.put("x", baseBayCode);
+                                point.put("z", lev);
+                                locMast1.setQrCodeValue(JSON.toJSONString(point));
+                                locMastService.updateById(locMast1);
+                            }
+                            baseBayCode += 1;
+                        }
+                    }else {
+                        int baseBay = basMap.getBaseBay() * -1;
+                        for (int j = baseBay; j > 0; j--) {
+                            String locNo = Utils.getLocNo(i, j, lev);
+
+                            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", locNo));
+                            if (locMast1 != null) {
+                                HashMap<String, Object> point = new HashMap<>();
+                                point.put("y", baseRowCode);
+                                point.put("x", baseBayCode);
+                                point.put("z", lev);
+                                locMast1.setQrCodeValue(JSON.toJSONString(point));
+                                locMastService.updateById(locMast1);
+                            }
+                            baseBayCode += 1;
+                        }
+                    }
+                    baseRowCode += 1;
                 }
             }else {
-                int baseBay = basMap.getBaseBay() * -1;
-                for (int j = baseBay; j > 0; j--) {
-                    String locNo = Utils.getLocNo(i, j, lev);
+                baseRow = baseRow * -1;
+                for (int i = baseRow; i > 0; i--) {
+                    Integer baseBayCode = basMap.getBaseBayCode();
+                    if (basMap.getBaseBay() > 0) {
+                        for (int j = basMap.getBaseBay(); j <= bayMax; j++) {
+                            String locNo = Utils.getLocNo(i, j, lev);
 
-                    LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
-                            .eq("loc_no", locNo));
-                    if (locMast1 != null) {
-                        HashMap<String, Object> point = new HashMap<>();
-                        point.put("y", baseRowCode);
-                        point.put("x", baseBayCode);
-                        point.put("z", lev);
-                        locMast1.setQrCodeValue(JSON.toJSONString(point));
-                        locMastService.updateById(locMast1);
+                            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", locNo));
+                            if (locMast1 != null) {
+                                HashMap<String, Object> point = new HashMap<>();
+                                point.put("y", baseRowCode);
+                                point.put("x", baseBayCode);
+                                point.put("z", lev);
+                                locMast1.setQrCodeValue(JSON.toJSONString(point));
+                                locMastService.updateById(locMast1);
+                            }
+                            baseBayCode += 1;
+                        }
+                    }else {
+                        int baseBay = basMap.getBaseBay() * -1;
+                        for (int j = baseBay; j > 0; j--) {
+                            String locNo = Utils.getLocNo(i, j, lev);
+
+                            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("loc_no", locNo));
+                            if (locMast1 != null) {
+                                HashMap<String, Object> point = new HashMap<>();
+                                point.put("y", baseRowCode);
+                                point.put("x", baseBayCode);
+                                point.put("z", lev);
+                                locMast1.setQrCodeValue(JSON.toJSONString(point));
+                                locMastService.updateById(locMast1);
+                            }
+                            baseBayCode += 1;
+                        }
                     }
-                    baseBayCode += 1;
+                    baseRowCode += 1;
                 }
             }
-            baseRowCode += 1;
         }
+
         return R.ok();
     }
 

--
Gitblit v1.9.1