From 21eac69df8b18ef44ab267a4e2efe714f985d8d9 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 29 七月 2023 14:26:57 +0800
Subject: [PATCH] 提升机穿梭车配置
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 121 +++++++++++++++++++++-------------------
1 files changed, 64 insertions(+), 57 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index cc5cfa6..45518cf 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
@@ -200,16 +201,17 @@
}
// 杩囨护鐩樼偣/鎷f枡/骞舵澘浠诲姟
-// if (null != wrkMastMapper.selectPickStepByBarcode(barcode)) {
-// continue;
-// }
+ WrkMast wrkMast1 = wrkMastMapper.selectPickStepByBarcode(barcode);
+ if (null != wrkMast1) {
+ continue;
+ }
// 鍒ゆ柇閲嶅宸ヤ綔妗�
-// WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
-// if (wrkMast != null) {
-// News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
-// continue;
-// }
+ WrkMast wrkMast2 = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+ if (wrkMast2 != null) {
+ News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast2.getWrkNo());
+ continue;
+ }
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -382,6 +384,7 @@
/**
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
*/
+ @Transactional
public synchronized void stnToCrnStnPick(){
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -397,25 +400,20 @@
}
if (staProtocol.isAutoing()
&& staProtocol.isLoading()
- && staProtocol.isInEnable()
- // 0 - 9990 鎴栬�� 9996
- && (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990)
+ && (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9999)
&& staProtocol.getStaNo().equals(staProtocol.getSiteId().shortValue())
&& staProtocol.isPakMk()){
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
-// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-// if (barcodeThread == null) {
-// continue;
-// }
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
WrkMast wrkMast = null;
- if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) {
- wrkMast = wrkMastMapper.selectPickStep(staProtocol.getWorkNo());
- if (null == wrkMast) {
- continue;
- }
- } else {
+ wrkMast = wrkMastMapper.selectPickStepByBarcode(barcode);
+ if (wrkMast == null) {
continue;
}
// if (staProtocol.getWorkNo() == 9996) {
@@ -455,6 +453,7 @@
// News.error("{}鏉$爜閿欒锛屾殏鏃犳嫞鏂欎换鍔★紒", barcode);
// }
// }
+
if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
|| Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
continue;
@@ -509,14 +508,22 @@
wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
wrkMast.setCrnNo(dto.getCrnNo());
- wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setLocNo(sourceLocNo); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setShuttleNo(null); // 绌挎杞︽竻绌�
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) == 0) {
throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
}
if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(sourceLocNo);
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
}
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
@@ -565,7 +572,7 @@
* 鍒濆鍖栧疄鏃跺湴鍥�
*/
public synchronized void initRealtimeBasMap() {
- for (int i = 1; i <= 4; i++) {//鎬诲叡鍥涘眰妤�
+ for (int i = 1; i <= 10; i++) {//鎬诲叡鍥涘眰妤�
Object data = redisUtil.get("realtimeBasMap_" + i);
if (data == null) {//redis鍦板浘鏁版嵁涓虹┖锛屼粠鏁版嵁搴撲腑鑾峰彇
BasMap basMap = basMapService.selectLatestMap(i);
@@ -778,7 +785,7 @@
if (commands == null) {
continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆�
}
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
//鍒嗛厤鐩爣搴撲綅
shuttleProtocol.setLocNo(wrkMast.getLocNo());
//鐩爣搴撲綅
@@ -804,7 +811,7 @@
shuttleProtocol.setLocNo(liftSiteLocNo);
//鐩爣搴撲綅
assignCommand.setLocNo(liftSiteLocNo);
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵��
}
} else if (wrkMast.getWrkSts() == 8) {
@@ -825,7 +832,7 @@
ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1600, runDirection, null, null, 500);
commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
//鍒嗛厤鐩爣搴撲綅
shuttleProtocol.setLocNo(wrkMast.getLocNo());
//鐩爣搴撲綅
@@ -902,12 +909,12 @@
//鑾峰彇灏忚溅绉诲姩閫熷害
BasShuttle basShuttle = basShuttleService.selectById(assignCommand.getShuttleNo());
Integer runSpeed = 1000;
- if (basShuttle != null) {
- Integer runSpeed1 = basShuttle.getRunSpeed();
- if (runSpeed1 != null) {
- runSpeed = runSpeed1;
- }
- }
+// if (basShuttle != null) {
+// Integer runSpeed1 = basShuttle.getRunSpeed();
+// if (runSpeed1 != null) {
+// runSpeed = runSpeed1;
+// }
+// }
//璁$畻灏忚溅璧风偣鍒颁腑鐐规墍闇�鍛戒护
List<NavigateNode> calc = NavigateUtils.calc(startLocNo, locNo, mapType, Utils.getShuttlePoints(shuttleThread.getSlave().getId(), Utils.getLev(startLocNo)));
@@ -935,13 +942,13 @@
Integer middleToDistDistance = null;//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
if (nodes.size() > 10) {//涓鐮佷紶鍊掓暟绗笁涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 2);
+ middlePath = nodes.get(nodes.size() - 3);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
} else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 1);
+ middlePath = nodes.get(nodes.size() - 2);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
@@ -972,12 +979,12 @@
//鑾峰彇灏忚溅绉诲姩閫熷害
BasShuttle basShuttle = basShuttleService.selectById(assignCommand.getShuttleNo());
Integer runSpeed = 1000;
- if (basShuttle != null) {
- Integer runSpeed1 = basShuttle.getRunSpeed();
- if (runSpeed1 != null) {
- runSpeed = runSpeed1;
- }
- }
+// if (basShuttle != null) {
+// Integer runSpeed1 = basShuttle.getRunSpeed();
+// if (runSpeed1 != null) {
+// runSpeed = runSpeed1;
+// }
+// }
List<NavigateNode> allNode = new ArrayList<>();
@@ -1005,13 +1012,13 @@
Integer middleToDistDistance = null;//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
if (nodes.size() > 10) {//涓鐮佷紶鍊掓暟绗笁涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 2);
+ middlePath = nodes.get(nodes.size() - 3);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
} else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 1);
+ middlePath = nodes.get(nodes.size() - 2);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
@@ -1057,13 +1064,13 @@
Integer middleToDistDistance = null;//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
if (nodes.size() > 10) {//涓鐮佷紶鍊掓暟绗笁涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 2);
+ middlePath = nodes.get(nodes.size() - 3);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
} else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓�
//涓棿璺緞
- middlePath = nodes.get(nodes.size() - 1);
+ middlePath = nodes.get(nodes.size() - 2);
//閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ());
middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
@@ -1233,7 +1240,7 @@
shuttleProtocol.setSourceLocNo(currentLocNo);
//鐩爣搴撲綅
assignCommand.setLocNo(wrkMast.getSourceLocNo());
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓�
if (wrkMastMapper.updateById(wrkMast) > 0) {
@@ -1267,7 +1274,7 @@
//鐩爣搴撲綅
assignCommand.setLocNo(liftSiteLocNo);
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkMast.setWrkSts(22L);//灏忚溅杩佺Щ鐘舵��
if (wrkMastMapper.updateById(wrkMast) > 0) {
@@ -1314,7 +1321,7 @@
shuttleProtocol.setSourceLocNo(liftSiteLocNo);
//鐩爣搴撲綅
assignCommand.setLocNo(wrkMast.getSourceLocNo());
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓�
if (wrkMastMapper.updateById(wrkMast) > 0) {
@@ -1343,10 +1350,10 @@
//鍒ゆ柇鍏朵粬绌洪棽绌挎杞︽槸鍚︾浠诲姟鏈�杩�
String distLocNo = null;//鐩爣鍦扮偣锛屽叆搴�=銆嬫彁鍗囨満鍙o紝鍑哄簱=銆嬭揣鐗╁簱浣嶅彿
- if (wrkMast.getIoType() == 1) {
+ if (wrkMast.getIoType() < 101 && wrkMast.getIoType() != 11) {
//鍏ュ簱
distLocNo = Utils.levToOutInStaLocNo(lev);
- }else if(wrkMast.getIoType() == 101){
+ }else if(wrkMast.getIoType() >= 101){
//鍑哄簱
distLocNo = locNo;
} else if (wrkMast.getIoType() == 11) {
@@ -1865,7 +1872,7 @@
//鎵�闇�鍛戒护缁勫悎瀹屾瘯锛屾洿鏂版暟鎹簱锛屾彁浜ゅ埌绾跨▼鍘诲伐浣�
LiftAssignCommand assignCommand = new LiftAssignCommand();
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
assignCommand.setLiftNo(liftProtocol.getLiftNo());
assignCommand.setTaskNo(liftProtocol.getTaskNo());
if (wrkMastMapper.updateById(wrkMast) > 0) {
@@ -2119,7 +2126,7 @@
shuttleProtocol.setLocNo(liftSiteLocNo);
//鐩爣搴撲綅
assignCommand.setLocNo(liftSiteLocNo);
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵��
if (wrkMastMapper.updateById(wrkMast) > 0) {
@@ -2226,7 +2233,7 @@
//鍒嗛厤婧愬簱浣�
shuttleProtocol.setSourceLocNo(wrkMast.getSourceLocNo());
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
//鍒嗛厤鐩爣搴撲綅
shuttleProtocol.setLocNo(wrkMast.getLocNo());
//鐩爣搴撲綅
@@ -2744,7 +2751,7 @@
commands.add(command);
//鎸囦护闆嗗垎閰�
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬�
if (wrkChargeMapper.updateById(wrkCharge) > 0) {
@@ -2786,7 +2793,7 @@
assignCommand.setLocNo(chargeLocNo);
//婧愬簱浣�
assignCommand.setSourceLocNo(currentLocNo);
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkCharge.setWrkSts(52L);//灏忚溅杩佺Щ鐘舵��
if (wrkChargeMapper.updateById(wrkCharge) > 0) {
//涓嬪彂浠诲姟
@@ -2824,7 +2831,7 @@
wrkCharge.setWrkSts(54L);//鎻愬崌鏈烘惉杩愪腑
//鎵�闇�鍛戒护缁勫悎瀹屾瘯锛屾洿鏂版暟鎹簱锛屾彁浜ゅ埌绾跨▼鍘诲伐浣�
LiftAssignCommand assignCommand = new LiftAssignCommand();
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
assignCommand.setLiftNo(liftProtocol.getLiftNo());
assignCommand.setTaskNo(liftProtocol.getTaskNo());
if (wrkChargeMapper.updateById(wrkCharge) > 0) {
@@ -2879,7 +2886,7 @@
commands.add(command);
//鎸囦护闆嗗垎閰�
- assignCommand.setCommands(commands);
+// assignCommand.setCommands(commands);
wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬�
if (wrkChargeMapper.updateById(wrkCharge) > 0) {
--
Gitblit v1.9.1