From b095bc486863e7fb15f7f798595b8a365b1cd26e Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期五, 18 四月 2025 21:45:26 +0800
Subject: [PATCH] 999
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 230 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 147 insertions(+), 83 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 2b97ce7..9ff1800 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.entity.*;
@@ -8,6 +9,7 @@
import com.zy.asrs.utils.NotifyUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.MapNode;
+import com.zy.common.model.SearchLocParam;
import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.*;
@@ -40,10 +42,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -101,12 +100,7 @@
private BasWrkStatusService wrkStatusService;
- public static List<Integer> staNosIn = new ArrayList<Integer>() {{
- add(1015);
- add(1026);
- }};
-
- private boolean isInEnable(DevpThread devpThread, Integer staNo) {
+ public boolean isInEnable(DevpThread devpThread, Integer staNo) {
if (staNo == null) {
return false;
}
@@ -122,6 +116,7 @@
case 1031:
case 1032:
return devpThread.getStation().get(1032).isInEnable();
+ case 1024:
case 1025:
case 1026:
return devpThread.getStation().get(1025).isInEnable();
@@ -133,7 +128,7 @@
return false;
}
- private boolean isOutEnable(DevpThread devpThread, Integer staNo) {
+ public boolean isOutEnable(DevpThread devpThread, Integer staNo) {
if (staNo == null) {
return false;
}
@@ -146,9 +141,7 @@
case 1022:
case 1023:
return devpThread.getStation().get(1022).isOutEnable();
- case 1031:
- case 1032:
- return devpThread.getStation().get(1032).isOutEnable();
+ case 1024:
case 1025:
case 1026:
return devpThread.getStation().get(1025).isOutEnable();
@@ -156,6 +149,9 @@
case 1014:
case 1015:
return devpThread.getStation().get(1014).isOutEnable();
+ case 1031:
+ case 1032:
+ return devpThread.getStation().get(1032).isOutEnable();
}
return false;
}
@@ -201,23 +197,22 @@
wrkMastService.updateById(wrkMast);
}
try {
- /*String wmsUrl = "127.0.0.1:8080/fyxcwms";
- SearchLocParam param = new SearchLocParam();
- param.setBarcode(barcode);
- param.setIoType(1);
- param.setSourceStaNo(inSta.getStaNo());
- param.setLocType1(staProtocol.getLocType1().shortValue());
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/pakin/loc/v1")
- .setJson(JSON.toJSONString(param))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- Integer code = jsonObject.getInteger("code");
- if (code.equals(200)) {
- StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
+ String wmsUrl = "192.168.10.201:8080/fyxcwms";
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(barcode);
+ param.setIoType(1);
+ param.setSourceStaNo(inSta.getStaNo());
+ param.setLocType1(staProtocol.getLocType1().shortValue());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if (code.equals(200)) {
+ //StartupDto dto = jsonObject.getObject("data", StartupDto.class);
// String wmsLocNo = dto.getLocNo();
// int row = Integer.parseInt(wmsLocNo.substring(0, 2));
// int bay = Integer.parseInt(wmsLocNo.substring(2, 5));
@@ -248,19 +243,19 @@
// }catch (Exception e){
//
// }
- } else {
- String msg = jsonObject.getString("msg");
- HashMap<String, String> hashMap = new HashMap<>();
- hashMap.put("msg", msg);
- hashMap.put("sta", inSta.getStaNo().toString());
- new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/led/getError")
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
- News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
- }*/
+ } else {
+ String msg = jsonObject.getString("msg");
+ HashMap<String, String> hashMap = new HashMap<>();
+ hashMap.put("msg", msg);
+ hashMap.put("sta", inSta.getStaNo().toString());
+ new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/led/getError")
+ .setJson(JSON.toJSONString(hashMap))
+ .build()
+ .doPost();
+ News.error("鍏ュ簱鐢宠澶辫触锛屼换鍔℃暟鎹�={}锛岃姹傚搷搴�={}", JSON.toJSON(param), JSON.toJSON(jsonObject));
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -290,7 +285,7 @@
if (liftWrkMast != null) {
if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
- return;
+ continue;
}
}
wrkMast.setLiftNo(1);
@@ -302,24 +297,24 @@
String locNo = "1200301";
- if (wrkMast.getStaNo() == 1025) {
+ if (wrkMast.getStaNo() == 1026) {
locNo = "1200305";
}
boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_DEVP");
if (!dispatchShuttle) {
News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
- return;
+ continue;
+ } else {
+ News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け鎴愬姛", wrkMast.getWrkNo());
}
wrkMast.setWrkSts(WrkStsType.INBOUND_SHUTTLE_RUN.sts);
wrkMast.setLiftNo(null);
wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(new Date());
- if (wrkMastService.updateById(wrkMast)) {
- return;
+ if (!wrkMastService.updateById(wrkMast)) {
+ News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
}
}
-
-
}
}
@@ -332,21 +327,21 @@
List<WrkMast> wrkSts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.NEW_OUTBOUND.sts).in("sta_no", 1013, 1024));
for (WrkMast wrkMast : wrkSts) {
if (devpThread == null) {
- return;
+ continue;
}
Map<Integer, StaProtocol> station = devpThread.getStation();
StaProtocol staProtocol = station.get(wrkMast.getStaNo());
if (staProtocol == null) {
- return;
+ continue;
}
if (!staProtocol.isAutoing()) {
News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
- return;
+ continue;
}
- if (!staProtocol.isOutEnable()) {
+ if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
- return;
+ continue;
}
String locNo = "1200301";
if (wrkMast.getStaNo() == 1024) {
@@ -355,16 +350,25 @@
boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP");
if (!dispatchShuttle) {
News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
- return;
+ continue;
} else {
- News.info("{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
+ WrkMast wrkMast1 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
+ if (wrkMast1 == null) {
+ News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�,缁堜簬鍙戠幇浜�", wrkMast.getWrkNo());
+ continue;
+ } else {
+ News.info("{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
+ }
}
wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);
wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
- if (wrkMastService.updateById(wrkMast)) {
- return;
+ if (!wrkMastService.updateById(wrkMast)) {
+ News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+ } else {
+ WrkMast wrkMast1 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
+ News.info("{}浠诲姟锛岀Щ鍔ㄤ换鍔$敓鎴愭垚鍔熲�斺��1", wrkMast1.getWrkNo());
}
}
}
@@ -401,22 +405,23 @@
}
String sourceLocNo = "1200305";
- String locNo = "1100105";
+ String locNo = "1300105";
if (wrkMast.getStaNo() == 1013) {
sourceLocNo = "1200301";
- locNo = "1100101";
+ locNo = "1300101";
if (loc.contains(locNo)) {
- locNo = "1000101";
+ locNo = "1100101";
}
} else {
if (loc.contains(locNo)) {
- locNo = "1000105";
+ locNo = "1100105";
}
}
boolean dispatchShuttle = shuttleDispatchUtils.shuttleMoveGenerate(wrkMast.getWrkNo(), sourceLocNo, locNo, wrkMast.getShuttleNo(), null, false);
if (!dispatchShuttle) {
News.taskInfo(wrkMast.getWrkNo(), "{}灏忚溅锛屾尓杞﹁皟搴﹁嚦鍙栬揣鐐瑰け璐�", wrkMast.getShuttleNo());
+ continue;
}
staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
@@ -834,7 +839,6 @@
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
- wrkMast.setLiftNo(1);
wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
@@ -909,19 +913,42 @@
News.info("{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
return false;
}
+ if (sourceStaNo == 1023) {
+ if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) {
+ News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+ return false;
+ }
+ if (!station.get(1022).getBarcode().equals(wrkMast.getBarcode())) {
+ News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
+ return false;
+ }
+ } else {
+ if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) {
+ News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+ return false;
+ }
+ if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) {
+ News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
+ return false;
+ }
+ }
- if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) {
- News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+ String locNo = "0200305";
+ if (wrkMast.getSourceStaNo() == 1012) {
+ locNo = "0200301";
+ }
+ boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
+ if (!dispatchShuttle) {
+ News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
return false;
}
- if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) {
- News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
- return false;
+ int lev = 105;
+ if (wrkMast.getSourceStaNo() == 1012) {
+ lev = 101;
}
-
//鑾峰彇鎻愬崌鏈哄懡浠�
- List<LiftCommand> liftCommands = liftThread.getPalletInCommand(wrkMast.getWrkNo(), wrkMast.getSourceStaNo(), 101);
+ List<LiftCommand> liftCommands = liftThread.getPalletInCommand(wrkMast.getWrkNo(), sourceStaNo, lev);
LiftCommand liftCommand = liftCommands.get(0);
int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
@@ -981,15 +1008,15 @@
News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;
}
- String locNo = "0200305";
- if (wrkMast.getStaNo() == 1011) {
- locNo = "0200301";
- }
- boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
- if (!dispatchShuttle) {
- News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
- return false;
- }
+// String locNo = "0200305";
+// if (wrkMast.getStaNo() == 1011) {
+// locNo = "0200301";
+// }
+// boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
+// if (!dispatchShuttle) {
+// News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+// return false;
+// }
wrkMast.setWrkSts(WrkStsType.INBOUND_SHUTTLE_RUN.sts);
// TODO 娴嬭瘯涓彂鐜颁笉鑳借В绂侊紝鍥犱负鎻愬崌鏈洪噷瀛樺湪鎵樼洏锛屽氨涓嶈兘瑙g锛屼笉鐒跺彟涓�杈嗗皬杞﹀彲鑳戒細杩戞彁鍗囨満
@@ -1043,7 +1070,7 @@
return false;
}
- if (!staProtocol.isOutEnable()) {
+ if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId());
return false;
}
@@ -1541,7 +1568,7 @@
Map<Integer, StaProtocol> station = devpThread.getStation();
WrkMast wrkMast = null;
for (StaProtocol staProtocol : station.values()) {
- if (staProtocol.getSiteId() == 1013 || staProtocol.getSiteId() == 1014) {
+ if (staProtocol.getSiteId() == 1013 || staProtocol.getSiteId() == 1024) {
wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getFinishWorkNo()).eq("wrk_sts", WrkStsType.OUTBOUND_DEVP_RUN.sts));
if (wrkMast != null) {
wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
@@ -2078,4 +2105,41 @@
}
+ /**
+ * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+ */
+ public synchronized void ioConvert() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+
+ FyDevpThread devpThread = (FyDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta());
+ switch (inSta.getBackSta()) {
+ case 116:
+ if (pakout != null) {
+ if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+ devpThread.ioModeOf1F1 = IoModeType.PAKOUT_BOOTING;
+ WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+ if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+ && !devpThread.getStation().get(inSta.getBackSta()).isLoading()
+ && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
+ // 鍑哄簱妯″紡
+ devpThread.ioModeOf1F1 = IoModeType.PAKOUT_MODE;
+ }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE;
+ }
+ break;
+
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
}
--
Gitblit v1.9.1