From e98d4b1133ed058bfe1e6af75be9975aebfc32d8 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 16:00:35 +0800
Subject: [PATCH] 最后可运行版本
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 154 +++++++++++++++++++++++++++++++++------------------
1 files changed, 100 insertions(+), 54 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 d4d3e98..2617ed5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
@@ -95,6 +96,8 @@
private ConfigService configService;
@Autowired
private RedisUtil redisUtil;
+ @Autowired
+ private RcsService rcsService;
@Value("${wms.url}")
private String wmsUrl;
@@ -120,7 +123,7 @@
}
// 鑾峰彇鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
if (staProtocol == null) {
continue;
@@ -264,9 +267,23 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
+
SearchLocParam param = new SearchLocParam();
param.setBarcode(barcode);
- param.setIoType(1);
+
+ WaitPakin waitPakin = new WaitPakin();
+ List<WaitPakin> waitPakinList = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>()
+ .eq("zpallet", param.getBarcode())
+ );
+ if (waitPakinList.isEmpty()) {
+ param.setIoType(10);
+ } else {
+ param.setIoType(1);
+ }
+
param.setSourceStaNo(inSta.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
@@ -510,6 +527,10 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
SearchLocParam param = new SearchLocParam();
param.setBarcode(wrkMast.getBarcode());
@@ -1109,9 +1130,9 @@
}
}
String ip = "";
- if (wrkMast.getStaNo()==401){
+ if (wrkMast.getStaNo() == 401) {
ip = "172.26.4.231";
- }else if (wrkMast.getStaNo()==402){
+ } else if (wrkMast.getStaNo() == 402) {
ip = "172.26.4.232";
}else if (wrkMast.getStaNo()==307){
ip = "172.26.1.231";
@@ -1267,9 +1288,44 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
//鍒ゆ柇鏄惁鏈夋鍦ㄦ墽琛屼腑鐨凙GV浠诲姟
- List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", staProtocol.getSiteId()));
+ List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("sta_no", String.valueOf(staProtocol.getSiteId())));
if (agvTasks != null && agvTasks.size() > 0) {
continue;
+ }
+
+ //绔欑偣涓�401鎴栬��402鏃讹紝浠诲姟澶囨敞涓篞鏃跺垽鏂鍖哄煙涓渶澶栦晶绔欑偣鏄惁鑳界粦瀹�
+ //鑳界粦瀹氳鏄庣珯鐐逛负绌猴紝鍙互缁х画鍑哄簱
+ //绔欑偣缁戝畾澶辫触鍒欒鏄庡尯鍩熸弧浜�
+ if (staProtocol.getSiteId()==401||staProtocol.getSiteId()==402) {
+ BindOrUnbindParam bindOrUnbindParam = new BindOrUnbindParam();
+ String staNo1="LZP10";
+ String staNo2="LZP11";
+ if (wrkMast.getMemo().equals("Q-L2")){
+ staNo1="LZP15";
+ staNo2="LZP16";
+ }else if (wrkMast.getMemo().equals("Q-L3")){
+ staNo1="LZP20";
+ staNo2="LZP21";
+ }else if (wrkMast.getMemo().equals("Q-L4")){
+ staNo1="LZP26";
+ staNo2="LZP26";
+ }else if (wrkMast.getMemo().equals("Q-L5")){
+ staNo1="LZP30";
+ staNo2="LZP31";
+ }
+ bindOrUnbindParam.setSiteCode(staNo1);
+ R r = rcsService.bindOrUnbind(bindOrUnbindParam);
+ if (r != null && r.get("code").equals(200)) {
+
+ }else {
+ bindOrUnbindParam.setSiteCode(staNo2);
+ r = rcsService.bindOrUnbind(bindOrUnbindParam);
+ if (r != null && r.get("code").equals(200)) {
+
+ }else{
+ continue;
+ }
+ }
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
@@ -1894,6 +1950,10 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
+
SearchLocParam param = new SearchLocParam();
param.setIoType(10);
param.setSourceStaNo(emptyInSta.getStaNo());
@@ -2084,12 +2144,12 @@
staProtocol = staProtocol.clone();
}
// 鑾峰彇宸ヤ綔妗f暟鎹�
- WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",staProtocol.getWorkNo()));
// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
if (null == wrkMast) {
continue;
}
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
wrkMasts.add(wrkMast);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
@@ -2097,12 +2157,12 @@
ledCommand.setIoType(wrkMast.getIoType());
// 鍑哄簱妯″紡
switch (wrkMast.getIoType()) {
- case 1:
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- break;
- case 10:
- ledCommand.setTitle("绌烘澘鍏ュ簱");
- break;
+// case 1:
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// break;
+// case 10:
+// ledCommand.setTitle("绌烘澘鍏ュ簱");
+// break;
case 101:
ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
break;
@@ -2119,40 +2179,45 @@
ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
break;
- case 53:
- ledCommand.setTitle("鎷f枡鍏ュ簱");
- break;
- case 57:
- ledCommand.setTitle("鐩樼偣鍏ュ簱");
- break;
- case 54:
- ledCommand.setTitle("骞舵澘鍏ュ簱");
- break;
+// case 53:
+// ledCommand.setTitle("鎷f枡鍏ュ簱");
+// break;
+// case 57:
+// ledCommand.setTitle("鐩樼偣鍏ュ簱");
+// break;
+// case 54:
+// ledCommand.setTitle("骞舵澘鍏ュ簱");
+// break;
default:
- News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ //News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
break;
}
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setLocNo(wrkMast.getLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- try{
- if (wrkMast.getIoType()>100){
- for (WrkDetl wrkDetl : wrkDetls){
+ try {
+ if (wrkMast.getIoType() > 100) {
+ for (WrkDetl wrkDetl : wrkDetls) {
LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
- wrkDetl.setWeight(locDetl.getAnfme());
+ if (Cools.isEmpty(locDetl)) {
+ wrkDetl.setWeight(0.0);
+ }else {
+ wrkDetl.setWeight(locDetl.getAnfme());
+ }
}
- }else {
- for (WrkDetl wrkDetl : wrkDetls){
+ } else {
+ for (WrkDetl wrkDetl : wrkDetls) {
wrkDetl.setWeight(wrkDetl.getAnfme());
}
}
- }catch (Exception e){
- log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
+ } catch (Exception e) {
+ log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�" + e);
}
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getWeight(), wrkDetl.getSpecs(), wrkDetl.getSku(),wrkDetl.getZpallet())));
}
commands.add(ledCommand);
}
@@ -2163,31 +2228,12 @@
if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
continue;
}
-// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
-// if (!commands.isEmpty()) {
-// if (led.getId() < 7) {
-// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
-// News.error(""+mark+" - 2"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-// continue;
-// } else {
-// ledThread.setLedMk(false);
-// }
-// } else {
-// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
-// News.error(""+mark+" - 3"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-// continue;
-// } else {
-// ledThread.setLedMk(false);
-// }
-// }
-//
-// }
// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
if (!commands.isEmpty()) {
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
continue;
- }else {
+ } else {
ledThread.setLedMk(false);
}
}
@@ -2198,7 +2244,7 @@
wrkMast.setOveMk("Y");
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.errorNoLog(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�");
+ News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
}
}
@@ -2212,7 +2258,7 @@
}
}
- News.infoNoLog(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
+ News.infoNoLog("" + mark + " - 0" + " - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
}
/**
--
Gitblit v1.9.1