From 4764e818d53d86270c5974548da61fd79b2da7ca Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 12 四月 2024 22:19:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/Four-Way-Rack' into Four-Way-Rack

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/service/MapService.java       |   16 ++++
 zy-asrs-flow/src/pages/map/drawer/index.jsx                                      |    1 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java  |   10 +++
 zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx                              |    1 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java           |    2 
 zy-asrs-flow/src/locales/en-US/map.ts                                            |    5 +
 zy-asrs-flow/src/pages/map/drawer/shuttle/handle.jsx                             |   53 +++++++++++++++++
 zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx                                 |   33 ++++++++---
 zy-asrs-flow/src/config/setting.ts                                               |    7 +
 zy-asrs-flow/src/pages/map/drawer/shuttle/view.jsx                               |   43 +++++++++++---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/controller/MapController.java |    7 ++
 11 files changed, 155 insertions(+), 23 deletions(-)

diff --git a/zy-asrs-flow/src/config/setting.ts b/zy-asrs-flow/src/config/setting.ts
index c457ca9..7b4620b 100644
--- a/zy-asrs-flow/src/config/setting.ts
+++ b/zy-asrs-flow/src/config/setting.ts
@@ -1,6 +1,9 @@
 // 鎺ュ彛鍦板潃
-export const API_BASE_URL: string = 'http://127.0.0.1:9090/wcs';
-export const WEBSOCKET_BASE_URL: string = 'ws://127.0.0.1:9090/wcs';
+export const IP: string = 'localhost';
+export const PORT: number = 9090;
+
+export const API_BASE_URL: string = 'http://' + IP + ':' + PORT + '/wcs';
+export const WEBSOCKET_BASE_URL: string = 'ws://' + IP + ':' + PORT + '/wcs';
 
 export const API_TIMEOUT: number = 60;
 
diff --git a/zy-asrs-flow/src/locales/en-US/map.ts b/zy-asrs-flow/src/locales/en-US/map.ts
index 66f582a..0fd387d 100644
--- a/zy-asrs-flow/src/locales/en-US/map.ts
+++ b/zy-asrs-flow/src/locales/en-US/map.ts
@@ -26,6 +26,11 @@
     '': '',
     'map.pallet.barcode': 'Pallet Barcode',
     'map.is.enable': 'Enable or Not',
+    'map.enable': 'Enable',
+    'map.diable': 'Disable',
+    'map.handle': 'Handle',
+    'map.command': 'Command',
+    'map.loc.sts': 'Location Status',
     'map.loc.operation': 'Location Operation',
     'map.loc.lock': 'Lock',
     'map.loc.unlock': 'Unlock',
diff --git a/zy-asrs-flow/src/pages/map/drawer/index.jsx b/zy-asrs-flow/src/pages/map/drawer/index.jsx
index 654054f..ba06a3b 100644
--- a/zy-asrs-flow/src/pages/map/drawer/index.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/index.jsx
@@ -89,6 +89,7 @@
                             curFloor={curFloor}
                             setDrawerTitle={setDrawerTitle}
                             setDrawerWidth={setDrawerWidth}
+                            refCurr={props.refCurr}
                         />
                     </>
                 )}
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 6ff71d5..52e098c 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shelf/view.jsx
@@ -7,6 +7,7 @@
 import * as Utils from '../../utils'
 import Http from '@/utils/http';
 import ShelfThree from './shelfThree'
