From 1f62eee8e144988e42f3d0ba2e926d056c01f929 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 28 六月 2023 10:26:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 0 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 12aca3a..a0aefbe 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -513,6 +513,95 @@
}
/**
+ * 缁戝畾灏忚溅鏂规硶
+ */
+ public synchronized void rgvBindSte() {
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛�
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
+ && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
+ ) {
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (rgvProtocol.getLastIo().equals("I")) {
+ if (basRgv.getInEnable().equals("Y")) {
+ this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱
+ rgvProtocol.setLastIo("O");
+ } else if (basRgv.getOutEnable().equals("Y")) {
+ this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱
+ rgvProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (rgvProtocol.getLastIo().equals("O")) {
+ if (basRgv.getOutEnable().equals("Y")) {
+ this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱
+ rgvProtocol.setLastIo("I");
+ } else if (basRgv.getInEnable().equals("Y")) {
+ this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱
+ rgvProtocol.setLastIo("O");
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 缁戝畾灏忚溅鍏ュ簱鏂规硶
+ */
+ public synchronized void rgvBindSteIn(RgvSlave slave, RgvProtocol rgvProtocol) {
+ for (RgvSlave.RgvStn rgvStn: slave.getRgvInSStn()){
+ Integer staNo = rgvStn.getStaNo();
+ BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
+ if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
+ continue;
+ }else {
+ WrkMast wrkMast = wrkMastMapper.selectRgvInSteWrkNo(basDevp.getWrkNo());
+ if (!Cools.isEmpty(wrkMast)){
+ wrkMast.setRgvNo(wrkMast.getCrnNo()>3 ? 2 : 1);
+ wrkMast.setAppeTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast)==0){
+ log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 缁戝畾灏忚溅鍑哄簱鏂规硶
+ */
+ public synchronized void rgvBindSteOut(RgvSlave slave, RgvProtocol rgvProtocol) {
+ for (RgvSlave.RgvStn rgvStn: slave.getRgvOutSStn()){
+ BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId());
+ if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
+ continue;
+ }else {
+ WrkMast wrkMast = wrkMastMapper.selectRgvOutSteWrkNo(basDevp.getWrkNo());
+ if (!Cools.isEmpty(wrkMast)){
+ wrkMast.setRgvNo(rgvStn.getStaNo());
+ wrkMast.setAppeTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast)==0){
+ log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+ }
+ /**
* 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙�
*/
public synchronized void rgvIoExecute() {
@@ -1243,6 +1332,9 @@
* 鍏ュ簱 ===>> RGV鍏ュ簱绔欏埌绔�
*/
public synchronized void rgvInStn(RgvSlave slave, RgvProtocol rgvProtocol) {
+ WrkMast wrkMast = wrkMastMapper.selectRgvInSteNo(slave.getId());
+
+
//鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
List<WrkMast> wrkMastTask = getRgvInTask(slave);
if(wrkMastTask.size() <= 0){
--
Gitblit v1.9.1