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 ++++++++++++++-------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java         |   38 ++++++++++++
 zy-asrs-wcs/src/main/resources/application.yml                                     |    4 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Loc.java                     |   34 ++++++-----
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java   |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocStsService.java          |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocStsServiceImpl.java |    7 ++
 7 files changed, 113 insertions(+), 41 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Loc.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Loc.java
index 6519c5d..751e401 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Loc.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/Loc.java
@@ -1,29 +1,24 @@
 package com.zy.asrs.wcs.core.entity;
 
-import com.baomidou.mybatisplus.annotation.*;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.wcs.core.service.LocCtgService;
 import com.zy.asrs.wcs.core.service.LocStsService;
 import com.zy.asrs.wcs.core.service.ZoneService;
 import com.zy.asrs.wcs.system.entity.Host;
 import com.zy.asrs.wcs.system.entity.User;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import io.swagger.annotations.ApiModel;
+import com.zy.asrs.wcs.system.service.HostService;
+import com.zy.asrs.wcs.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import com.zy.asrs.framework.common.Cools;
-import com.zy.asrs.framework.common.SpringUtils;
-import com.zy.asrs.wcs.system.service.UserService;
-import com.zy.asrs.wcs.system.service.HostService;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @Data
@@ -244,6 +239,15 @@
         return null;
     }
 
+    public String getLocStsFlag(){
+        LocStsService service = SpringUtils.getBean(LocStsService.class);
+        LocSts locSts = service.getById(this.locSts);
+        if (!Cools.isEmpty(locSts)){
+            return String.valueOf(locSts.getFlag());
+        }
+        return null;
+    }
+
     public String getLocCtg$(){
         LocCtgService service = SpringUtils.getBean(LocCtgService.class);
         LocCtg locCtg = service.getById(this.locCtg);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java
index bb11dd9..6b9dd62 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java
@@ -48,7 +48,7 @@
     // 绌挎杞� --------------------------------------------------------
     @GetMapping("/shuttle/info")
     public R shuttleInfo(@RequestParam String shuttleNo) {
-        return R.ok().add(mapService.getShuttleInfo(shuttleNo, getHostId()));
+        return R.ok().add(mapService.getShuttleInfo(shuttleNo));
     }
 
     // 鎻愬崌鏈� --------------------------------------------------------
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" +
             "]";
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java
new file mode 100644
index 0000000..09412a5
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/LocStsType.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.wcs.core.model.enums;
+
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wcs.core.entity.LocSts;
+import com.zy.asrs.wcs.core.service.LocStsService;
+
+public enum LocStsType {
+
+    D,
+    F,
+    O,
+    X,
+    ;
+
+    LocStsType() {
+    }
+
+    public long val() {
+        LocStsService service = SpringUtils.getBean(LocStsService.class);
+        LocSts entity = service.selectByFlag(this.toString());
+        if (entity == null) {
+            throw new CoolException("LocStsType Error!");
+        }
+        return entity.getId();
+    }
+
+
+    public static LocStsType get(String el) {
+        for (LocStsType value : LocStsType.values()) {
+            if (el.equals(value.toString())) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocStsService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocStsService.java
index 534db76..61f19c7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocStsService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocStsService.java
@@ -5,4 +5,6 @@
 
 public interface LocStsService extends IService<LocSts> {
 
+    LocSts selectByFlag(String flag);
+
 }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocStsServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocStsServiceImpl.java
index 3bf08df..b0641c8 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocStsServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocStsServiceImpl.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.wcs.core.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.wcs.core.entity.DeviceCtg;
 import com.zy.asrs.wcs.core.mapper.LocStsMapper;
 import com.zy.asrs.wcs.core.entity.LocSts;
 import com.zy.asrs.wcs.core.service.LocStsService;
@@ -9,4 +11,9 @@
 @Service("locStsService")
 public class LocStsServiceImpl extends ServiceImpl<LocStsMapper, LocSts> implements LocStsService {
 
+    @Override
+    public LocSts selectByFlag(String flag) {
+        return this.getOne(new LambdaQueryWrapper<LocSts>().eq(LocSts::getFlag, flag));
+    }
+
 }
diff --git a/zy-asrs-wcs/src/main/resources/application.yml b/zy-asrs-wcs/src/main/resources/application.yml
index 6c56228..92ea33e 100644
--- a/zy-asrs-wcs/src/main/resources/application.yml
+++ b/zy-asrs-wcs/src/main/resources/application.yml
@@ -18,9 +18,9 @@
 #    url: jdbc:mysql://47.97.1.152:3306/asrs?useUnicode=trKue&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
 #    username: root
 #    password: zy@123
-    url: jdbc:mysql://localhost:3306/asrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://192.168.2.95:3306/asrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-    password: xltys1995
+    password: root
 #    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
 #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=jkasrs
 #    username: sa

--
Gitblit v1.9.1