From 72ec96a6e2c4cf79b1ca7cd00f5e9a17fa3c9d8f Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 08 八月 2020 17:08:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/enums/CrnStatusType.java | 45 ++++++++++++++++++++++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 43 ++++++++++++++++++++- src/main/java/com/zy/core/MainProcess.java | 6 +-- src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 16 ++++++++ 4 files changed, 103 insertions(+), 7 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 feefdea..f6ad036 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -14,14 +14,18 @@ import com.zy.asrs.service.StaDescService; import com.zy.asrs.service.WrkDetlService; import com.zy.common.model.StartupDto; +import com.zy.core.Slave; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.CrnStatusType; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; +import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; +import com.zy.core.thread.CrnThread; import com.zy.core.thread.DevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -249,14 +253,47 @@ continue; } // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { + // 绉诲姩涓� + continue; + } + // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 todo:luxiaotao + if (crnProtocol.mode == 3 && crnProtocol.getTaskNo() == wrkMast.getWrkNo() + && crnProtocol.statusType == CrnStatusType.IDLE + && crnProtocol.forkPos==0) { + wrkMast.setWrkSts(14L); + wrkMast.setCrnEndTime(new Date()); + if (wrkMastMapper.updateById(wrkMast) == 0) { + throw new CoolException("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛屽伐浣滃彿"+wrkMast.getWrkNo()); + } + } - + // 鏇存柊鍫嗗灈鏈轰俊鎭� 涓� 涓嬪彂plc鍛戒护 todo:luxiaotao + crnProtocol.setStatus(CrnStatusType.IDLE); + crnProtocol.setTaskNo((short)0); + boolean result = MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task<>(4, crnProtocol)); + if (!result) { + throw new CoolException("鏇存柊鍫嗗灈鏈轰俊鎭け璐�"); + } } - - } } } + /** + * 鎵ц瀵瑰伐浣滄。鐨勫叆搴撳畬鎴� + */ + public void storeFinished() { + for (Slave crn : slaveProperties.getCrn()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol.status == ) + + } + } + } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 379343e..a74c0df 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -41,10 +41,8 @@ // 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 mainService.crnStnToOutStn(); - - - - + // 鎵ц瀵瑰伐浣滄。鐨勫叆搴撳畬鎴� + mainService.storeFinished(); diff --git a/src/main/java/com/zy/core/enums/CrnStatusType.java b/src/main/java/com/zy/core/enums/CrnStatusType.java new file mode 100644 index 0000000..04771af --- /dev/null +++ b/src/main/java/com/zy/core/enums/CrnStatusType.java @@ -0,0 +1,45 @@ +package com.zy.core.enums; + +public enum CrnStatusType { + + IDLE(0), // 绌洪棽 + FETCH_POSITION(1), // 鍙栬揣瀹氫綅涓� + FETCH_REQUEST(2), // 鍙栬揣璇锋眰 + FETCHING(3), // 鍙栬揣涓� + PUT_POSITION(4), // 鏀捐揣瀹氫綅涓� + PUT_REQUEST(5), // 鏀捐揣璇锋眰 + PUTTING(6), //鏀捐揣涓� + WAITING(90), // 浠诲姟瀹屾垚绛夊緟WCS纭 + REPAIR(98), // 缁翠慨 + SOS(99), // 鎶ヨ + ; + + public Integer id; + CrnStatusType(Integer id) { + this.id = id; + } + + public static CrnStatusType get(Short id) { + if (null == id) { + return null; + } + for (CrnStatusType type : CrnStatusType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return null; + } + + public static CrnStatusType get(CrnStatusType type) { + if (null == type) { + return null; + } + for (CrnStatusType crnStatusType : CrnStatusType.values()) { + if (crnStatusType == type) { + return crnStatusType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java index 63a2a49..045f98a 100644 --- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java @@ -1,5 +1,6 @@ package com.zy.core.model.protocol; +import com.zy.core.enums.CrnStatusType; import lombok.Data; /** @@ -53,6 +54,11 @@ * 99 = 鎶ヨ */ public short status; + + /** + * 鐘舵�佹灇涓� + */ + public CrnStatusType statusType; /** * 鍫嗗灈鏈哄綋鍓嶅垪鍙� @@ -111,4 +117,14 @@ */ public int duration; + public void setStatus(Short status){ + this.status = status; + this.statusType = CrnStatusType.get(status); + } + + public void setStatus(CrnStatusType type){ + this.statusType = type; + this.status = CrnStatusType.get(type).id.shortValue(); + } + } -- Gitblit v1.9.1