From 608e489548d7eb5ef8ccadaa6a4021c473c2f629 Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期六, 12 十月 2024 10:31:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 220 insertions(+), 11 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 600dbba..1a940ee 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -427,9 +427,10 @@
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) {
// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
continue;
@@ -482,7 +483,7 @@
staProtocol.setStaNo(dto.getStaNo());
devpThread.setPakMk(staProtocol.getSiteId(), false);
// ledThread.errorReset();
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
if (!result) {
log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
@@ -1291,7 +1292,7 @@
continue;
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ && staDetl.getCanining() != null && staDetl.getCanining().equals("Y") && staDetl.getWrkNo().equals(wrkMast.getWrkNo())) {
flag = true;
}
if (!flag) {
@@ -2318,6 +2319,7 @@
param.setIoType(10);
param.setSourceStaNo(122);
param.setLocType1((short)1);
+ param.setRgvNo(rgvProtocol.getRgvNo());
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/pakin/empty/loc/v1")
@@ -2363,7 +2365,8 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
// 鍛戒护闆嗗悎
List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
+ String orderNo = null;
+ // 宸ヤ綔妗i泦鍚�
List<WrkMast> wrkMasts = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
@@ -2423,7 +2426,13 @@
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl)));
+ if (Cools.isEmpty(wrkDetls)){
+ continue;
+ }
+ Integer count1 = wrkDetlService.count1();
+ Integer count2 = wrkDetlService.count2(wrkDetls.get(0).getOrderNo());
+ Integer count3 = wrkDetlService.count3();
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1,count2,count3)));
}
commands.add(ledCommand);
}
@@ -3344,6 +3353,14 @@
if (basDevp135.getReportSign()!=0){
continue;
}
+ BasDevp basDevp121 = basDevpService.selectById(121);
+ if (basDevp121.getReportSign()!=0){
+ continue;
+ }
+ BasDevp basDevp120 = basDevpService.selectById(120);
+ if (basDevp120.getReportSign()!=0){
+ continue;
+ }
WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
if (Cools.isEmpty(wrkMast131)){
continue;
@@ -3368,6 +3385,26 @@
}
if (!staProtocol.isLoading()){
+ continue;
+ }
+ StaProtocol staProtocol120 = devpThread.getStation().get(120);
+ if (staProtocol120 == null) {
+ continue;
+ } else {
+ staProtocol120 = staProtocol120.clone();
+ }
+
+ if (staProtocol120.isLoading()){
+ continue;
+ }
+ StaProtocol staProtocol121 = devpThread.getStation().get(121);
+ if (staProtocol121 == null) {
+ continue;
+ } else {
+ staProtocol121 = staProtocol121.clone();
+ }
+
+ if (staProtocol121.isLoading()){
continue;
}
// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
@@ -3696,12 +3733,51 @@
if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
if (!basDevp.getEmptyMk().equals("Y")){
continue;
}
}
Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+ BasDevp basDevpS = basDevpService.selectById(wrkMastSta.getStaStart());
+ if (!basDevpS.getAutoing().equals("Y") || !basDevpS.getLoading().equals("Y") || basDevpS.getWrkNo()!=wrkMastSta.getWrkNo().intValue()){
+ continue;
+ }
+ StaProtocol staProtocols = devpThread.getStation().get(basDevpS.getDevNo());
+ if (staProtocols == null) {
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocols.isAutoing() || !staProtocols.isLoading() || staProtocols.getWorkNo() != wrkMastSta.getWrkNo().intValue()){
+ continue;
+ }
+
+
log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
@@ -3774,12 +3850,38 @@
if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
if (!basDevp.getEmptyMk().equals("Y")){
continue;
}
}
Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
@@ -3856,12 +3958,38 @@
if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
if (!basDevp.getEmptyMk().equals("Y")){
continue;
}
}
Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"婊℃斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
log.info(date+"婊℃斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
log.info(date+"婊℃斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
@@ -3941,6 +4069,22 @@
}
}
Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
+ continue;
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
@@ -4022,6 +4166,17 @@
continue;
}
Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"婊″彇浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()){
+ continue;
+ }
+
log.info(date+"婊″彇浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
log.info(date+"婊″彇浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
@@ -4060,10 +4215,17 @@
* */
public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
try{
- Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
- if (integer==0){
+// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
+// if (integer==0){
+// return;
+// }
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectAllWrkStsCountWrkMastSta(null, 0);
+ if (Cools.isEmpty(wrkMastSta)){
return;
}
+ boolean signRgv = true;
+ boolean signRgv1 = true;
+ boolean signRgv2 = true;
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -4085,17 +4247,63 @@
&& rgvProtocol.getStatusType1() == RgvStatusType.IDLE
&& rgvProtocol.getStatusType2() == RgvStatusType.IDLE
) {
+
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //鑾峰彇鍚堝苟骞叉秹椤�
+// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge);
+// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route);
+// if (!wrkMastStaList.isEmpty()){
+// log.info("灏忚溅瀛樺湪鍙墽琛屼换鍔★紝璺宠繃閬胯锛侊紒4214");
+// return;
+// }
if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
- continue;
+// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){
+// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){
+ if (rgvProtocol.getRgvNo()==1){
+ signRgv1 = false;
+ }else {
+ signRgv2 = false;
+ }
}
if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+ signRgv1 = false;
continue;
} else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+ signRgv2 = false;
continue;
}
- rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+ }else {
+ signRgv = false;
+ break;
+ }
+ }
+ if (signRgv && (signRgv1 || signRgv2)){
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+ && rgvProtocol.getTaskNo1()==0
+ && rgvProtocol.getTaskNo2()==0
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+ ) {
+ if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+ continue;
+ } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+ continue;
+ }
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ rgvAvoidanceXY(rgvProtocol.getRgvNo());
+ rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+
+ }
}
}
}catch (Exception e){
@@ -4397,6 +4605,7 @@
//鏇存柊褰撳墠灏忚溅閿�
try{
Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
+// Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(staEnd, staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
basRgvMapCurrent.setLockEndRoute(fallMerge);
basRgvMapMapper.updateById(basRgvMapCurrent);
--
Gitblit v1.9.1