From b7cbb2a30125285eade6a26c9f3d39363c65481c Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 18 九月 2023 15:19:19 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/protocol/SteProtocol.java | 427 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 396 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java index 7bd122b..5ed0d12 100644 --- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java @@ -1,12 +1,20 @@ package com.zy.core.model.protocol; -import com.zy.asrs.entity.BasCrnp; -import com.zy.core.enums.*; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.asrs.entity.BasSte; +import com.zy.asrs.service.BasSteService; +import com.zy.core.News; +import com.zy.core.enums.SteHisTaskStatusType; +import com.zy.core.enums.SteLocaType; +import com.zy.core.enums.SteStatusType; import lombok.Data; +import lombok.extern.slf4j.Slf4j; /** * Created by vincent on 2020/8/7 */ +@Slf4j @Data public class SteProtocol { @@ -22,51 +30,74 @@ public Short mode; /** - * 鍫嗗灈鏈哄綋鍓嶇姸鎬� - * 0锛氱┖闂诧紝鏃犱换鍔� - * 1锛氬彇璐у畾浣嶄腑 - * 2锛氬彇璐т腑 - * 3锛氬彇璐у畬鎴愶紝鏀捐揣瀹氫綅涓� - * 4锛氭斁璐т腑 - * 5锛氬洖鍘熺偣涓� - * 6锛氬弽鍘熺偣 - * 7锛氬簱浣嶇Щ浣� - * 90锛氫换鍔″畬鎴愮瓑寰匴CS纭 - * 99锛氭姤璀� + IDLE(0, "绌洪棽"), + MOVING(1, "浣滀笟涓�"), + SOS(2, "鎶ヨ"), + WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"), */ public Short status; - /** - * 鐘舵�佹灇涓� - */ public SteStatusType statusType; + + /** + * 浠诲姟鍙� + */ + public Short taskNo = 0; + + /** + * 姝e湪鎵ц浠诲姟 + */ + public Boolean execute; + + /** + * 浠诲姟瀹屾垚锛岀瓑寰匴CS纭 + */ + public Boolean waiting; + /** * 寮傚父鐮�1 */ - public Integer alarm; + public Short alarm; /** * 寮傚父鐮�2 */ - public Integer alarm0; + public Short alarm0; /** * 鐢垫睜鐢甸噺 */ - public Short charge; + public Float charge = 0.0F; + + public void setCharge(Float charge) { + if (charge >= 0) { + this.charge = charge; + } + } /** - * 鐢垫睜棣堢數 0锛屾甯革紝1棣堢數 + * 婊$數 + */ + public Boolean fullCharge; + + /** + * 浣庣數閲� + */ + public Boolean lowCharge; + + /** + * 鐢垫睜棣堢數 0锛屾瑺鐢碉紝1浣庣數 2婊$數 */ public Short feed; - /** * 褰撳墠浣嶇疆 1锛岃繎鐐癸紝2杩滅偣锛�3A鐐癸紝4B鐐� */ public Short loca; + + public SteLocaType locaType; /** * 杩戠偣璺濈 @@ -76,7 +107,7 @@ /** * 褰撳墠閫熷害 */ - public Double speed; + public Double speed = 0.0D; /** * 楂樹綆浣� 0锛屼綆浣嶏紝1楂樹綅 @@ -92,11 +123,6 @@ * 鍦ㄨ建閬撲笂 0涓嶅湪锛�1鍦� */ public Short track; - - /** - * 浠诲姟鍙� - */ - public Integer taskNo = 0; /** * 浠诲姟绫诲瀷 @@ -125,8 +151,11 @@ /** * 杩囪处鎸囦护鐘舵�� + * 0鍒濆 1鎵ц瀹屾垚 2鍒犻櫎 */ public Short hisTaskStatus; + + public SteHisTaskStatusType hisTaskStatusType; /** * 鐩樼偣鏁伴噺 @@ -163,6 +192,269 @@ */ public Short crnAllowRun; + /** + * 鍏呯數鐘舵�� 1锛氬湪鍏呯數锛�0锛氫笉鍦ㄥ厖鐢� + */ + private Short chargeStatus; + + // 鍏ュ簱鍙栫┖ + private Boolean inEmpty; + + // 鍑哄簱鍙栫┖ + private Boolean outEmpty; + + // 绌挎杞﹀紓甯� ------------------------------------------------------------------------ + + /** + * 0.鍗囬檷瓒呮椂鎶ヨ + */ + private boolean liftErr; + + /** + * 2.鍏ュ簱鍙栫┖鎶ヨ + */ + private boolean inFetchErr; + + /** + * 3.鍑哄簱鍙栫┖鎶ヨ + */ + private boolean outFetchErr; + + /** + * 4.闃叉挒淇濇姢 + */ + private boolean antiErr; + + /** + * 5.鍗囬檷鎺ヨ繎寮�鍏虫晠闅� + */ + private boolean liftSwitchErr; + + /** + * 6.杞ㄩ亾妫�娴嬫姤璀� + */ + private boolean trackErr; + + /** + * 7.璁惧杩愯瓒呮椂鎶ヨ + */ + private boolean timeoutErr; + + /** + * 8.閫氫俊閿欒鎶ヨ + */ + private boolean connectErr; + + /** + * 9.璁惧鎬ュ仠 + */ + private boolean emergencyErr; + + /** + * 10.浠诲姟绫诲瀷缂哄け + */ + private boolean taskTypeErr; + + /** + * 11.浠诲姟鍙风己澶� + */ + private boolean taskNoErr; + + /** + * 12.杩愯涓湁鏂颁换鍔� + */ + private boolean newTaskErr; + + /** + * 13.鏁呴殰涓湁浠诲姟 + */ + private boolean errTaskErr; + + /** + * 14.杩愯涓仠姝� + */ + private boolean stopErr; + + /** + * 15.鑴辨満妯″紡涓嬫湁浠诲姟 + */ + private boolean offlineTaskErr; + + /** + * 16.鏉′欢鏈弧瓒冲惎鍔ㄤ换鍔� + */ + private boolean startTaskErr; + + /** + * 17.浣庣數鍘嬫椂鏈変换鍔� + */ + private boolean voltageTaskErr; + + /** + * 63.璁惧鏁呴殰鏍囧織浣� + */ + private boolean devpErr; + // 绌挎杞﹀紓甯� ------------------------------------------------------------------------ + + // 绌挎杞︽彁绀轰俊鎭� ------------------------------------------------------------------------ + /** + * 64.鑱旀満鐘舵�� + */ + private boolean online; + + /** + * 65.涓嶅湪杞ㄩ亾涓� + */ + private boolean notOnTrack; + + /** + * 66.浣庣數閲忔彁閱� + */ + private boolean lowVoltage; + + /** + * 67.浜忕數涓� + */ + private boolean electricityLoss; + + /** + * 68.寮哄埗琛岃蛋鍚姩 + */ + private boolean forcedTravel; + + /** + * 69.婕旂ず妯″紡寮�鍚� + */ + private boolean demoMode; + + /** + * 70.鍏呯數鍒峰凡鎺ラ�� + */ + private boolean brushConnect; + + /** + * 71.浠诲姟涓姝㈡墜鍔� + */ + private boolean taskManualForbid; + + /** + * 72.鑱旀満涓姝㈡墜鍔� + */ + private boolean onlineManualForbid; + + /** + * 73.璁惧鎬ュ仠涓� + */ + private boolean devpEmergency; + + /** + * 74.浠诲姟涓柇涓� + */ + private boolean taskInterrupt; + + /** + * 75.浠诲姟宸叉竻闄� + */ + private boolean taskClear; + + /** + * 76.浠诲姟纭宸茶秴鏃� + */ + private boolean taskConfirmTimeout; + + /** + * 77.鍏呯數涓湁浠诲姟 + */ + private boolean taskWithCharge; + + // 浠诲姟淇℃伅 --------------------------------------------------------- + /** + * 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; + + // 鐘舵�佷俊鎭� --------------------------------------------------------- + /** + * 112. 鑱旀満妯″紡 + */ + private boolean autoMode; + + /** + * 113. 鐢靛帇杩囦綆 + */ + private boolean voltageLow; + + public void setStatus(Short status){ this.status = status; this.statusType = SteStatusType.get(status); @@ -173,6 +465,26 @@ this.status = SteStatusType.get(type).id.shortValue(); } + public void setLoca(Short loca){ + this.loca = loca; + this.locaType = SteLocaType.get(loca); + } + + public void setLoca(SteLocaType type){ + this.locaType = type; + this.loca = SteLocaType.get(type).id.shortValue(); + } + + public void setHisTaskStatus(Short hisTaskStatus){ + this.hisTaskStatus = hisTaskStatus; + this.hisTaskStatusType = SteHisTaskStatusType.get(hisTaskStatus); + } + + public void setHisTaskStatus(SteHisTaskStatusType type){ + this.hisTaskStatusType = type; + this.hisTaskStatus = SteHisTaskStatusType.get(type).id.shortValue(); + } + /** * 鏈�杩戜竴娆″叆鍑哄簱绫诲瀷 * I:鍏ュ簱 @@ -180,12 +492,65 @@ */ private String lastIo = "I"; + private String pakMk = "-"; - public BasCrnp toSqlModel(BasCrnp basCrnp){ + public BasSte toSqlModel(BasSte basSte){ if (alarm!=null) { - basCrnp.setCrnErr(alarm.longValue()); + basSte.setSteErr(alarm.longValue()); } - basCrnp.setWrkNo(taskNo); - return basCrnp; + basSte.setWrkNo(taskNo.intValue()); +// if (basSte.getPakMk().equals("N")) { +// if (!Cools.isEmpty(row)) { +// basSte.setRow(row.intValue()); +// } +// if (!Cools.isEmpty(bay)) { +// basSte.setBay(bay.intValue()); +// } +// if (!Cools.isEmpty(lev)) { +// basSte.setLev(lev.intValue()); +// } +// } + return basSte; } + + // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵�� + public Boolean isIdle() { + boolean res = this.statusType.equals(SteStatusType.IDLE) + && this.mode == 1 + && this.pakMk.equals("N") + && !isAlarm() + && this.chargeStatus == 0 + && isEnable() + ; + if (!res) { + return res; + } else { + // 鐢甸噺 + try { + String chargeLine = SpringUtils.getBean(BasSteService.class).selectById(this.steNo).getChargeLine(); + return charge > Float.parseFloat(chargeLine); + } catch (Exception e) { + News.error("fail", e); + return false; + } + } + } + + // 灏忚溅鐢甸噺 + public Float isIdle2() { + return this.charge; + } + + // 鏄惁澶勪簬鎶ヨ鐘舵�� + public Boolean isAlarm() { + return this.alarm > 1; + } + + public Boolean isEnable() { + if (Cools.isEmpty(row, bay, lev)) { + return false; + } + return row > 0 && bay > 0 && lev > 0; + } + } -- Gitblit v1.9.1