From 00274e95817ea11de061b65c22b745c2d6279800 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 24 一月 2024 18:37:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 205 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 193 insertions(+), 12 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 8f1e56f..0c3d176 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -98,6 +98,8 @@
private WrkMastStaMapper wrkMastStaMapper;
@Autowired
private BasRgvMapMapper basRgvMapMapper;
+ @Autowired
+ private RgvOneSignMapper rgvOneSignMapper;
@Value("${wms.url}")
private String wmsUrl;
@@ -578,6 +580,164 @@
}
}
+ /**
+ * 2妤�212鍛煎彨绌烘澘
+ */
+ public synchronized void stnToCrnStnPick3Auto(Integer sign) {
+ try{
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(212);
+ if (staProtocol == null) {
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){
+ switch (sign){
+ //鎵ц灏忚溅璐х墿鎼繍浠诲姟
+ case 1:
+ case 4:
+ stnToCrnStnPick3();
+ return;
+ //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
+ case 2://鏀�//鎷嗙洏
+ case 5://鏀�//鎷嗙洏
+ stnToCrnStnPick4();
+ return;
+ default:
+ return;
+ }
+ } else if (staProtocol.isAutoing() && staProtocol.isLoading()){
+ switch (sign){
+ case 3://婊℃斁
+ case 6://婊℃斁
+ stnToCrnStnPick5();
+ return;
+ default:
+ return;
+ }
+ }
+ }catch (Exception e){
+ log.error("2妤�212鍛煎彨绌烘澘"+e);
+ }
+ }
+ /**
+ * 2妤�212鍛煎彨绌烘澘
+ */
+ public synchronized void stnToCrnStnPick3() {
+ WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+ if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉�
+ return;
+ }
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
+ if (driveSta.getStaNo()!=215){
+ continue;
+ }
+ // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
+ || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){
+ boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+
+ staProtocol.setWorkNo(wrkMast.getWrkNo()-1);
+ staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221);
+ boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result2) {
+ log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ }
+ wrkMast.setWrkSts(62L);
+ wrkMastMapper.updateById(wrkMast);
+
+ boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
+ return;
+ }
+ }
+ }
+ }
+
+ /**
+ * 2妤�212鍛煎彨绌烘澘
+ */
+ public synchronized void stnToCrnStnPick4() {
+ WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+ if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩�
+ return;
+ }
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ for (DevpSlave.Sta driveSta : devp.getInSta()) {
+ if (driveSta.getStaNo()!=217){
+ continue;
+ }
+ // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ StaProtocol staProtocol212 = devpThread.getStation().get(212);
+ if (staProtocol212 == null) {
+ continue;
+ } else {
+ staProtocol212 = staProtocol212.clone();
+ }
+ if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
+ || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){
+// boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(212);
+ boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result2) {
+ log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ }
+ wrkMast.setWrkSts(63L);
+ wrkMastMapper.updateById(wrkMast);
+
+// boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 2妤�212鍛煎彨绌烘澘
+ */
+ public synchronized void stnToCrnStnPick5() {
+ WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+ if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴�
+ return;
+ }
+
+ // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(212);
+ if (staProtocol == null) {
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading()){
+// boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
+
+ wrkMast.setWrkSts(64L);
+ wrkMastMapper.updateById(wrkMast);
+
+// boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
+ return;
+ }
+ }
/**
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 鎷嗗灈浣嶇疆
*/
@@ -1285,6 +1445,13 @@
if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
continue;
+ }
+ //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
+ if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+ if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+ continue;
+ }
}
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
@@ -2011,6 +2178,10 @@
*/
public synchronized void storeEmptyPlt3() {
try{
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+ if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+ return;
+ }
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -2130,6 +2301,10 @@
ledCommand.setTitle("鐩樼偣鍑哄簱");
break;
case 110:
+ ledCommand.setTitle("绌烘澘鍑哄簱");
+ ledCommand.setEmptyMk(true);
+ break;
+ case 212:
ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
break;
@@ -2887,7 +3062,7 @@
// 鏃犳嫞鏂欐暟鎹�
continue;
}
- if (!wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
+ if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
continue;
}
if (wrkMast.getIoType()==101){
@@ -3079,9 +3254,9 @@
&& staProtocol.isLoading()
&& basDevp.getReportSign()==0
) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
- if (true){
- return;
- }
+// if (true){
+// return;
+// }
//浠诲姟瀹屾垚
boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
@@ -3090,7 +3265,8 @@
}catch (Exception e){ }
basDevp135.setReportSign(2);
basDevpService.updateById(basDevp135);
- staProtocol135.setWorkNo(32222);
+ int workNo = commonService.getWorkNo(7);
+ staProtocol135.setWorkNo(workNo);
staProtocol135.setStaNo(144);
devpThread.setPakMk(staProtocol135.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
@@ -3260,7 +3436,8 @@
/**
* 鍏ュ嚭搴� ===>> 灏忚溅浣滀笟涓嬪彂
*/
- public synchronized void rgvIoExecute(Integer sign) {
+ public synchronized boolean rgvIoExecute(Integer sign) {
+ boolean rgvIoExecuteSign = false;
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
// 鑾峰彇灏忚溅淇℃伅
@@ -3309,7 +3486,7 @@
break;
}
}
- for (int signCount = 1;!signWork && signCount<8;signCount++){
+ for (int signCount = 1;!signWork && signCount<7;signCount++){
switch (signCount){
case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
signWork = rgvRunWrkMastFullSta();
@@ -3330,18 +3507,22 @@
// signWork = rgvRunWrkMastEmptyStaPut();
break;
default:
- if (sign>6){
- rgvRunWrkMastEmptyStaAvoidance();//閬胯
- signWork = true;
- }
break;
}
}
-
+ if (!rgvIoExecuteSign){
+ rgvIoExecuteSign = signWork;
+ }
+ }
+ if (!rgvIoExecuteSign){
+ if (sign>6){
+ rgvRunWrkMastEmptyStaAvoidance();//閬胯
+ }
}
}catch (Exception e){
log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e);
}
+ return rgvIoExecuteSign;
}
/**
* 鎵ц灏忚溅鎼繍浠诲姟
--
Gitblit v1.9.1