From 9e7a181ca269d385392527639084e4b8579c1fd2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 29 三月 2024 14:41:38 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/result/LocVo.java  |   19 ++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java       |   61 +++++++++++++-------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java                  |   14 +++-
 zy-asrs-flow/src/pages/map/drawer/shelf/index.jsx                                |    5 -
 zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js                            |   24 ++++++--
 zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx                                 |   36 ++++++++---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java |   14 ++--
 7 files changed, 121 insertions(+), 52 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/index.jsx b/zy-asrs-flow/src/pages/map/drawer/shelf/index.jsx
index 46c2be9..c08d937 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/index.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/index.jsx
@@ -16,12 +16,11 @@
     const { styles } = useStyles();
     const { curSprite, curFloor } = props;
 
-    const [locNo, setLocNo] = useState('');
     const [activeTabKey, setActiveTabKey] = useState('view');
 
+    const locNo = curSprite.data.no + '-' + curFloor;
+
     useEffect(() => {
-        const locNo = curSprite.data.no + '-' + curFloor;
-        setLocNo(locNo)
         props.setDrawerTitle(intl.formatMessage({ id: 'map.loc.no', defaultMessage: '搴撲綅鍙�' }) + ': ' + locNo);
     }, [curSprite]);
 
diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js
index 6436449..52f2d8a 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js
@@ -3,7 +3,7 @@
 import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
 import TWEEN from '@tweenjs/tween.js';
 
-const help = false;
+const help = true;
 
 export default class ShelfThree {
 
@@ -163,7 +163,8 @@
     }
 
     build = () => {
-        buildDemo(this.scene);
+        buildShelf(this.scene);
+        buildPallet(this.scene);
     }
 
     handleClick = () => {
@@ -233,13 +234,24 @@
     }
 }
 
-const buildDemo = (scene) => {
-    const boxGeometry = new THREE.BoxGeometry(100, 100, 100);
+const buildShelf = (scene) => {
+    const boxGeometry = new THREE.BoxGeometry(100, 40, 100);
     const boxMaterial = new THREE.MeshStandardMaterial({
         color: '#222f3e',
     });
     const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);
-    boxMesh.position.set(0, 0, 0);
+    boxMesh.position.set(0, 20, 0);
     scene.add(boxMesh)
     return boxMesh;
-}
\ No newline at end of file
+}
+
+const buildPallet = (scene) => {
+    const boxGeometry = new THREE.BoxGeometry(100, 60, 100);
+    const boxMaterial = new THREE.MeshStandardMaterial({
+        color: '#b33939',
+    });
+    const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);
+    boxMesh.position.set(0, 70, 0);
+    scene.add(boxMesh)
+    return boxMesh;
+}
diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
index aa3a476..94cd383 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
@@ -43,30 +43,44 @@
 
 let shelfThree;
 
