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