From f0b0f5d954d54840d62135a4a88db94797898967 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 16 十月 2024 13:45:41 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 81 +++++++++++++++++++++++++---------------
1 files changed, 51 insertions(+), 30 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 149dbc5..1c69d07 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
@@ -84,6 +84,8 @@
private BasLedService basLedService;
@Autowired
private DeviceBarcodeService deviceBarcodeService;
+ @Autowired
+ private ShuttleChargeStaService shuttleChargeStaService;
/**
* 缁勬墭
@@ -161,13 +163,18 @@
) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, basConveyorSta.getBarcodeId().intValue());
+ 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;
}
String barcode = barcodeThread.getBarcode();
if (!Cools.isEmpty(barcode)) {
- News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", deviceBarcode.getId(), barcode);
+
if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode) || "00000000".equals(barcode)) {
staProtocol.setWorkNo((short) 32002);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -213,7 +220,7 @@
param.setBarcode(barcode);
param.setIoType(1);
param.setSourceStaNo(inSta.getStaNo());
- param.setLocType1(staProtocol.getLocType1().shortValue());
+ param.setLocType1((short)1);
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/pakin/loc/v1")
@@ -458,7 +465,7 @@
if (Cools.isEmpty(basConveyorSta.getTaskNo())){
continue;
}
- if (!basConveyorSta.getTaskNo().toString().equals(task.getTaskNo())){
+ if (!basConveyorSta.getTaskNo().toString().equals(task.getWmsTaskNo())){
continue;
}
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
@@ -539,7 +546,7 @@
// staProtocol1 = staProtocol1.clone();
}
- // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+ // 鍒ゆ柇鍑哄簱绔欑姸鎬�
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
// if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
// continue;
@@ -663,20 +670,19 @@
String currentLocNo = shuttleProtocol.getCurrentLocNo();
int lev = Utils.getLev(currentLocNo);//鑾峰彇灏忚溅妤煎眰
//鎼滅储灏忚溅褰撳墠妤煎眰鍏呯數妗�
- ArrayList<Loc> allChargeLoc = new ArrayList<>();
- List<Loc> list1 = locService.list(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getLocSts, LocStsType.C.val())
- .eq(Loc::getStatus, 1)
- .eq(Loc::getLev, lev));
+ ArrayList<ShuttleChargeSta> allChargeLoc = new ArrayList<>();
+
+ List<ShuttleChargeSta> list1 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>()
+ .eq(ShuttleChargeSta::getDeviceLev, lev)
+ .eq(ShuttleChargeSta::getStatus, 1));
if (!list1.isEmpty()) {
allChargeLoc.addAll(list1);
}
//鎼滅储鍏朵粬妤煎眰鍏呯數妗�
- List<Loc> list2 = locService.list(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getLocSts, LocStsType.C.val())
- .eq(Loc::getStatus, 1)
- .notIn(Loc::getLev, lev));
+ List<ShuttleChargeSta> list2 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>()
+ .notIn(ShuttleChargeSta::getDeviceLev, lev)
+ .eq(ShuttleChargeSta::getStatus, 1));
if (!list2.isEmpty()) {
allChargeLoc.addAll(list2);
}
@@ -687,24 +693,34 @@
}
//閫夋嫨绌洪棽鍏呯數妗�
- Loc chargeLoc = null;
- for (Loc loc : allChargeLoc) {
+ ShuttleChargeSta chargeSta = null;
+ for (ShuttleChargeSta shuttleChargeSta : allChargeLoc) {
// 鍒ゆ柇鍏呯數浣嶆槸鍚﹁鍗犵敤(杞﹁締浣嶇疆)
- if (Utils.hasShuttleInLoc(loc.getLocNo(), device.getId())) {
+ if (Utils.hasShuttleInLoc(shuttleChargeSta.getDeviceLoc(), device.getId())) {
continue;
}
// 鐩樼偣鍏呯數浣嶆槸鍚﹀瓨鍦ㄤ换鍔℃。
- List<Task> tasks = taskService.hasChargeInLoc(loc.getLocNo());
+ List<Task> tasks = taskService.hasChargeInLoc(shuttleChargeSta.getDeviceLoc());
if (!tasks.isEmpty()) {
continue;
}
- chargeLoc = loc;
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
+ .eq(Loc::getLocNo, shuttleChargeSta.getDeviceLoc()));
+ if (loc == null) {
+ continue;
+ }
+
+ if (!loc.getLocSts().equals(LocStsType.C.val())) {
+ continue;//搴撲綅涓嶆槸鍏呯數妗�
+ }
+
+ chargeSta = shuttleChargeSta;
break;
}
- if (chargeLoc == null) {
+ if (chargeSta == null) {
continue;//鏈壘鍒板厖鐢垫々
}
@@ -725,7 +741,7 @@
continue;
}
- String chargeLocNo = chargeLoc.getLocNo();
+ String chargeLocNo = chargeSta.getDeviceLoc();
Task task = new Task();
task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
task.setTaskNo(String.valueOf(Utils.getTaskNo("CHARGE")));
@@ -765,14 +781,6 @@
* 鍥涘悜绌挎杞︾數閲忔娴� ===>> 婊$數鍚庡洖鍒板緟鏈轰綅
*/
public synchronized void loopShuttleToStandbyCauseCharge() {
- Integer enoughPower = 90;
- Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>()
- .eq(Dict::getFlag, "chargeMaxValue")
- .eq(Dict::getStatus, 1));
- if (dict != null) {
- enoughPower = Integer.parseInt(dict.getValue());
- }
-
//鑾峰彇杩佺Щ浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
.eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE))
@@ -818,8 +826,21 @@
continue;
}
+ ShuttleChargeSta chargeSta = shuttleChargeStaService.getOne(new LambdaQueryWrapper<ShuttleChargeSta>()
+ .eq(ShuttleChargeSta::getDeviceLoc, chargeTask.getDestLoc())
+ .eq(ShuttleChargeSta::getStatus, 1));
+ if (chargeSta == null) {
+ continue;//鍏呯數妗╀笉瀛樺湪锛屽紓甯�
+ }
+
+ String standbyLoc = chargeSta.getStandbyLoc();
+ if (standbyLoc == null) {
+ continue;//閬胯浣嶇疆鏁版嵁涓嶅瓨鍦�
+ }
+ List<String> availableLoc = JSON.parseArray(standbyLoc, String.class);
+
//鑾峰彇閬胯浣嶇疆
- String standByLocNo = shuttleDispatcher.searchStandByLocNo(Integer.valueOf(device.getDeviceNo()), device.getHostId(), shuttleThread.getStatus().getCurrentLocNo());
+ String standByLocNo = shuttleDispatcher.searchAvailableLocNo(Integer.valueOf(device.getDeviceNo()), device.getHostId(), shuttleThread.getStatus().getCurrentLocNo(), availableLoc);
Task task = new Task();
task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
--
Gitblit v1.9.1