From 18d258c246cb9e4812964968769eb32fa990065a Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 11 七月 2024 16:44:00 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 68 ++++++++++++++++++++++++++--------
1 files changed, 52 insertions(+), 16 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 1791776..b84fccf 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -15,10 +15,7 @@
import com.zy.asrs.wcs.core.entity.*;
import com.zy.asrs.wcs.core.kernel.AnalyzeService;
import com.zy.asrs.wcs.core.model.MapNode;
-import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
-import com.zy.asrs.wcs.core.model.enums.MotionStsType;
-import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
-import com.zy.asrs.wcs.core.model.enums.TaskStsType;
+import com.zy.asrs.wcs.core.model.enums.*;
import com.zy.asrs.wcs.core.service.*;
import com.zy.asrs.wcs.core.utils.RedisUtil;
import com.zy.asrs.wcs.core.utils.ShuttleDispatcher;
@@ -85,6 +82,8 @@
private BasConveyorPathService basConveyorPathService;
@Autowired
private BasLedService basLedService;
+ @Autowired
+ private DeviceBarcodeService deviceBarcodeService;
/**
* 缁勬墭
@@ -307,6 +306,17 @@
mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
mapNode.setXBase(object.getInteger("refx"));
mapNode.setYBase(object.getInteger("refy"));
+
+ if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+ //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
+ if (object.containsKey("conveyorHasGo")) {
+ if(object.getBoolean("conveyorHasGo")) {
+ //灏忚溅鍙蛋
+ mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
+ }
+ }
+ }
+
nodes.add(mapNode);
}
@@ -329,7 +339,7 @@
//瀛樺湪绌虹己鑺傜偣锛岃嚜鍔ㄨˉ瓒�
for (int i = defaultBay; i < node.getBay(); i++) {
MapNode mapNode = new MapNode();
- mapNode.setValue(-1);
+ mapNode.setValue(MapNodeType.DISABLE.id);
mapNode.setTop(1000);
mapNode.setBottom(1000);
mapNode.setLeft(1000);
@@ -356,7 +366,7 @@
ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘
MapNode mapNode = new MapNode();
- mapNode.setValue(-1);
+ mapNode.setValue(MapNodeType.DISABLE.id);
mapNode.setTop(1000);
mapNode.setBottom(1000);
mapNode.setLeft(1000);
@@ -421,6 +431,40 @@
// 瑙f瀽鍏ュ簱宸ヤ綔妗�
public synchronized void analyzeInBoundTask() {
for (Task task : taskService.selectWaitAnalyzeInBoundTask()) {
+ BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite()));
+ if (basConveyorSta == null) {
+ continue;
+ }
+ BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId());
+ if (basConveyor == null) {
+ continue;
+ }
+ DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
+ if (deviceBarcode == null) {
+ continue;
+ }
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
+ if (barcodeThread == null) {
+ continue;
+ }
+ if (!barcodeThread.getBarcode().equals(task.getZpallet())) {
+ continue;
+ }
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+ if (devpThread == null) {
+ continue;
+ }
+ StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo());
+ if (staProtocol == null) {
+ continue;
+ }
+ if (!(staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable())) {
+ continue;
+ }
+
+
if (Cools.isEmpty(task.getShuttleNo())) {
//鍒嗛厤灏忚溅
//鎼滅储绌洪棽杞�
@@ -574,14 +618,6 @@
* 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數
*/
public synchronized void loopShuttleCharge() {
- // 鑾峰彇鍏呯數妗╁簱浣嶇被鍨�
- LocCtg locCtg = locCtgService.getOne(new LambdaQueryWrapper<LocCtg>()
- .eq(LocCtg::getFlag, "CHARGE")
- .eq(LocCtg::getStatus, 1));
- if (locCtg == null) {
- return;
- }
-
//鑾峰彇鍏呯數浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
.eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.CHARGE))
@@ -618,7 +654,7 @@
//鎼滅储灏忚溅褰撳墠妤煎眰鍏呯數妗�
ArrayList<Loc> allChargeLoc = new ArrayList<>();
List<Loc> list1 = locService.list(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getLocCtg, locCtg.getId())
+ .eq(Loc::getLocSts, LocStsType.C.val())
.eq(Loc::getStatus, 1)
.eq(Loc::getLev, lev));
if (!list1.isEmpty()) {
@@ -627,7 +663,7 @@
//鎼滅储鍏朵粬妤煎眰鍏呯數妗�
List<Loc> list2 = locService.list(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getLocCtg, locCtg.getId())
+ .eq(Loc::getLocSts, LocStsType.C.val())
.eq(Loc::getStatus, 1)
.notIn(Loc::getLev, lev));
if (!list2.isEmpty()) {
--
Gitblit v1.9.1