From 2b4747decaee49c1b9bdd568b306118eaf4a41e6 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 10 七月 2024 13:33:29 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 84 ++++++++++++++++++++++++++++-------------
1 files changed, 57 insertions(+), 27 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 41fe225..c2592f2 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;
/**
* 缁勬墭
@@ -421,6 +420,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())) {
//鍒嗛厤灏忚溅
//鎼滅储绌洪棽杞�
@@ -443,7 +476,7 @@
if (motionList.isEmpty()) {
continue;
}
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
// 鏇存柊宸ヤ綔涓绘。
task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
@@ -469,21 +502,26 @@
continue;
}
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, originStaObj.getConveyorId().intValue());
+ BasConveyor basConveyor = basConveyorService.getById(originStaObj.getConveyorId());
+ if(basConveyor == null) {
+ continue;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//婧愮珯
- StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
- if (staProtocol == null || staProtocol1 == null) {
+// StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
+ if (staProtocol == null) {
continue;
} else {
staProtocol = staProtocol.clone();
- staProtocol1 = staProtocol1.clone();
+// staProtocol1 = staProtocol1.clone();
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
- if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
- continue;
- }
+// if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
+// continue;
+// }
// //鍚屽簱浣嶇粍鏍¢獙
// List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
@@ -516,7 +554,7 @@
log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
continue;
}
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
// 鏇存柊宸ヤ綔涓绘。
task.setTaskSts(TaskStsType.ANALYZE_OUTBOUND.sts); // 宸ヤ綔鐘舵��
@@ -550,11 +588,11 @@
}
// generate motion list
- List<Motion> motionList = analyzeService.generateMotion(task);
+ List<Motion> motionList = analyzeService.generateShuttleMoveMotion(task);
if (motionList.isEmpty()) {
continue;
}
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
// 鏇存柊宸ヤ綔涓绘。
task.setTaskSts(TaskStsType.ANALYZE_MOVE.sts); // 宸ヤ綔鐘舵��
@@ -569,14 +607,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))
@@ -613,7 +643,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()) {
@@ -622,7 +652,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()) {
@@ -697,7 +727,7 @@
News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", device.getDeviceNo());
continue;
}
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
task.setTaskSts(TaskStsType.ANALYZE_CHARGE.sts);
if (!taskService.save(task)) {
@@ -792,7 +822,7 @@
News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅杩佺Щ浠诲姟澶辫触!!!", device.getDeviceNo());
continue;
}
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
task.setTaskSts(TaskStsType.ANALYZE_MOVE.sts);
--
Gitblit v1.9.1