+const startThree = (dom) => {
+    shelfThree = new ShelfThree(dom);
+    shelfThree.startup();
+}
+
+const endThree = () => {
+    if (shelfThree) {
+        shelfThree.destroy();
+        shelfThree = null;
+    }
+}
+
 const ShelfView = (props) => {
     const intl = useIntl();
     const { styles } = useStyles();
     const refContainer = useRef();
     const [loading, setLoading] = React.useState(false);
 
-    const startThree = () => {
-        shelfThree = new ShelfThree(refContainer.current);
-        shelfThree.startup();
-    }
+    const [shelfList, setShelfList] = React.useState([]);
 
-    const endThree = () => {
-        if (shelfThree) {
-            shelfThree.destroy();
-            shelfThree = null;
-        }
-    }
+
 
     useEffect(() => {
+        // locNo data
+        const fetchShelfInfo = async (locNo) => {
+            const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
+            if (res?.data) {
+                console.log(res.data);
+            }
+        }
+        fetchShelfInfo(props.locNo);
+
+        // 3d
         setLoading(true);
         endThree();
         setTimeout(() => {
             setLoading(false);
-            startThree();
+            startThree(refContainer.current);
         }, 300)
 
         return endThree;
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 8f6e0de..47d47c4 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
@@ -6,11 +6,7 @@
 import com.zy.asrs.wcs.core.map.service.MapService;
 import com.zy.asrs.wcs.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * Created by vincent on 3/15/2024
@@ -37,10 +33,16 @@
 
 //    @PreAuthorize("hasAuthority('core:map:save')")
     @PostMapping("/save")
-    @Transactional
     public R mapSave(@RequestBody MapDataParam param) {
         mapService.saveMapData(param, getLoginUserId());
         return R.ok();
     }
 
+
+    // 璐ф灦 - 搴撲綅 --------------------------------------------------------
+    @GetMapping("/shelf/info")
+    public R shelfInfo(@RequestParam String locNo) {
+        return R.ok().add(mapService.getShelfLocNoList(locNo));
+    }
+
 }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/result/LocVo.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/result/LocVo.java
new file mode 100644
index 0000000..0f445ea
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/result/LocVo.java
@@ -0,0 +1,19 @@
+package com.zy.asrs.wcs.core.map.controller.result;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 3/29/2024
+ */
+@Data
+public class LocVo {
+
+    private String locNo;
+
+    private String locSts;
+
+    public LocVo(String locNo, String locSts) {
+        this.locNo = locNo;
+        this.locSts = locSts;
+    }
+}
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 03965db..a46a9df 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
@@ -7,13 +7,17 @@
 import com.zy.asrs.wcs.common.domain.enums.DictType;
 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.LocVo;
+import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.system.entity.Dict;
 import com.zy.asrs.wcs.system.service.DictService;
 import com.zy.asrs.wcs.system.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -35,28 +39,7 @@
             dict.setName(floorKey);
             dict.setFlag(floorKey);
             dict.setType(DictType.JSON.flag);
-            dict.setValue("[\n" +
-                    "    {\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" +
-                    "]");
+            dict.setValue(floorListStr);
             dict.setCreateBy(userId);
             dict.setUpdateBy(userId);
             if (!dictService.save(dict)) {
@@ -96,6 +79,17 @@
         }
     }
 
+
+    public List<LocVo> getShelfLocNoList(String locNo) {
+        List<LocVo> locVos = new ArrayList<>();
+        int row = Utils.getRow(locNo);
+        int bay = Utils.getBay(locNo);
+        for (int lev = 1; lev < 6; lev++) {
+            locVos.add(new LocVo(Utils.getLocNo(row, bay, lev), "F"));
+        }
+        return locVos;
+    }
+
     private String getMapKey(Integer floor) {
         if (null != floor) {
             return "map-" + floor;
@@ -103,4 +97,27 @@
         return "map";
     }
 
+    private final String floorListStr = "[\n" +
+            "    {\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/utils/Utils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
index 26dbb6f..d8f7718 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
@@ -7,12 +7,15 @@
 
 public class Utils {
 
+    public static final String _LINK = "-";
+
     /**
      * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
      */
     public static int getRow(String locNo) {
         if (!Cools.isEmpty(locNo)) {
-            return Integer.parseInt(locNo.substring(0, 2));
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[0]);
         }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
@@ -22,7 +25,8 @@
      */
     public static int getBay(String locNo) {
         if (!Cools.isEmpty(locNo)) {
-            return Integer.parseInt(locNo.substring(2, 5));
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[1]);
         }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
@@ -32,13 +36,15 @@
      */
     public static int getLev(String locNo) {
         if (!Cools.isEmpty(locNo)) {
-            return Integer.parseInt(locNo.substring(5, 7));
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[2]);
         }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
     public static String getLocNo(Number row, Number bay, Number lev) {
-        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
+        return row + _LINK + bay + _LINK + lev;
+//        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
     }
 
     public static String zerofill(String msg, Integer count){

--
Gitblit v1.9.1