From 191f08b7a74c461d1914652aed737888967a69f1 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期四, 19 十月 2023 16:51:38 +0800 Subject: [PATCH] #地图增加分布式锁 --- src/main/java/com/zy/core/model/protocol/SteProtocol.java | 332 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 330 insertions(+), 2 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 90f2103..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,14 +1,20 @@ package com.zy.core.model.protocol; +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 { @@ -36,7 +42,7 @@ /** * 浠诲姟鍙� */ - public Integer taskNo = 0; + public Short taskNo = 0; /** * 姝e湪鎵ц浠诲姟 @@ -64,6 +70,12 @@ * 鐢垫睜鐢甸噺 */ public Float charge = 0.0F; + + public void setCharge(Float charge) { + if (charge >= 0) { + this.charge = charge; + } + } /** * 婊$數 @@ -180,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); @@ -217,12 +492,65 @@ */ private String lastIo = "I"; + private String pakMk = "-"; public BasSte toSqlModel(BasSte basSte){ if (alarm!=null) { basSte.setSteErr(alarm.longValue()); } - basSte.setWrkNo(taskNo); + 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