From 74e0eb7a7e84b5006903e79554c007d9d5fbbcbc Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 05 十月 2023 17:04:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java | 242 ++++++++++++++++++++++++++++++++----------------
1 files changed, 162 insertions(+), 80 deletions(-)
diff --git a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
index 401c763..bcbc38e 100644
--- a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
@@ -1,5 +1,15 @@
package com.zy.core.model.protocol;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.BasShuttle;
+import com.zy.asrs.entity.BasShuttleErr;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.BasShuttleErrService;
+import com.zy.asrs.service.BasShuttleService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.core.News;
import com.zy.core.enums.ShuttleErrorCodeType;
import com.zy.core.enums.ShuttleProtocolStatusType;
import com.zy.core.enums.ShuttleStatusType;
@@ -75,7 +85,7 @@
/**
* 鐢垫睜娓╁害
*/
- private Short batteryTemp;
+ private Integer batteryTemp;
/**
* 閿欒缂栧彿
@@ -93,12 +103,32 @@
private Short plcOutputStatusIO;
/**
+ * Plc杈撳嚭鐘舵�両O-椤跺崌浣�
+ */
+ private Boolean plcOutputLift;
+
+ /**
+ * Plc杈撳嚭鐘舵�両O-鎹㈠悜浣�
+ */
+ private Boolean plcOutputTransfer;
+
+ /**
+ * Plc杈撳嚭鐘舵�両O-鎶遍椄浣�
+ */
+ private Boolean plcOutputBrake;
+
+ /**
+ * Plc杈撳嚭鐘舵�両O-鍏呯數浣�
+ */
+ private Boolean plcOutputCharge;
+
+ /**
* 閿欒淇℃伅鐮�
*/
private Short statusErrorCode;
/**
- * PLC杈撳叆鐘舵��
+ * PLC杈撳叆鐘舵�侊紝鐩墠鍙湁涓�涓姸鎬佹湁鏁堟灉锛屾墭鐩橀浄杈�1鏈夎揣锛�0鏃犺揣
*/
private Short plcInputStatus;
@@ -120,7 +150,7 @@
/**
* 褰撳墠鐨勭數鍘嬪��
*/
- private Short currentVoltage;
+ private Integer currentVoltage;
/**
* 褰撳墠鐨勬ā鎷熼噺鍊�
@@ -152,85 +182,9 @@
*/
private Boolean pakMk = true;
- // 浠诲姟淇℃伅 ---------------------------------------------------------
- /**
- * 96.鍏ュ簱浠诲姟涓�
- */
- private boolean pakInTask;
-
- /**
- * 97. 鍑哄簱浠诲姟涓�
- */
- private boolean pakOutTask;
-
- /**
- * 98. 绉诲簱浠诲姟涓�
- */
- private boolean pakMoveTask;
-
- /**
- * 99. 鍥炲師鐐逛换鍔′腑
- */
- private boolean goHpTask;
-
- /**
- * 100. 鍘诲弽鍘熺偣浠诲姟涓�
- */
- private boolean goOHpTask;
-
- /**
- * 101. 鍘诲師鐐归伩璁╀綅
- */
- private boolean goHpAvoid;
-
- /**
- * 102. 鍘诲弽鍘熺偣閬胯浣�
- */
- private boolean goOHpAvoid;
-
- /**
- * 104. 鍏ュ簱鍙栫┖缁撴潫
- */
- private boolean pakInEmpty;
-
- /**
- * 105. 鍏ュ簱姝e父缁撴潫
- */
- private boolean pakInFinish;
-
- /**
- * 106. 鍑哄簱鍙栫┖缁撴潫
- */
- private boolean pakOutEmpty;
-
- /**
- * 107. 鍑哄簱姝e父缁撴潫
- */
- private boolean pakOutFinish;
-
- /**
- * 108. 鍘诲師鐐归伩璁╁畬鎴�
- */
- private boolean goHpAvoidFinish;
-
- /**
- * 109. 鍘诲弽鍘熺偣閬胯瀹屾垚
- */
- private boolean goOHpAvoidFinish;
-
- /**
- * 110. 鍘诲師鐐归伩璁╁畬鎴�
- */
- private boolean goHpAvoidErr;
-
- /**
- * 111. 鍘诲弽鍘熺偣閬胯瀹屾垚
- */
- private boolean goOHpAvoidErr;
-
public void setBusyStatus(Short status) {
this.busyStatus = status;
- this.busyStatusType = ShuttleStatusType.get(status);
+ this.busyStatusType = ShuttleStatusType.get(status.intValue());
}
public void setBusyStatus(ShuttleStatusType type) {
@@ -280,4 +234,132 @@
this.errorCodeType = type;
}
+ // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
+ public Boolean isIdle() {
+ boolean res = this.busyStatusType.equals(ShuttleStatusType.IDLE)
+ && this.pakMk.equals(true)
+ && this.errorCodeType.equals(ShuttleErrorCodeType.NORMAL)
+ && this.taskNo == 0
+ && this.protocolStatus.intValue() == ShuttleProtocolStatusType.IDLE.id
+ ;
+ if (!res) {
+ return res;
+ } else {
+ // 鐢甸噺
+ try {
+ Integer chargeLine = SpringUtils.getBean(BasShuttleService.class).selectById(this.shuttleNo).getChargeLine();
+ if (chargeLine == null) {
+ return false;
+ }
+ return this.getBatteryPower$() >= chargeLine;
+ } catch (Exception e) {
+ News.error("fail", e);
+ return false;
+ }
+ }
+ }
+
+ // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵�侊紝浼犲叆鐨則askNo鍜屽綋鍓峵askNo鐩稿悓鏃跺厑璁告斁琛�
+ public Boolean isIdle(Short taskNo) {
+ boolean res = this.busyStatusType.equals(ShuttleStatusType.IDLE)
+ && this.pakMk.equals(true)
+ && this.errorCodeType.equals(ShuttleErrorCodeType.NORMAL)
+ && (this.taskNo == 0 || this.taskNo.intValue() == taskNo.intValue())
+ && this.protocolStatus.intValue() == ShuttleProtocolStatusType.IDLE.id
+ ;
+ if (!res) {
+ return res;
+ } else {
+ // 鐢甸噺
+ try {
+ Integer chargeLine = SpringUtils.getBean(BasShuttleService.class).selectById(this.shuttleNo).getChargeLine();
+ return this.getBatteryPower$() > chargeLine;
+ } catch (Exception e) {
+ News.error("fail", e);
+ return false;
+ }
+ }
+ }
+
+ // 鏄惁婊¤冻鍏呯數鐘舵��
+ public Boolean isRequireCharge() {
+ if (this.busyStatusType == null || this.pakMk == null || this.errorCodeType == null || this.taskNo == null) {
+ return false;
+ }
+
+ boolean res = this.busyStatusType.id.intValue() == ShuttleStatusType.IDLE.id.intValue()
+ && this.pakMk
+ && this.errorCodeType.id.intValue() == ShuttleErrorCodeType.NORMAL.id.intValue()
+ && this.taskNo == 0
+ && this.protocolStatusType.id == ShuttleProtocolStatusType.IDLE.id
+ ;
+ if (!res) {
+ return res;
+ } else {
+ // 鐢甸噺灏忎簬闃堝�兼垨鐢靛帇灏忎簬48V锛岄渶瑕佽繘琛屽厖鐢�
+ try {
+ BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class);
+ if (shuttleService == null) {
+ return false;
+
+ }
+ BasShuttle basShuttle = shuttleService.selectById(this.shuttleNo);
+ if (basShuttle == null) {
+ return false;
+ }
+ Integer chargeLine = basShuttle.getChargeLine();
+ if (chargeLine == null) {
+ return false;
+ }
+ return this.getBatteryPower$() < chargeLine || this.currentVoltage < 48000;
+ } catch (Exception e) {
+ News.error("fail", e);
+ return false;
+ }
+ }
+ }
+
+ //閫氳繃褰撳墠浜岀淮鐮佽幏鍙栧綋鍓嶅簱浣嶅彿
+ public String getCurrentLocNo() {
+ LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+ if (locMastService == null) {
+ return null;
+ }
+ //婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
+ LocMast currentLocMast = locMastService.queryByQrCode(this.currentCode.toString());
+ if (currentLocMast == null) {
+ return null;
+ }
+ return currentLocMast.getLocNo();
+ }
+
+ public String getStatusErrorCode$() {
+ BasShuttleErrService basShuttleErrService = SpringUtils.getBean(BasShuttleErrService.class);
+ BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(this.statusErrorCode.intValue());
+ if (basShuttleErr == null) {
+ return this.statusErrorCode.toString();
+ }
+ return basShuttleErr.getErrName();
+ }
+
+ public void setCurrentCode(Short currentCode) {
+ this.currentCode = currentCode;
+ LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+ if (locMastService != null) {
+ LocMast locMast = locMastService.queryByQrCode(currentCode.toString());
+ if (locMast == null) {
+ //鏌ヤ笉鍒板簱浣嶅彿锛屾煡璇㈡槸鍚︿负绔欑偣
+ BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ if (basDevpService != null) {
+ BasDevp basDevp = basDevpService.queryByLocNo(currentCode.toString());
+ if (basDevp != null) {
+ this.locNo = basDevp.getLocNo();
+ }
+ }
+ }else{
+ this.locNo = locMast.getLocNo();
+ }
+ }
+ }
+
}
--
Gitblit v1.9.1