From 178bace75121ea2e460dbf4ff1c2f74ffdbc34ed Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 22 三月 2023 11:12:29 +0800
Subject: [PATCH] 主控图地图绘制优化
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 175 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 129 insertions(+), 46 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 012062f..0380f0b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -115,57 +115,51 @@
staProtocol = staProtocol.clone();
}
Short workNo = staProtocol.getWorkNo();
+ // 灏哄妫�娴嬪紓甯�
+ boolean back = false;
+ String errMsg = "寮傚父锛�";
+ if (staProtocol.isFrontErr()) {
+ errMsg = errMsg+"鍓嶈秴闄愶紱";
+ back = true;
+ }
+ if (staProtocol.isBackErr()) {
+ errMsg = errMsg+"鍚庤秴闄�";
+ back = true;
+ }
+ if (staProtocol.isHighErr()) {
+ errMsg = errMsg+"楂樿秴闄�";
+ back = true;
+ }
+ if (staProtocol.isLeftErr()) {
+ errMsg = errMsg+"宸﹁秴闄�";
+ back = true;
+ }
+ if (staProtocol.isRightErr()) {
+ errMsg = errMsg+"鍙宠秴闄�";
+ back = true;
+ }
+ if (staProtocol.isWeightErr()) {
+ errMsg = errMsg+"瓒呴噸";
+ back = true;
+ }
+ if (staProtocol.isBarcodeErr()) {
+ errMsg = errMsg+"鎵爜澶辫触";
+ back = true;
+ }
+ // 閫�鍥�
+ if (back) {
+ // led 寮傚父鏄剧ず
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+ }
+ continue;
+ }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
&& !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
&& staProtocol.isPakMk()) {
- // 灏哄妫�娴嬪紓甯�
- boolean back = false;
- String errMsg = "寮傚父锛�";
- if (staProtocol.isFrontErr()) {
- errMsg = errMsg+"鍓嶈秴闄愶紱";
- back = true;
- }
- if (staProtocol.isBackErr()) {
- errMsg = errMsg+"鍚庤秴闄�";
- back = true;
- }
- if (staProtocol.isHighErr()) {
- errMsg = errMsg+"楂樿秴闄�";
- back = true;
- }
- if (staProtocol.isLeftErr()) {
- errMsg = errMsg+"宸﹁秴闄�";
- back = true;
- }
- if (staProtocol.isRightErr()) {
- errMsg = errMsg+"鍙宠秴闄�";
- back = true;
- }
- if (staProtocol.isWeightErr()) {
- errMsg = errMsg+"瓒呴噸";
- back = true;
- }
- if (staProtocol.isBarcodeErr()) {
- errMsg = errMsg+"鎵爜澶辫触";
- back = true;
- }
- // 閫�鍥�
- if (back) {
- News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
- staProtocol.setWorkNo((short) 32002);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-
- // led 寮傚父鏄剧ず
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
- if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
- }
- continue;
- }
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -724,6 +718,51 @@
continue;
}
+ List<LocMast> locMasts = null;
+ boolean sign=false;
+ if (locMast.getRow1()>=5){
+ locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5)
+ .eq("bay1",locMast.getBay1()).eq("lev1",locMast.getLev1()));
+ for (LocMast locMast1:locMasts){
+ if (locMast1.getRow1()>locMast.getRow1()){
+ if (!locMast1.getLocSts().equals("F") && !locMast1.getLocSts().equals("D")){
+ if (!locMast1.getLocSts().equals("X")){
+ sign=true;
+ break;
+ }
+ }
+ }else if (locMast1.getRow1()<locMast.getRow1()){
+ if (locMast1.getLocSts().equals("F") || locMast1.getLocSts().equals("D")){
+ News.error("褰撳墠宸ヤ綔妗g洰鏍囧簱浣嶆墍鍦ㄦ帓鍓嶈竟瀛樺湪璐х墿锛�", wrkMast.getWrkNo());
+ sign=true;
+ break;
+ }
+ }
+ }
+ }else {
+ locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4)
+ .eq("bay1",locMast.getBay1()).eq("lev1",locMast.getLev1()));
+ for (LocMast locMast1:locMasts){
+ if (locMast1.getRow1()>locMast.getRow1()){
+ if (locMast1.getLocSts().equals("F") || locMast1.getLocSts().equals("D")){
+ News.error("褰撳墠宸ヤ綔妗g洰鏍囧簱浣嶆墍鍦ㄦ帓鍓嶈竟瀛樺湪璐х墿锛�", wrkMast.getWrkNo());
+ sign=true;
+ break;
+ }
+ }else if (locMast1.getRow1()<locMast.getRow1()){
+ if (!locMast1.getLocSts().equals("F") && !locMast1.getLocSts().equals("D")){
+ if (!locMast1.getLocSts().equals("X")){
+ sign=true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (sign){
+ continue;
+ }
+
// 妫�娴嬫槸鍚﹀瓨鍦ㄥ嚭搴撲换鍔�
if (null != wrkMastMapper.selectPakout(slave.getId(), null)) {
News.error("{}鍏ュ簱浠诲姟鏃犳硶浣滀笟锛屽洜瀛樺湪鍑哄簱涓换鍔�!", wrkMast.getWrkNo());
@@ -897,6 +936,36 @@
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ continue;
+ }
+ List<LocMast> locMasts = null;
+ boolean sign=false;
+ if (sourceSta.getRow1()>=5){
+ locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5)
+ .eq("bay1",sourceSta.getBay1()).eq("lev1",sourceSta.getLev1()));
+ for (LocMast locMast1:locMasts){
+ if (locMast1.getRow1()<sourceSta.getRow1()){
+ if (!locMast1.getLocSts().equals("O")){
+ News.error("褰撳墠宸ヤ綔妗f簮搴撲綅鎵�鍦ㄦ帓鍓嶈竟瀛樺湪璐х墿锛�", wrkMast.getWrkNo());
+ sign=true;
+ break;
+ }
+ }
+ }
+ }else {
+ locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4)
+ .eq("bay1",sourceSta.getBay1()).eq("lev1",sourceSta.getLev1()));
+ for (LocMast locMast1:locMasts){
+ if (locMast1.getRow1()>sourceSta.getRow1()){
+ if (!locMast1.getLocSts().equals("O")){
+ News.error("褰撳墠宸ヤ綔妗g洰鏍囧簱浣嶆墍鍦ㄦ帓鍓嶈竟瀛樺湪璐х墿锛�", wrkMast.getWrkNo());
+ sign=true;
+ break;
+ }
+ }
+ }
+ }
+ if (sign){
continue;
}
@@ -1615,6 +1684,17 @@
WrkCharge wrkCharge = wrkChargeService.selectById(crnProtocol.getTaskNo());
if (wrkCharge == null) {
News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ wrkMast = wrkMastMapper.selectCrnWaiting2(crnProtocol.getTaskNo().intValue());
+ if (wrkMast.getIoType() != 11) {
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵��,澶嶄綅锛屼絾鏈壘鍒板伐浣滄。銆傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ } else {
+ News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵��,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ }
+ }
continue;
} else {
// 灏忚溅鎼嚦鎸囧畾搴撲綅瀹屾垚
@@ -2505,6 +2585,9 @@
*/
@SuppressWarnings("serial")
public synchronized void loopSteCharge() {
+ if (!Cools.isEmpty(wrkMastMapper.selectAllC())){
+ return;
+ }
if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) {
return;
}
--
Gitblit v1.9.1