From cab03b05c45ad43085d7e54c946759690911916c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 11 四月 2024 15:53:01 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 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 9d95cc3..29197d3 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
@@ -5,11 +5,16 @@
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wcs.common.domain.enums.DictType;
+import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.map.controller.param.MapDataParam;
 import com.zy.asrs.wcs.core.map.controller.param.MapQueryParam;
 import com.zy.asrs.wcs.core.map.controller.result.LiftVo;
 import com.zy.asrs.wcs.core.map.controller.result.LocVo;
 import com.zy.asrs.wcs.core.map.controller.result.ShuttleVo;
+import com.zy.asrs.wcs.core.map.entity.MapItem;
+import com.zy.asrs.wcs.core.model.enums.LocStsType;
+import com.zy.asrs.wcs.core.service.LocService;
+import com.zy.asrs.wcs.core.service.LocStsService;
 import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
 import com.zy.asrs.wcs.rcs.entity.Device;
@@ -25,6 +30,7 @@
 import com.zy.asrs.wcs.system.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
@@ -42,6 +48,10 @@
     private DeviceTypeService deviceTypeService;
     @Autowired
     private DeviceService deviceService;
+    @Autowired
+    private LocService locService;
+    @Autowired
+    private LocStsService locStsService;
 
     public String getMapFloorList(Long userId) {
         String floorKey = "floor-list";
@@ -67,7 +77,10 @@
         return Optional.ofNullable(dict).map(Dict::getValue).orElse(null);
     }
 
+    @Transactional
     public void saveMapData(MapDataParam param, Long userId) {
+        Date now = new Date();
+        // dict
         String mapKey = getMapKey(param.getFloor());
         Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, mapKey));
         if (Cools.isEmpty(dict)) {
@@ -89,6 +102,27 @@
                 throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
             }
         }
+        // loc
+        locService.remove(new LambdaQueryWrapper<Loc>().eq(Loc::getLev, param.getFloor()));
+        for (MapItem item : param.getItemList()) {
+            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.setLocSts(LocStsType.O.val());
+
+            loc.setCreateBy(userId);
+            loc.setCreateTime(now);
+            loc.setUpdateBy(userId);
+            loc.setUpdateTime(now);
+            if (!locService.save(loc)) {
+                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
+            }
+        }
     }
 
 
@@ -96,17 +130,14 @@
         List<LocVo> locVos = new ArrayList<>();
         int row = Utils.getRow(locNo);
         int bay = Utils.getBay(locNo);
-
-
-        String[] statusOptions = {"F", "D", "O"};
-        Random random = new Random();
-        for (int lev = 1; lev < 6; lev++) {
-            locVos.add(new LocVo(Utils.getLocNo(row, bay, lev), statusOptions[random.nextInt(statusOptions.length)]));
+        List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getRow, row).eq(Loc::getBay, bay).orderByAsc(Loc::getLev));
+        for (Loc loc : locList) {
+            locVos.add(new LocVo(loc.getLocNo(), loc.getLocStsFlag()));
         }
         return locVos;
     }
 
-    public ShuttleVo getShuttleInfo(String shuttleNo, Long hostId) {
+    public ShuttleVo getShuttleInfo(String shuttleNo) {
         ShuttleVo vo = new ShuttleVo();
         vo.setShuttleNo(shuttleNo);
         DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>().eq(DeviceType::getFlag, SlaveType.Shuttle.toString()));
@@ -115,7 +146,13 @@
             return vo;
         }
         ShuttleThread thread = (ShuttleThread)SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+        if (null == thread) {
+            return vo;
+        }
         ShuttleProtocol protocol = thread.getStatus();
+        if (null == protocol) {
+            return vo;
+        }
         vo.setTaskNo(String.valueOf(protocol.getTaskNo()));
         vo.setStatus(protocol.getProtocolStatusType().desc);
         vo.setOriginLocNo(protocol.getSourceLocNo());
@@ -164,22 +201,6 @@
             "    {\n" +
             "        label: '1F',\n" +
             "        value: 1\n" +
-            "    },\n" +
-            "    {\n" +
-            "        label: '2F',\n" +
-            "        value: 2\n" +
-            "    },\n" +
-            "    {\n" +
-            "        label: '3F',\n" +
-            "        value: 3\n" +
-            "    },\n" +
-            "    {\n" +
-            "        label: '4F',\n" +
-            "        value: 4\n" +
-            "    },\n" +
-            "    {\n" +
-            "        label: '5F',\n" +
-            "        value: 5\n" +
             "    },\n" +
             "]";
 

--
Gitblit v1.9.1