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/NyShuttleProtocol.java | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 163 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/core/model/protocol/NyShuttleProtocol.java b/src/main/java/com/zy/core/model/protocol/NyShuttleProtocol.java
index 7169ca8..ac78e39 100644
--- a/src/main/java/com/zy/core/model/protocol/NyShuttleProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/NyShuttleProtocol.java
@@ -2,17 +2,18 @@
import com.alibaba.fastjson.JSON;
import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasShuttle;
+import com.zy.asrs.entity.BasShuttleErr;
+import com.zy.asrs.service.BasShuttleErrService;
import com.zy.asrs.service.BasShuttleService;
+import com.zy.asrs.utils.Utils;
import com.zy.common.utils.NavigatePositionConvert;
import com.zy.core.News;
-import com.zy.core.enums.ShuttleErrorCodeType;
import com.zy.core.enums.ShuttleProtocolStatusType;
import com.zy.core.enums.ShuttleStatusType;
import com.zy.core.model.command.ShuttleAssignCommand;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-
-import java.util.List;
/**
* 鐗涚溂鍥涘悜绌挎杞�
@@ -55,6 +56,11 @@
* 鐩爣搴撲綅
*/
private String locNo;
+
+ /**
+ * 灏忚溅褰撳墠搴撲綅鍙�
+ */
+ private String currentLocNo;
/**
* 浣滀笟鏍囪
@@ -157,6 +163,11 @@
private NyShuttlePointClass coord;
/**
+ * WCS搴撲綅xyz
+ */
+ private NyShuttlePointClass wcsPoint;
+
+ /**
* 浠诲姟鐩殑搴撲綅xyztaskId(姝e湪鍔ㄤ綔鐨勪换鍔D)lastTaskId(鏈�鍚庝竴涓畬鎴愮殑浠诲姟ID)recentTaskId(鏀跺埌鐨勬渶鍚庝竴涓换鍔D)
*/
private TaskClass task;
@@ -174,7 +185,7 @@
/**
* 鏁呴殰鐮�
*/
- private List<Integer> errCode;
+ private Integer errCode;
/**
* mileage鎬婚噷绋嬫暟(绫�)锛宭iftNumber椤跺崌鎬绘暟dropNumber涓嬮檷鎬绘暟reversingX鎹鎬绘暟reversingY鎹鎬绘暟
@@ -185,6 +196,53 @@
* 闈炶嚜鍔ㄧ姸鎬佹椂闂磋鏃�(S)
*/
private Integer errTime;
+
+ /**
+ * 鐙崰浠ょ墝
+ * 鏈浠诲姟鍗犳嵁锛屼护鐗屼负0
+ * 琚换鍔″崰鎹紝灏嗕换鍔″彿璧嬪�肩粰浠ょ墝
+ */
+ private Integer token = 0;
+
+ /**
+ * 璺戝簱鐘舵��
+ */
+ private Boolean moveLoc = false;
+
+ /**
+ * 璺戝簱绫诲瀷锛�0:璺戣建閬擄紝1锛氳窇搴撲綅
+ */
+ private Integer moveType = 0;
+
+ /**
+ * 璺戝簱X璧风偣
+ */
+ private Integer xStart = 0;
+
+ /**
+ * 璺戝簱X缁堢偣
+ */
+ private Integer xTarget = 0;
+
+ /**
+ * 璺戝簱X褰撳墠鐐逛綅
+ */
+ private Integer xCurrent = 0;
+
+ /**
+ * 璺戝簱Y璧风偣
+ */
+ private Integer yStart = 0;
+
+ /**
+ * 璺戝簱Y缁堢偣
+ */
+ private Integer yTarget = 0;
+
+ /**
+ * 璺戝簱Y褰撳墠鐐逛綅
+ */
+ private Integer yCurrent = 0;
//鎬婚噷绋嬫暟
@Data
@@ -216,7 +274,14 @@
if (this.getFree() == null) {
return "";
}
- return this.getFree() == 1 ? "绌洪棽" : "杩愯涓�";
+ return this.getFree() == 0 ? "杩愯涓�" : "绌洪棽";
+ }
+
+ public String getWorkingMode$() {
+ if (this.getWorkingMode() == null) {
+ return "";
+ }
+ return this.getWorkingMode() == 0 ? "鎵嬪姩" : "鑷姩";
}
public String getLoadState$() {
@@ -245,7 +310,7 @@
return "";
}
- switch (this.getRunDir()) {
+ switch (this.getLiftPosition()) {
case 0:
return "鏈煡";
case 1:
@@ -371,7 +436,14 @@
if (this.getPoint() == null) {
return "";
}
- return NavigatePositionConvert.xyzToLocNo(this.getPoint().getX(), this.getPoint().getY(), this.getPoint().getZ());
+ return NavigatePositionConvert.nyXyzToLocNo(this.getPoint().getX(), this.getPoint().getY(), this.getPoint().getZ());
+ }
+
+ public String getPoint$$() {
+ if (this.getPoint() == null) {
+ return "";
+ }
+ return JSON.toJSONString(this.getPoint());
}
public String getCoord$() {
@@ -381,10 +453,33 @@
return JSON.toJSONString(this.getCoord());
}
+ public String getErrCode$() {
+ if (this.getErrCode() == null) {
+ return "";
+ }
+ BasShuttleErrService basShuttleErrService = SpringUtils.getBean(BasShuttleErrService.class);
+ BasShuttleErr basShuttleErr = basShuttleErrService.selectById(this.getErrCode());
+ if (basShuttleErr == null) {
+ return this.getErrCode().toString();
+ }
+ return basShuttleErr.getErrName();
+ }
+
+ public void setPoint(NyShuttlePointClass point) {
+ String locNo = NavigatePositionConvert.nyXyzToLocNo(point.getX(), point.getY(), point.getZ());
+ this.point = point;
+ this.currentLocNo = locNo;
+ NyShuttlePointClass wcsPoint = new NyShuttlePointClass();
+ wcsPoint.setX(Utils.getRow(locNo));
+ wcsPoint.setY(Utils.getBay(locNo));
+ wcsPoint.setZ(Utils.getLev(locNo));
+ this.wcsPoint = wcsPoint;
+ }
+
// 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
public Boolean isIdle() {
boolean res = this.free == ShuttleStatusType.IDLE.id
- && this.pakMk.equals(true)
+ && !this.pakMk
&& this.errState == 0
&& this.taskNo == 0
&& this.protocolStatus == ShuttleProtocolStatusType.IDLE.id
@@ -409,7 +504,7 @@
// 鏄惁澶勪簬绌洪棽寰呭懡鐘舵�侊紝浼犲叆鐨則askNo鍜屽綋鍓峵askNo鐩稿悓鏃跺厑璁告斁琛�
public Boolean isIdle(int taskNo) {
boolean res = this.free == ShuttleStatusType.IDLE.id
- && this.pakMk.equals(true)
+ && !this.pakMk
&& this.errState == 0
&& (this.taskNo == 0 || this.taskNo == taskNo)
&& this.protocolStatus.intValue() == ShuttleProtocolStatusType.IDLE.id
@@ -428,4 +523,63 @@
}
}
+ // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
+ public Boolean isIdleNoCharge() {
+ boolean res = this.free == ShuttleStatusType.IDLE.id
+ && !this.pakMk
+ && this.errState == 0
+ && this.taskNo == 0
+ && this.protocolStatus == ShuttleProtocolStatusType.IDLE.id
+ ;
+ return res;
+ }
+
+ // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵��
+ public Boolean isIdleNoCharge(int taskNo) {
+ boolean res = this.free == ShuttleStatusType.IDLE.id
+ && !this.pakMk
+ && this.errState == 0
+ && (this.taskNo == 0 || this.taskNo == taskNo)
+ && this.protocolStatus == ShuttleProtocolStatusType.IDLE.id
+ ;
+ return res;
+ }
+
+ // 鏄惁婊¤冻鍏呯數鐘舵��
+ public Boolean isRequireCharge() {
+ if (this.free == null || this.pakMk == null || this.errState == null || this.taskNo == null) {
+ return false;
+ }
+
+ boolean res = this.free == ShuttleStatusType.IDLE.id
+ && !this.pakMk
+ && this.errState == 0
+ && this.taskNo == 0
+ && this.protocolStatusType.id == ShuttleProtocolStatusType.IDLE.id
+ ;
+ if (!res) {
+ return res;
+ } else {
+ // 鐢甸噺灏忎簬闃堝�兼垨鏈�浣庣數鑺數鍘嬪皬浜�2900mv锛岄渶瑕佽繘琛屽厖鐢�
+ 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.getPowerPercent() < chargeLine;
+ } catch (Exception e) {
+ News.error("fail", e);
+ return false;
+ }
+ }
+ }
}
--
Gitblit v1.9.1