+import BoolValueIcon from '@/components/BoolValueIcon';
 
 const useStyles = createStyles(({ token, css }) => {
     return {
@@ -56,8 +57,8 @@
     }
 }
 
-const fetchShelfInfo = async (locNo) => {
-    const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
+const fetchShelfGroup = async (locNo) => {
+    const res = await Http.doGet('/api/map/shelf/group', { locNo: locNo });
     if (res?.data && shelfThree) {
         shelfThree.generateMesh((loader, addObject) => {
             const promises = [];
@@ -122,6 +123,7 @@
 
     const { data, curFloor, curLocNo, setCurLocNo } = props;
     const [loading, setLoading] = React.useState(false);
+    const [info, setInfo] = React.useState(null);
 
     useEffect(() => {
         // init curLocNo
@@ -136,12 +138,25 @@
             shelfThree.handleClick = (objName) => {
                 setCurLocNo(objName);
             };
-            fetchShelfInfo(originLocNo);
+            fetchShelfGroup(originLocNo);
             setLoading(false);
         }, 300)
 
         return endThree;
     }, [data]);
+
+    useEffect(() => {
+        if (!curLocNo) {
+            return;
+        }
+        const fetchShelfInfo = async (locNo) => {
+            const res = await Http.doGet('/api/map/shelf/info', { locNo: locNo });
+            if (res?.data) {
+                setInfo(res.data);
+            }
+        }
+        fetchShelfInfo(curLocNo);
+    }, [curLocNo])
 
     return (
         <>
@@ -164,22 +179,22 @@
                         items={
                             [
                                 {
-                                    key: '1',
                                     label: intl.formatMessage({ id: 'map.loc.no', defaultMessage: '搴撲綅鍙�' }),
                                     children: curLocNo,
                                 },
                                 {
-                                    key: '2',
+                                    label: intl.formatMessage({ id: 'map.loc.sts', defaultMessage: '搴撲綅鐘舵��' }),
+                                    children: info?.locSts,
+                                },
+                                {
                                     label: intl.formatMessage({ id: 'map.pallet.barcode', defaultMessage: '鎵樼洏鏉$爜' }),
-                                    children: '80000010',
+                                    children: info?.zpallet,
                                 },
                                 {
-                                    key: '3',
                                     label: intl.formatMessage({ id: 'map.is.enable', defaultMessage: '鏄惁鍚敤' }),
-                                    children: 'Disabled',
+                                    children: <BoolValueIcon value={info?.enable} />,
                                 },
                                 {
-                                    key: '4',
                                     label: intl.formatMessage({ id: 'map.loc.operation', defaultMessage: '搴撲綅鎿嶄綔' }),
                                     children: (
                                         <>
diff --git a/zy-asrs-flow/src/pages/map/drawer/shuttle/handle.jsx b/zy-asrs-flow/src/pages/map/drawer/shuttle/handle.jsx
new file mode 100644
index 0000000..2e94e36
--- /dev/null
+++ b/zy-asrs-flow/src/pages/map/drawer/shuttle/handle.jsx
@@ -0,0 +1,53 @@
+import React, { useState, useRef, useEffect } from 'react';
+import { Col, Form, Input, Row, Switch, Slider, message, Drawer, Space, Button, InputNumber, Segmented } from 'antd';
+import { FormattedMessage, useIntl, useModel } from '@umijs/max';
+import { createStyles } from 'antd-style';
+import Http from '@/utils/http';
+
+const useStyles = createStyles(({ token, css }) => {
+
+})
+
+const ShuttleHandle = (props) => {
+    const intl = useIntl();
+    const { styles } = useStyles();
+
+    useEffect(() => {
+
+    }, []);
+
+    const handleCancel = () => {
+        props.onClose();
+    }
+
+
+    return (
+        <>
+            <Drawer
+                title={intl.formatMessage({ id: 'map.command', defaultMessage: '鍛戒护' })}
+                width={350}
+                closable={false}
+                open={props.open}
+                getContainer={props.refCurr}
+                rootStyle={{ position: "absolute" }}
+                onClose={handleCancel}
+                extra={
+                    <Space>
+                        <Button onClick={handleCancel}>
+                            <FormattedMessage id='common.cancel' defaultMessage='鍙栨秷' />
+                        </Button>
+                        {/* <Button onClick={handleOk} type="primary">
+                            <FormattedMessage id='common.submit' defaultMessage='纭畾' />
+                        </Button> */}
+                    </Space>
+                }
+            >
+                <h1>asds</h1>
+
+            </Drawer>
+        </>
+    )
+
+}
+
+export default ShuttleHandle;
\ No newline at end of file
diff --git a/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx b/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx
index 189ce7d..f7344e2 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx
@@ -31,6 +31,7 @@
                 curNo={curNo}
                 data={curSprite.data}
                 curFloor={curFloor}
+                refCurr={props.refCurr}
             />
         ),
         json: (
diff --git a/zy-asrs-flow/src/pages/map/drawer/shuttle/view.jsx b/zy-asrs-flow/src/pages/map/drawer/shuttle/view.jsx
index 11332b5..06fd7e0 100644
--- a/zy-asrs-flow/src/pages/map/drawer/shuttle/view.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/shuttle/view.jsx
@@ -5,6 +5,7 @@
 import * as Utils from '../../utils'
 import Http from '@/utils/http';
 import BoolValueIcon from '@/components/BoolValueIcon';
+import ShuttleHandle from './handle';
 
 const useStyles = createStyles(({ token, css }) => {
     return {
@@ -28,7 +29,16 @@
     }
 })
 
-
+const updateEnable = async (deviceNo, enable) => {
+    const resp = await Http.doPost('api/dict/update', { val });
+    if (resp.code === 200) {
+        message.success(intl.formatMessage({ id: 'page.update.success', defaultMessage: '鏇存柊鎴愬姛' }));
+        return true;
+    } else {
+        message.error(resp.msg);
+        return false;
+    }
+}
 
 const ShuttleView = (props) => {
     const intl = useIntl();
@@ -36,6 +46,7 @@
 
     const { data } = props;
     const [loading, setLoading] = React.useState(false);
+    const [childrenDrawer, setChildrenDrawer] = useState(false);
     const [info, setInfo] = React.useState(null);
 
     useEffect(() => {
@@ -87,11 +98,11 @@
                                     },
                                     {
                                         label: intl.formatMessage({ id: 'map.loc.no', defaultMessage: '搴撲綅鍙�' }),
-                                        children: <Badge status="processing" text="Running" />,
+                                        children: info?.currentLocNo,
                                     },
                                     {
                                         label: intl.formatMessage({ id: 'map.pallet.barcode', defaultMessage: '鎵樼洏鏉$爜' }),
-                                        children: '80000010',
+                                        children: info?.zpallet,
                                     },
                                     {
                                         label: intl.formatMessage({ id: 'map.origin.loc', defaultMessage: '璧峰搴撲綅' }),
@@ -101,7 +112,7 @@
                                         label: intl.formatMessage({ id: 'map.dest.loc', defaultMessage: '鐩爣搴撲綅' }),
                                         children: info?.destLocNo,
                                     },
-                                   
+
                                     {
                                         label: intl.formatMessage({ id: 'map.shuttle.batter.power', defaultMessage: '鐢垫睜鐢甸噺' }),
                                         children: info?.batteryPower,
@@ -136,7 +147,7 @@
                                     },
                                     {
                                         label: intl.formatMessage({ id: 'map.is.enable', defaultMessage: '鏄惁鍚敤' }),
-                                        children: 'Disabled',
+                                        children: <BoolValueIcon value={info?.enable} />,
                                     },
                                     {
                                         label: intl.formatMessage({ id: 'map.loc.operation', defaultMessage: '搴撲綅鎿嶄綔' }),
@@ -144,13 +155,19 @@
                                         children: (
                                             <>
                                                 <Button className={styles.tableButton} size='default' type="primary" danger>
-                                                    <FormattedMessage id='map.loc.lock' defaultMessage='閿佸畾' />
+                                                    <FormattedMessage id='map.diable' defaultMessage='绂佺敤' />
                                                 </Button>
                                                 <Button className={styles.tableButton} size='default' disabled>
-                                                    <FormattedMessage id='map.loc.unlock' defaultMessage='瑙i攣' />
+                                                    <FormattedMessage id='map.enable' defaultMessage='鍚敤' />
                                                 </Button>
-                                                <Button className={styles.tableButton} size='default'>
-                                                    <FormattedMessage id='map.loc.reset' defaultMessage='娓呴櫎搴撲綅' />
+                                                <Button
+                                                    className={styles.tableButton}
+                                                    size='default'
+                                                    onClick={() => {
+                                                        setChildrenDrawer(true);
+                                                    }}
+                                                >
+                                                    <FormattedMessage id='map.handle' defaultMessage='鎵嬪姩鎿嶄綔' />
                                                 </Button>
                                             </>
                                         )
@@ -158,6 +175,14 @@
                                 ]
                             }
                         />
+                        <ShuttleHandle
+                            open={childrenDrawer}
+                            refCurr={props.refCurr}
+                            shuttleNo={data.no}
+                            onClose={() => {
+                                setChildrenDrawer(false)
+                            }}
+                        />
                     </div>
                 )}
             </div>
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 6b9dd62..6fae409 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
@@ -40,9 +40,14 @@
 
 
     // 璐ф灦 - 搴撲綅 --------------------------------------------------------
+    @GetMapping("/shelf/group")
+    public R shelfGroup(@RequestParam String locNo) {
+        return R.ok().add(mapService.getShelfLocNoGroup(locNo));
+    }
+
     @GetMapping("/shelf/info")
     public R shelfInfo(@RequestParam String locNo) {
-        return R.ok().add(mapService.getShelfLocNoList(locNo));
+        return R.ok().add(mapService.getShelfLocNoInfo(locNo));
     }
 
     // 绌挎杞� --------------------------------------------------------
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 7e2468d..0b08625 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
@@ -155,8 +155,7 @@
         }
     }
 
-
-    public List<LocVo> getShelfLocNoList(String locNo) {
+    public List<LocVo> getShelfLocNoGroup(String locNo) {
         List<LocVo> locVos = new ArrayList<>();
         int row = Utils.getRow(locNo);
         int bay = Utils.getBay(locNo);
@@ -172,6 +171,19 @@
         return locVos;
     }
 
+    public LocVo getShelfLocNoInfo(String locNo) {
+        LocVo locVo = new LocVo();
+        locVo.setLocNo(locNo);
+        Loc loc = locService.selectByLocNo(locNo);
+        if (null == loc) {
+            return locVo;
+        }
+        locVo.setLocSts(loc.getLocStsFlag());
+        locVo.setZpallet(loc.getZpallet());
+        locVo.setEnable(CommonUtils.getStatusBool(loc.getStatus()));
+        return locVo;
+    }
+
     public ShuttleVo getShuttleInfo(String shuttleNo) {
         ShuttleVo vo = new ShuttleVo();
         vo.setShuttleNo(shuttleNo);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java
index 247ae18..633160a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java
@@ -5,4 +5,6 @@
 
 public interface LocService extends IService<Loc> {
 
+    Loc selectByLocNo(String locNo);
+
 }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java
index 653804e..93fde69 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.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.framework.common.Cools;
 import com.zy.asrs.wcs.core.mapper.LocMapper;
 import com.zy.asrs.wcs.core.entity.Loc;
 import com.zy.asrs.wcs.core.service.LocService;
@@ -9,4 +11,12 @@
 @Service("locService")
 public class LocServiceImpl extends ServiceImpl<LocMapper, Loc> implements LocService {
 
+    @Override
+    public Loc selectByLocNo(String locNo) {
+        if (Cools.isEmpty(locNo)) {
+            return null;
+        }
+        return this.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, locNo));
+    }
+
 }

--
Gitblit v1.9.1