From 0e32b14a61afca8f7dbbe9851f47b57158abfdc1 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 21 一月 2024 10:40:56 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 745 +++++++++++++++++++++++++++++++++++----------------------
1 files changed, 456 insertions(+), 289 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 e36752f..c8364a7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -196,6 +196,9 @@
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
+
barcodeThread.setBarcode("");
staProtocol.setWorkNo(dto.getWorkNo());
@@ -228,6 +231,62 @@
}
/**
+ * 缁勬墭
+ * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿閫氱煡妗佹灦鐮佸灈
+ */
+ public synchronized void generateStoreWrkFileFull2LouM() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鐮佸灈鍙�
+ for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, driveSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+
+ if (!Cools.isEmpty(barcode) && !barcode.equals("") && !barcode.equals(" ")) {
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
+ }
+
+ // 鑾峰彇鐮佸灈鍙d俊鎭�
+ 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.isInEnable()
+ && staProtocol.isEmptyMk()
+ && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) )
+ ) {
+ try {
+ BasDevp basDevp = basDevpService.selectById(driveSta.getStaNo());
+ if (basDevp.getReportSign()>0){
+ continue;
+ }
+ basDevp.setBarcode(barcode);
+ basDevp.setReportSign(1);
+ basDevpService.updateById(basDevp);
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ }
+ }
+ }
+
+ /**
* wms鍏ュ簱
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
*/
@@ -235,7 +294,7 @@
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
- for (DevpSlave.Sta inSta : devp.getInSta()) {
+ for (DevpSlave.Sta inSta : devp.getInWmsSta()) {
// 鑾峰彇鍏ュ簱绔欎俊鎭�
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -246,9 +305,9 @@
}
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
- if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
- continue;
- }
+// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
+// continue;
+// }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
@@ -264,7 +323,11 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
+ Integer staNo = wrkMast.getStaNo();
+ if (wrkMast.getSourceStaNo()==145){
+ staNo = 147;
+ }
+ staProtocol.setStaNo(staNo);
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (result) {
@@ -433,17 +496,17 @@
WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
if (wrkMast == null) {
- WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
- if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L);
- if (Cools.isEmpty(wrkMastSta)){
- WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
- wrkMastSta1.setType(2);
- wrkMastSta1.setWrkType(1);
- wrkMastStaMapper.insert(wrkMastSta1);
- }
- continue;
- }
+// WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
+// if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L);
+// if (Cools.isEmpty(wrkMastSta)){
+// WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
+// wrkMastSta1.setType(2);
+// wrkMastSta1.setWrkType(1);
+// wrkMastStaMapper.insert(wrkMastSta1);
+// }
+// continue;
+// }
// log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�");
// 鏃犳嫞鏂欐暟鎹�
continue;
@@ -521,6 +584,46 @@
}
+ }
+ }
+
+ /**
+ * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 鎷嗗灈浣嶇疆
+ */
+ public synchronized void storeEmptyPlt4() {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍙犵洏鍏ュ簱鍙�
+ for (DevpSlave.Sta pickSta : devp.getEmptyInSta2()) {
+
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
+ if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
+ continue;
+ }
+
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) {
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
+ if (wrkMast == null) {
+ WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
+ if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L);
+ if (Cools.isEmpty(wrkMastSta)){
+ WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
+ wrkMastSta1.setType(2);
+ wrkMastSta1.setWrkType(1);
+ wrkMastStaMapper.insert(wrkMastSta1);
+ }
+ }
+ }
+ }
+ }
}
}
@@ -1065,247 +1168,6 @@
}
}
- }
-
- /**
- * 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙�
- */
- public synchronized void rgvIoExecute() {
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- RgvSlave rgvSlave=null;
- if (rgv.getId()==1){
- rgvSlave = slaveProperties.getRgv().get(1);
- }else {
- rgvSlave = slaveProperties.getRgv().get(0);
- }
-
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
-
- RgvThread rgvThreadSlave = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocolSlave = rgvThreadSlave.getRgvProtocol();
- BasRgv basRgvSlave = null;
- if (rgvProtocolSlave == null) {
- rgvSlave=null;
- }else {
- basRgvSlave = basRgvService.selectById(rgv.getId());
- if (basRgvSlave == null) {
- rgvSlave=null;
- }
- }
-
- BasRgv basRgv = basRgvService.selectById(rgv.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
- continue;
- }
-
- boolean signSlave=false;//姝ゅ鍒ゆ柇RgvSlave鏄惁宸茬粡瑙勯伩
- boolean signSlaveState=false;//姝ゅ鍒ゆ柇RgvSlave鏄惁绌洪棽
- Integer staSlave = 0;//姝ゅ璁板綍RgvSlave褰撳墠浣嶇疆
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
-// && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
-// && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
- ) {
-
- //鏌ユ壘鏄惁瀛樺湪鍏ュ嚭搴撳伐浣滀腑绛夊緟RGV鎼繍鐨勪换鍔�
- List<WrkMast> wrkMasts = wrkMastMapper.selectIoRgvNo(rgv.getId());
- for (WrkMast wrkMast : wrkMasts) {
- if (wrkMast.getWrkSts() == 2) {//2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓�
- if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getLoaded1() != 0) {//RGV鏄惁鏃犱换鍔°�丷GV鏄惁鏃犺揣
- continue;
- }
-
- //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- Integer staNo = wrkMast.getSourceStaNo();
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp == null) {
- continue;//鐩爣绔欎笉瀛樺湪
- }
- //璧峰璺緞
- int startPath = rgvProtocol.getRgvPos().intValue();
- //鐩爣璺緞鍊�
- int endPath = basDevp.getLocType3().intValue();
-// boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- if (pathUsed) {
- //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
- continue;
- }
- //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓�
- Date now = new Date();
- wrkMast.setWrkSts(3L);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋1 => 3.RGV鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- } else if (wrkMast.getWrkSts() == 14) {//4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓� 14鍑哄簱瀹屾垚
- if (rgvProtocol.getTaskNo1() == 0 || !rgvProtocol.getTaskNo1().equals(wrkMast.getWrkNo().shortValue())) {//RGV蹇呴』鏈変换鍔′笖浠诲姟鍜屽綋鍓嶅伐浣滄。涓�鑷�
- continue;
- }
- if (rgvProtocol.getLoaded1() == 0) {//RGV蹇呴』鏈夌墿
- continue;
- }
-
- //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- Integer staNo = wrkMast.getStaNo();
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp == null) {
- continue;//鐩爣绔欎笉瀛樺湪
- }
- //璧峰璺緞
- int startPath = rgvProtocol.getRgvPos().intValue();
- //鐩爣璺緞鍊�
- int endPath = basDevp.getLocType3().intValue();
- boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- if (pathUsed) {
- //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
- continue;
- }
- //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓�
- Date now = new Date();
- wrkMast.setWrkSts(5L);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 4.RGV鍙栬揣瀹屾垚 => 5.RGV鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- } else if (wrkMast.getWrkSts() == 23) {//23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓�
- if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getLoaded1() != 0) {//RGV鏄惁鏃犱换鍔°�丷GV鏄惁鏃犺揣
- continue;
- }
-
- //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- Integer staNo = wrkMast.getSourceStaNo();
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp == null) {
- continue;//鐩爣绔欎笉瀛樺湪
- }
- //璧峰璺緞
- int startPath = rgvProtocol.getRgvPos().intValue();
- //鐩爣璺緞鍊�
- int endPath = basDevp.getLocType3().intValue();
- boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- if (pathUsed) {
- //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
- continue;
- }
- //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓�
- Date now = new Date();
- wrkMast.setWrkSts(24L);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 23.璁惧涓婅蛋1 => 24.RGV鍙栬揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- } else if (wrkMast.getWrkSts() == 25) {//25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓�
- if (rgvProtocol.getTaskNo1() == 0 || !rgvProtocol.getTaskNo1().equals(wrkMast.getWrkNo().shortValue())) {//RGV蹇呴』鏈変换鍔′笖浠诲姟鍜屽綋鍓嶅伐浣滄。涓�鑷�
- continue;
- }
- if (rgvProtocol.getLoaded1() == 0) {//RGV蹇呴』鏈夌墿
- continue;
- }
-
- //鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- Integer staNo = wrkMast.getStaNo();
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp == null) {
- continue;//鐩爣绔欎笉瀛樺湪
- }
- //璧峰璺緞
- int startPath = rgvProtocol.getRgvPos().intValue();
- //鐩爣璺緞鍊�
- int endPath = basDevp.getLocType3().intValue();
- boolean pathUsed = RgvUtils.isPathUsed(startPath, endPath);//鍒ゆ柇琛岃蛋璺緞鏄惁琚崰鐢�
- if (pathUsed) {
- //琛岃蛋璺緞琚崰鐢紝绂佹涓嬪彂鍛戒护
- continue;
- }
- //琛岃蛋璺緞绌洪棽锛岄攣瀹氳矾寰�
- RgvUtils.lockPath(startPath, endPath, rgvProtocol.getRgvNo(), wrkMast.getWrkNo(), true);
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(wrkMast.getRgvNo()); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setDestinationStaNo1(wrkMast.getRgvDstaNo().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getRgvNo(), new Task(4, rgvCommand))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getRgvNo(), JSON.toJSON(rgvCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓�
- Date now = new Date();
- wrkMast.setWrkSts(26L);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 25.RGV鍙栬揣瀹屾垚 => 26.RGV鏀捐揣涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- }
- }
- }
-
- }
- }
- }
-
- private boolean rgvIoExecuteWrk2To3() {
- return false;
}
/**
@@ -3069,9 +2931,16 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+ && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
+ && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
) {
try {
+ WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep3(122);
+ if (!Cools.isEmpty(wrkMast1)){
+ continue;
+ }
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
SearchLocParam param = new SearchLocParam();
@@ -3092,7 +2961,7 @@
if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()==10 && wrkMast.getWrkSts()==2){
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue());
if (Cools.isEmpty(wrkMastSta)){
- WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),0);
+ WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),wrkMast.getStaNo());
wrkMastSta1.setWrkNo(wrkMast.getWrkNo().longValue());
wrkMastSta1.setType(2);
wrkMastSta1.setWrkType(6);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀�
@@ -3147,6 +3016,7 @@
// 鍑哄簱妯″紡
switch (wrkMast.getIoType()) {
case 1:
+ case 202:
ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
break;
case 10:
@@ -3178,7 +3048,7 @@
// 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.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl)));
}
commands.add(ledCommand);
}
@@ -3191,21 +3061,22 @@
}
// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
if (!commands.isEmpty()) {
- if (led.getId() == 7) {
+// if (led.getId() == 7) {
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
log.error("{}鍙稬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))) {
- log.error("{}鍙稬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))) {
+// log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+// continue;
+// } else {
+// ledThread.setLedMk(false);
+// }
+// }
}
@@ -3924,7 +3795,10 @@
int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼)
for (int staNo : staNos){
BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp.getWrkNo()!=0){
+ if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
+ continue;
+ }
+ if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){
continue;
}
WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
@@ -3954,7 +3828,7 @@
if (staProtocol.isAutoing()
&& staProtocol.isLoading()
&& staProtocol.isInEnable()
- && staProtocol.getWorkNo() == 0
+ && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000))
) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
//浠诲姟瀹屾垚
@@ -4048,7 +3922,7 @@
int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼)
for (int staNo : staNos){
BasDevp basDevp = basDevpService.selectById(staNo);
- if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>19999) && basDevp.getWrkNo()!=32222){
+ if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){
continue;
}
WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
@@ -4091,6 +3965,135 @@
}
wrkMast.setWrkSts(55L);
wrkMastMapper.updateById(wrkMast);
+
+ }
+ }
+ }catch (Exception e){
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
+ }
+ }
+
+ /**
+ * 鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�
+ */
+ public synchronized void stackingCompletionDriveTrayOk3() {
+ try {
+ int[] staNos=new int[]{118};
+ for (int staNo : staNos){
+ BasDevp basDevp = basDevpService.selectById(staNo);
+ if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()!=0 || basDevp.getReportSign()!=3){
+ continue;
+ }
+ WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne145(145);
+ if (Cools.isEmpty(wrkMast)){
+ continue;
+ }
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (!staProtocol.isLoading()){
+ log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
+ continue;
+ }
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && !staProtocol.isEmptyMk()
+ ) {
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
+ }
+ wrkMast.setSheetNo("5");
+ wrkMastMapper.updateById(wrkMast);
+ }
+ }
+ }catch (Exception e){
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ log.error("鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�"+e);
+ }
+ }
+
+ /**
+ * 鍏朵粬 ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝� 杩愯閫斾腑鑷姩閬胯绌烘澘
+ */
+ public synchronized void stackingCompletionDriveTray4() {
+ try {
+ int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯)
+ for (int staNo : staNos){
+ BasDevp basDevp = basDevpService.selectById(staNo);
+ BasDevp basDevp135 = basDevpService.selectById(135);
+ if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){
+ continue;
+ }
+ if (basDevp135.getReportSign()!=0){
+ continue;
+ }
+ WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
+ if (Cools.isEmpty(wrkMast131)){
+ continue;
+ }
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol135 = devpThread.getStation().get(135);
+ if (staProtocol135 == null) {
+ continue;
+ } else {
+ staProtocol135 = staProtocol135.clone();
+ }
+ if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0
+ || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){
+ continue;
+ }
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (!staProtocol.isLoading()){
+ continue;
+ }
+// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
+// log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue());
+// }
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && basDevp.getReportSign()==0
+ ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
+ if (true){
+ return;
+ }
+
+ //浠诲姟瀹屾垚
+ boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
+ try{
+ Thread.sleep(100);
+ }catch (Exception e){ }
+ basDevp135.setReportSign(2);
+ basDevpService.updateById(basDevp135);
+ staProtocol135.setWorkNo(32222);
+ staProtocol135.setStaNo(144);
+ devpThread.setPakMk(staProtocol135.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
+ }
+ boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135));
}
}
@@ -4151,11 +4154,29 @@
StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
if (!Cools.isEmpty(wrkMast)){
+ Thread.sleep(200);
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(wrkMast.getStaNo());
if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
continue;
+ }
+ log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
+ try{
+ Thread.sleep(1000);
+ DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
+ log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
+ if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
+ staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
+ staProtocolEnd.setStaNo(wrkMast.getStaNo());
+ if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
+ continue;
+ }
+ log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
+ }
+ }catch (Exception e){
+
}
}
wrkMastSta.setWrkSts(3);
@@ -4188,11 +4209,29 @@
StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
if (!Cools.isEmpty(wrkMast)){
+ Thread.sleep(200);
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(wrkMast.getStaNo());
if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
continue;
+ }
+ log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
+ try{
+ Thread.sleep(1000);
+ DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
+ log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
+ if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
+ staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
+ staProtocolEnd.setStaNo(wrkMast.getStaNo());
+ if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
+ continue;
+ }
+ log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
+ }
+ }catch (Exception e){
+
}
}
wrkMastSta.setWrkSts(3);
@@ -4210,9 +4249,91 @@
}
}
/**
+ * 鍏ュ嚭搴� ===>> 灏忚溅浣滀笟涓嬪彂
+ */
+ public synchronized void rgvIoExecute(Integer sign) {
+ try{
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ // 鑾峰彇灏忚溅淇℃伅
+ boolean signWork = false;
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getLoaded1()==0
+ && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
+ ) {
+ switch (sign){
+ case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
+ signWork = rgvRunWrkMastFullSta();
+ break;
+ case 2://鏀�//鎷嗙洏
+ signWork = rgvRunWrkMastEmptyStaPut();
+ break;
+ case 3://婊℃斁
+ signWork = rgvRunWrkMastEmptyStaPutFull();
+ break;
+ case 4://鍙栧彔鐩�
+ signWork = rgvRunWrkMastEmptyStaTake();
+ break;
+ case 5:////婊″彇
+ signWork = rgvRunWrkMastEmptyStaTakeFull();
+ break;
+ case 6:////鎻愬崌
+// signWork = qwe();
+ break;
+ default:
+// signWork = rgvRunWrkMastEmptyStaAvoidance();//閬胯
+ break;
+ }
+ }
+ for (int signCount = 1;!signWork && signCount<8;signCount++){
+ switch (signCount){
+ case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
+ signWork = rgvRunWrkMastFullSta();
+ break;
+ case 2://鏀�//鎷嗙洏
+ signWork = rgvRunWrkMastEmptyStaPut();
+ break;
+ case 3://婊℃斁
+ signWork = rgvRunWrkMastEmptyStaPutFull();
+ break;
+ case 4://鍙栧彔鐩�
+ signWork = rgvRunWrkMastEmptyStaTake();
+ break;
+ case 5:////婊″彇
+ signWork = rgvRunWrkMastEmptyStaTakeFull();
+ break;
+ case 6:////鎻愬崌
+// signWork = rgvRunWrkMastEmptyStaPut();
+ break;
+ default:
+// signWork = rgvRunWrkMastEmptyStaAvoidance();//閬胯
+ break;
+ }
+ }
+
+ }
+ }catch (Exception e){
+ log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e);
+ }
+ }
+ /**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
- public synchronized void rgvRunWrkMastFullSta() {
+ public synchronized boolean rgvRunWrkMastFullSta() {
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4228,6 +4349,8 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getLoaded1()==0
&& rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
@@ -4244,6 +4367,10 @@
if (wrkMastSta.getType()!=1 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
continue;
}
+ BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ continue;
+ }
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
if (sign){
boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd());
@@ -4254,7 +4381,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ return true;
}else {
log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -4269,11 +4396,12 @@
log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
log.error("3875琛�"+e);
}
+ return false;
}
/**
* 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏
*/
- public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
+ public synchronized boolean rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4289,9 +4417,11 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && (rgvProtocol.getLoaded2()==3 || rgvProtocol.getLoaded2()==1 )////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛�3 1銆�2灞傞兘鏈夌墿
+ && (rgvProtocol.getLoaded2()==3 || rgvProtocol.getLoaded2()==1 || rgvProtocol.getLoaded2()==4)////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗�() 锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -4307,6 +4437,10 @@
}
boolean sign = false;
if ( wrkMastSta.getStaEnd()!=0){//鏀�
+ BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ continue;
+ }
sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
}else {
continue;
@@ -4320,7 +4454,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ return true;
}else {
log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -4335,12 +4469,13 @@
log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3933琛�"+e);
}
+ return false;
}
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
- public synchronized void rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
+ public synchronized boolean rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4356,8 +4491,11 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
+ && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -4372,7 +4510,11 @@
continue;
}
boolean sign = false;
- if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//婊℃斁
+ if ( wrkMastSta.getStaEnd()!=0){//婊℃斁
+ BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ continue;
+ }
sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
@@ -4386,7 +4528,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ return true;
}else {
log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -4401,9 +4543,10 @@
log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3933琛�"+e);
}
+ return false;
}
- public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙犵洏
+ public synchronized boolean rgvRunWrkMastEmptyStaTake() {//鍙犵洏
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4419,9 +4562,11 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && (rgvProtocol.getLoaded2()==0 || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ && (rgvProtocol.getLoaded2()==0 || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -4437,6 +4582,10 @@
}
boolean sign = false;
if ( wrkMastSta.getStaStart()!=0){//鍙�
+ BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
+ if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
+ continue;
+ }
sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
}else {
continue;
@@ -4450,7 +4599,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ return true;
}else {
log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -4465,9 +4614,10 @@
log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3989琛�"+e);
}
+ return false;
}
- public synchronized void rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
+ public synchronized boolean rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4483,8 +4633,11 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
+ && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -4499,7 +4652,11 @@
continue;
}
boolean sign = false;
- if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//婊″彇
+ if (wrkMastSta.getStaStart()!=0){//婊″彇
+ BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
+ if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
+ continue;
+ }
sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
@@ -4513,7 +4670,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ return true;
}else {
log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -4528,6 +4685,7 @@
log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3989琛�"+e);
}
+ return false;
}
/*
@@ -4536,6 +4694,13 @@
public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
try{
Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
+ if (integer==0){
+ return;
+ }
+ //鏌ヨ鏄惁闇�瑕侀伩璁�
+ //鏈畬鎴�
+ Thread.sleep(1000);
+ integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
if (integer==0){
return;
}
@@ -4557,6 +4722,8 @@
&& rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
&& rgvProtocol.getTaskNo1()==0
&& rgvProtocol.getTaskNo2()==0
+ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+ && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
@@ -4601,7 +4768,7 @@
&& rgvProtocol.getTaskNo1()==0
&& rgvProtocol.getTaskNo2()==0
) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
}
--
Gitblit v1.9.1