From 6742ccb80562035ca680cf46438746ceb7cacbc8 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 25 七月 2023 16:59:30 +0800
Subject: [PATCH] #码垛位自动补充空板:自动补空板任务,扫码实装
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 168 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 106 insertions(+), 62 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 05d2f26..f27ee8b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -534,6 +534,7 @@
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
+
continue;
}
BasRgv basRgv = basRgvService.selectById(rgv.getId());
@@ -585,6 +586,8 @@
for (WrkMast wrkMast : wrkMasts) {
//鐩爣绔�
Integer staNo = wrkMast.getStaNo();
+ //婧愮珯
+ Integer sourceStaNo = wrkMast.getSourceStaNo();
//閫氳繃鐩爣绔欐悳绱gv鍙�
Integer rgvNo = this.searchRgvNo(staNo);
if (rgvNo == null) {//鏈壘鍒板彲鐢ㄧ殑rgv
@@ -647,7 +650,7 @@
continue;
}
//琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+ RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
@@ -693,7 +696,7 @@
continue;
}
//琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+ RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
@@ -736,7 +739,7 @@
continue;
}
//琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+ RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
@@ -782,7 +785,7 @@
continue;
}
//琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), true);
+ RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
@@ -809,6 +812,10 @@
}
}
+ }
+
+ private boolean rgvIoExecuteWrk2To3() {
+ return false;
}
/**
@@ -1802,6 +1809,18 @@
log.error("宸ヤ綅1淇敼宸ヤ綔妗g姸鎬佸け璐ワ紒锛侊紝宸ヤ綔鍙�={}", wrkMast1.getWrkNo());
}
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(rgv.getId()); // RGV缂栧彿
+ rgvCommand.setAckFinish1((short) 1); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(wrkMast1.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskMode1(RgvTaskModeType.NONE); // 宸ヤ綅1浠诲姟妯″紡: 鏃�
+ rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast1.getRgvNo(), new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2浠诲姟纭锛� step=4锛屽伐浣�1纭锛� step=5锛屽伐浣�2浠诲姟纭
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgv.getId(), JSON.toJSON(rgvCommand));
+ }
+
// //宸ヤ綅1鍙栬揣瀹屾垚鍚庯紝宸ヤ綅2鏄棤璐х┖闂茬姸鎬佹椂锛屽噯澶囩粰宸ヤ綅2鍙戜换鍔★紝纭鏄惁鏈夊緟鎵цRGV浠诲姟
// if (rgvProtocol.getModeType() == RgvModeType.AUTO
// && rgvProtocol.getTaskNo1() > 0 && rgvProtocol.getTaskNo2() == 0
@@ -2473,7 +2492,12 @@
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
SearchLocParam param = new SearchLocParam();
- param.setIoType(10);
+ if (emptyInSta.getStaNo().equals(214)){
+ //鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴�
+ param.setIoType(201);
+ }else {
+ param.setIoType(10);
+ }
param.setSourceStaNo(emptyInSta.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
@@ -2501,64 +2525,7 @@
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
-
-
-// // 妫�绱㈠簱浣�
-// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-// StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto, 0);
-// // 宸ヤ綔鍙�
-// int workNo = startupDto.getWorkNo();
-//
-// try {
-// // 鎻掑叆宸ヤ綔涓绘。
-// WrkMast wrkMast = new WrkMast();
-// wrkMast.setWrkNo(workNo);
-// wrkMast.setIoTime(new Date());
-// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
-// wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
-// wrkMast.setIoPri(10D); // 浼樺厛绾э細10
-// wrkMast.setCrnNo(startupDto.getCrnNo());
-// wrkMast.setSourceStaNo(startupDto.getSourceStaNo());
-// wrkMast.setStaNo(startupDto.getStaNo());
-// wrkMast.setLocNo(startupDto.getLocNo());
-// wrkMast.setFullPlt("N"); // 婊℃澘
-// wrkMast.setPicking("N"); // 鎷f枡
-// wrkMast.setExitMk("N"); // 閫�鍑�
-// wrkMast.setEmptyMk("Y"); // 绌烘澘
-// wrkMast.setLinkMis("N");
-//// wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
-// // 鎿嶄綔浜哄憳鏁版嵁
-// wrkMast.setAppeTime(new Date());
-// wrkMast.setModiTime(new Date());
-// Integer insert = wrkMastMapper.insert(wrkMast);
-// if (insert == 0) {
-// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-// }
-// // 鏇存柊鐩爣搴撲綅鐘舵��
-// LocMast locMast = locMastService.selectById(startupDto.getLocNo());
-// locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
-// locMast.setModiTime(new Date());
-// if (!locMastService.updateById(locMast)){
-// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-// }
-// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//
-// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-// staProtocol.setWorkNo((short) workNo);
-// staProtocol.setStaNo(startupDto.getStaNo().shortValue());
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-// if (!result) {
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// }
-
}
-
-
}
}
}
@@ -3241,4 +3208,81 @@
}
}
}
+
+ /**
+ * 鍏朵粬 ===>> 鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩�
+ */
+ public synchronized void dischargingMachineOutputTray() {
+ try {
+ List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
+ if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
+ return;
+ }
+
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(213);
+ if (staProtocol == null) {
+ log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规煡璇㈠け璐�");
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (!staProtocol.isLoading()){
+ log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规棤鐗╋紝姝e湪鑷姩璋冨嚭绌烘澘锛�");
+ int i = wrkMastMapper.selectConfigCount10468N();
+ if (i==1){
+ wrkMastMapper.updateConfig10468Y();
+ }
+ return;
+ }else {
+ int i = wrkMastMapper.selectConfigCount10468N();
+ if (i==0){
+ return;
+ }
+ }
+ StaProtocol staProtocol214 = devpThread.getStation().get(214);
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
+ staProtocol.setWorkNo((short)9999);
+ staProtocol.setStaNo((short)214);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紒");
+ }
+ log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂鎴愬姛锛氬伐浣滃彿9999銆佺洰鏍囩珯214锛�");
+ }else {
+ log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐圭姸鎬佷笉绗﹀悎锛�");
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
+ /**
+ * 鍏朵粬 ===>> 鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴�
+ */
+ public synchronized void scanBarcodeEmptyBoard() {
+ try {
+
+ }catch (Exception e){
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
+ /**
+ * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏涓嬩竴姝ユ壂鐮佸叆搴�
+ */
+ public synchronized void stackingCompletionDriveTray() {
+ try {
+
+ }catch (Exception e){
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
}
--
Gitblit v1.9.1