src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/enums/CrnStatusType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } // 更新工作档状态为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("更新工作档的工作状态为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 == ) } } } src/main/java/com/zy/core/MainProcess.java
@@ -41,10 +41,8 @@ // 堆垛机出库站到出库站 mainService.crnStnToOutStn(); // 执行对工作档的入库完成 mainService.storeFinished(); src/main/java/com/zy/core/enums/CrnStatusType.java
New file @@ -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; } } 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(); } }