From 7b5ea29f32106ea9b0105063cd74adeb25736e98 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期六, 22 六月 2024 09:54:33 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/components/edit.jsx | 5 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SiteStatusType.java | 71 +++++++++++++++++
zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/index.jsx | 13 +++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java | 5 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java | 2
zy-asrs-flow/src/pages/map/components/configSettings.jsx | 27 ++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/entity/MapWsVo.java | 3
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MapRealTimeDataScheduler.java | 9 ++
zy-asrs-flow/src/pages/map/utils.js | 68 ++++++++++++++++
9 files changed, 200 insertions(+), 3 deletions(-)
diff --git a/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/components/edit.jsx b/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/components/edit.jsx
index fa957d6..886f8d0 100644
--- a/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/components/edit.jsx
+++ b/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/components/edit.jsx
@@ -217,6 +217,11 @@
label="鍥涘悜绌挎杞︽墍璇嗗埆鐨勪簩缁寸爜"
colProps={{ md: 12, xl: 12 }}
/>
+ <ProFormText
+ name="taskNo"
+ label="宸ヤ綔鍙�"
+ colProps={{ md: 12, xl: 12 }}
+ />
</ProForm.Group>
</ProForm>
diff --git a/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/index.jsx b/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/index.jsx
index 232747e..9fb2b63 100644
--- a/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/index.jsx
+++ b/zy-asrs-flow/src/pages/deviceConfig/basConveyorSta/index.jsx
@@ -224,6 +224,19 @@
/>,
},
{
+ title: '宸ヤ綔鍙�',
+ dataIndex: 'taskNo',
+ valueType: 'text',
+ hidden: false,
+ width: 140,
+ filterDropdown: (props) => <TextFilter
+ name='taskNo'
+ {...props}
+ actionRef={actionRef}
+ setSearchParam={setSearchParam}
+ />,
+ },
+ {
title: '鍙叆(checkBox)',
dataIndex: 'inEnable',
valueType: 'text',
diff --git a/zy-asrs-flow/src/pages/map/components/configSettings.jsx b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
index 939b245..32e5015 100644
--- a/zy-asrs-flow/src/pages/map/components/configSettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
@@ -14,6 +14,7 @@
const { curSprite, configForm: form } = props;
const [showLiftNoItem, setShowLiftNoItem] = React.useState(false);
+ const [showConveyorNoItem, setShowConveyorNoItem] = React.useState(false);
useEffect(() => {
form.resetFields();
@@ -23,6 +24,7 @@
...curSprite.data
})
setShowLiftNoItem(form.getFieldValue('shelfType') === Utils.SHELF_TYPE.LIFT);
+ setShowConveyorNoItem(form.getFieldValue('shelfType') === Utils.SHELF_TYPE.CONVEYOR);
}
}, [props, form]);
@@ -83,6 +85,7 @@
case 'shelfType':
const shelfType = form.getFieldValue('shelfType');
setShowLiftNoItem(shelfType === Utils.SHELF_TYPE.LIFT);
+ setShowConveyorNoItem(shelfType === Utils.SHELF_TYPE.CONVEYOR);
break;
default:
break;
@@ -229,6 +232,10 @@
value: Utils.SHELF_TYPE.CHARGE
},
{
+ label: intl.formatMessage({ id: 'map.settings.shelf.conveyor', defaultMessage: '杈撻�佺嚎' }),
+ value: Utils.SHELF_TYPE.CONVEYOR
+ },
+ {
label: intl.formatMessage({ id: 'map.settings.shelf.diable', defaultMessage: '绂佺敤' }),
value: Utils.SHELF_TYPE.DISABLE
},
@@ -256,6 +263,26 @@
</>
)}
+ {showConveyorNoItem && (
+ <>
+ <Form.Item
+ name='conveyorNo'
+ label={intl.formatMessage({ id: 'map.settings.conveyor.no', defaultMessage: '杈撻�佺珯鍙�' })}
+ rules={[
+ {
+ required: true,
+ },
+ ]}
+ >
+ <InputNumber
+ style={{
+ width: '50%',
+ }}
+ />
+ </Form.Item>
+ </>
+ )}
+
<Form.Item
label={intl.formatMessage({ id: 'map.settings.shelf.space', defaultMessage: '闂磋窛' })}
>
diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index 62d5468..57bde65 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -59,6 +59,7 @@
TRACK: 3,
LIFT: 67,
CHARGE: 5,
+ CONVEYOR: 4,
DISABLE: -1,
})
@@ -562,6 +563,9 @@
case SHELF_TYPE.CHARGE:
showColor = '#D4EFDF';
break;
+ case SHELF_TYPE.CONVEYOR:
+ showColor = '#54FF9F';
+ break;
case SHELF_TYPE.DISABLE:
showColor = '#ffc8c8';
break;
@@ -621,6 +625,7 @@
}
showLockPath(mapVo.lockPath, curFloor, setCurSPrite);
+ showConveyorSta(mapVo.conveyorSta, curFloor, setCurSPrite);
}
export const drawTravelPath = (shuttleVo, curFloor) => {
@@ -697,7 +702,7 @@
pathLine.zIndex = SENSOR_ZINDEX.TRAVEL_PATH;
let firstNode = true;
- for(let i = 0; i < nodes.length; i++) {
+ for (let i = 0; i < nodes.length; i++) {
const node = nodes[i];
if (node.z !== curFloor) { continue }
const shelf = querySprite(SENSOR_TYPE.SHELF, node.x + '-' + node.y);
@@ -712,8 +717,67 @@
} else {
pathLine.lineTo(x, y);
}
-
+
}
mapContainer.addChild(pathLine);
+}
+
+export const showConveyorSta = (conveyorSta, curFloor, setCurSPrite) => {
+ for (let i = 0; i < conveyorSta.length; i++) {
+ const sta = conveyorSta[i];
+ if (!sta.locNo) { continue }
+ const { row, bay, lev } = parseLocNo(sta.locNo);
+ if (Number(lev) !== curFloor) { continue }
+ const sprite = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay);
+ if (!sprite) { continue }
+ if (sprite.data.conveyorNo !== sta.siteNo) { continue }
+
+ const conveyorName = 'conveyorSta-' + sprite.data.conveyorNo;
+ let conveyorChild = sprite.getChildByName(conveyorName);
+ if (conveyorChild) {
+ sprite.removeChild(conveyorChild);
+ }
+
+ let textColor;
+ let staText;
+ let positionX = -11;
+ let positionY = -6;
+ if (sta.siteStatusType$ == 'site-auto-run') {
+ textColor = 0xfa51f6;
+ staText = sprite.data.conveyorNo;
+ } else if (sta.siteStatusType$ == 'site-unauto') {
+ textColor = 0xb8b8b8;
+ staText = sprite.data.conveyorNo;
+ } else if (sta.siteStatusType$ == 'site-auto-id') {
+ textColor = 0xc4c40;
+ staText = sprite.data.conveyorNo + '(' + sta.taskNo + ')';
+ positionX = -20;
+ positionY = -6;
+ } else if (sta.siteStatusType$ == 'site-auto-run-id') {
+ textColor = 0xfc3030;
+ staText = sprite.data.conveyorNo + '(' + sta.taskNo + ')';
+ positionX = -20;
+ positionY = -6;
+ }else {
+ textColor = '#54FF9F';
+ staText = sprite.data.conveyorNo;
+ }
+
+ const text = new PIXI.Text(staText, {
+ fill: 0x000000,
+ fontSize: 13,
+ fontFamily: 'MicrosoftYaHei',
+ });
+ text.name = conveyorName;
+ text.position.set(positionX, positionY);
+ sprite.addChild(text);
+ sprite.textObj = text;
+ sprite.tint = textColor;
+ // sprite.tint = showColor;
+ // let position = shelf.position;
+ // let x = position.x;
+ // let y = position.y;
+ // conveyorChild.lineTo(x, y);
+ }
}
\ No newline at end of file
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
index 323e203..b16abef 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyorSta.java
@@ -3,6 +3,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
+import com.zy.asrs.wcs.core.model.enums.SiteStatusType;
import com.zy.asrs.wcs.core.service.BasConveyorService;
import com.zy.asrs.wcs.rcs.model.enums.WorkModeType;
import com.zy.asrs.wcs.system.entity.Host;
@@ -341,5 +342,9 @@
return null;
}
+ public String getSiteStatusType$() {
+ String siteStatus = String.valueOf(SiteStatusType.process(this));
+ return siteStatus.toLowerCase().replaceAll("_", "-");
+ }
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/entity/MapWsVo.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/entity/MapWsVo.java
index 65fe447..f707e06 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/entity/MapWsVo.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/entity/MapWsVo.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.map.entity;
+import com.zy.asrs.wcs.core.entity.BasConveyorSta;
import com.zy.asrs.wcs.core.model.NavigateNode;
import lombok.Data;
@@ -16,4 +17,6 @@
private List<NavigateNode> lockPath = new ArrayList<>();
+ private List<BasConveyorSta> conveyorSta = new ArrayList<>();
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MapRealTimeDataScheduler.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MapRealTimeDataScheduler.java
index 7b30f2c..a70c0d9 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MapRealTimeDataScheduler.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MapRealTimeDataScheduler.java
@@ -4,11 +4,13 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.wcs.core.entity.BasConveyorSta;
import com.zy.asrs.wcs.core.entity.BasShuttle;
import com.zy.asrs.wcs.core.map.entity.MapWsShuttleVo;
import com.zy.asrs.wcs.core.map.entity.MapWsVo;
import com.zy.asrs.wcs.core.model.NavigateNode;
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
+import com.zy.asrs.wcs.core.service.BasConveyorStaService;
import com.zy.asrs.wcs.core.service.BasShuttleService;
import com.zy.asrs.wcs.core.utils.NavigateMapUtils;
import com.zy.asrs.wcs.core.utils.Utils;
@@ -46,6 +48,8 @@
private DictService dictService;
@Autowired
private NavigateMapUtils navigateMapUtils;
+ @Autowired
+ private BasConveyorStaService basConveyorStaService;
@Scheduled(cron = "0/1 * * * * ? ")
public void sync() {
@@ -53,6 +57,7 @@
// shuttle
wsVo.setShuttleVos(syncShuttle());
wsVo.setLockPath(getMapLocPath());
+ wsVo.setConveyorSta(getMapConveyorSta());
MapWebSocket.broadcast(JSON.toJSONString(wsVo));
}
@@ -117,4 +122,8 @@
return navigateNodes;
}
+ private List<BasConveyorSta> getMapConveyorSta() {
+ return basConveyorStaService.list();
+ }
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SiteStatusType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SiteStatusType.java
new file mode 100644
index 0000000..eece48b
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SiteStatusType.java
@@ -0,0 +1,71 @@
+package com.zy.asrs.wcs.core.model.enums;
+
+import com.zy.asrs.wcs.core.entity.BasConveyorSta;
+import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+
+/**
+ * 绔欑偣鐘舵�佹灇涓�
+ */
+public enum SiteStatusType {
+
+ // 鑷姩
+ SITE_AUTO,
+ // 闈炶嚜鍔�
+ SITE_UNAUTO,
+ // 鑷姩+鏈夌墿+ID
+ SITE_AUTO_RUN_ID,
+ // 鑷姩+鏈夌墿
+ SITE_AUTO_RUN,
+ // 鑷姩+ID
+ SITE_AUTO_ID,
+
+ ;
+
+ public static SiteStatusType process(StaProtocol staProtocol){
+ if (staProtocol == null) {
+ return null;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) {
+ return SITE_AUTO_RUN_ID;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading()) {
+ return SITE_AUTO_RUN;
+ }
+ if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0) {
+ return SITE_AUTO_ID;
+ }
+ if (staProtocol.isAutoing()) {
+ return SITE_AUTO;
+ }
+ if (!staProtocol.isAutoing()) {
+ return SITE_UNAUTO;
+ }
+ return null;
+ }
+
+ public static SiteStatusType process(BasConveyorSta basConveyorSta){
+ if (basConveyorSta == null) {
+ return SITE_UNAUTO;
+ }
+ if (basConveyorSta.getAutoing() == null || basConveyorSta.getLoading() == null || basConveyorSta.getTaskNo() == null) {
+ return SITE_UNAUTO;
+ }
+ if (basConveyorSta.getAutoing().equals("Y") && basConveyorSta.getLoading().equals("Y") && basConveyorSta.getTaskNo() > 0) {
+ return SITE_AUTO_RUN_ID;
+ }
+ if (basConveyorSta.getAutoing().equals("Y") && basConveyorSta.getLoading().equals("Y")) {
+ return SITE_AUTO_RUN;
+ }
+ if (basConveyorSta.getAutoing().equals("Y") && basConveyorSta.getTaskNo() > 0) {
+ return SITE_AUTO_ID;
+ }
+ if (basConveyorSta.getAutoing().equals("Y")) {
+ return SITE_AUTO;
+ }
+ if (!basConveyorSta.getAutoing().equals("Y")) {
+ return SITE_UNAUTO;
+ }
+ return SITE_UNAUTO;
+ }
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
index 9568d31..4cbfc4a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
@@ -17,7 +17,7 @@
*/
public class NavigateSolution {
- // -1 -> 澧欏锛� 0 -> 璐т綅锛� 1 -> 璧风偣 2 -> 缁堢偣 3-> 姣嶈建 4->绔欑偣
+ // -1 -> 澧欏锛� 0 -> 璐т綅锛� 1 -> 璧风偣 2 -> 缁堢偣 3-> 姣嶈建 4->杈撻�佺珯鐐� 5->鍏呯數妗� 66->灏忚溅 67->鎻愬崌鏈�
int[][] map = {{}};
--
Gitblit v1.9.1