src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/Test.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -890,7 +890,7 @@ wrkMast.setIoPri(14D); wrkMastMapper.updateById(wrkMast); // 生成工作档,将浅库位移转到新的库位中 moveLocForDeepLoc(slave, shallowLoc, mark,wrkMast.getTenant()); moveLocForDeepLoc(slave, shallowLoc, mark, wrkMast.getTenant()); // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行) // moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); } @@ -1065,7 +1065,7 @@ wrkMast.setUpdMk("Y"); wrkMastMapper.updateById(wrkMast); // 生成工作档,将浅库位移转到新的库位中 moveLocForDeepLoc(slave, shallowLoc, mark,wrkMast.getTenant()); moveLocForDeepLoc(slave, shallowLoc, mark, wrkMast.getTenant()); } News.error("{}任务出库失败,浅库位堵塞!浅库位号:{}", wrkMast.getWrkNo(), shallowLocNo); continue; @@ -1953,7 +1953,7 @@ * 因双深库位阻塞,对浅库位进行移转(立即执行版) * tip:同步 */ private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark,Long tenant) { private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc, Integer mark, Long tenant) { try { News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 开始执行:因双深库位阻塞,对浅库位进行移转(立即执行版)"); @@ -2330,7 +2330,7 @@ public synchronized void autoEmptyOut() { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); Integer autoOutSite = 12; Integer autoOutSite = 103; //如果站点可出禁用,则不生成空盘出库任务 StaProtocol staProtocol = devpThread.getStation().get(autoOutSite); if (staProtocol == null) { @@ -2340,32 +2340,27 @@ } if (staProtocol.isAutoing() //自动 && !staProtocol.isLoading() //无物 && staProtocol.isOutEnable() //可出信号 // && staProtocol.isOutEnable() //可出信号 && staProtocol.getWorkNo() == 0) { WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite); if (null != pakoutEmpty) { return; // WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite); // if (null != pakoutEmpty) { // return; // } LocMast byId = locMastService.getById("0200405"); if (byId != null&&byId.getLocSts().equalsIgnoreCase("D")){ } try { String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/auto/emptyOut/v1").build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { JSONObject data = (JSONObject) jsonObject.get("data"); News.info((String) data.get("msg")); } else { News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/auto/emptyOut/v1", "", response); } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } } @Autowired private WrkMastService wrkMastService; public synchronized void autoEmptyIn() { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); Integer autoInSite = 12; StaProtocol staProtocol = devpThread.getStation().get(autoInSite); StaProtocol staProtocol = devpThread.getStation().get(103); if (staProtocol == null) { return; } else { @@ -2373,20 +2368,44 @@ } if (staProtocol.isAutoing() //自动 && staProtocol.isLoading() //有物 && staProtocol.isInEnable() //可入信号 // && staProtocol.isInEnable() //可入信号 && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() >= 9990) //工作号为0或者工作号是9991~9999(输送机留用) ) { try { LocTypeDto locTypeDto = new LocTypeDto((short) 1, (short) 1, (short) 1); Date now = new Date(); // 生成工作档 WrkMast wrkMast = new WrkMast(); int workNo = commonService.getWorkNo(0); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(2L); wrkMast.setIoPri(13D); wrkMast.setIoType(10); wrkMast.setCrnNo(1); wrkMast.setSourceStaNo(101); wrkMast.setStaNo(103); wrkMast.setLocNo("0200405"); wrkMast.setFullPlt("N"); // 满板:N wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("Y"); // 空板 wrkMast.setLinkMis("Y"); // 操作人员数据 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); wrkMast.setMemo("自动空托入库"); boolean res = wrkMastService.save(wrkMast); String response = new HttpHandler.Builder().setUri(wmsUrl).setPath("/rpc/auto/emptyIn/v1").setJson(JSON.toJSONString(locTypeDto)).build().doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { News.info((String) jsonObject.get("msg")); } else { News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response); // 更新目标库位状态 LocMast locMast = locMastService.getById("0200405"); if (locMast.getLocSts().equals("O")) { locMast.setLocSts("S"); // S.入库预约 locMast.setModiUser(789L); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("改变库位状态失败"); } } } catch (Exception e) { e.printStackTrace(); src/main/java/com/zy/core/Test.java
New file @@ -0,0 +1,146 @@ //package com.zy.core; // //import com.core.exception.CoolException; //import com.zy.asrs.entity.LocMast; //import com.zy.asrs.entity.WrkMast; //import com.zy.asrs.service.WrkMastService; //import com.zy.core.cache.MessageQueue; //import com.zy.core.cache.SlaveConnection; //import com.zy.core.enums.SlaveType; //import com.zy.core.model.Task; //import com.zy.core.model.protocol.StaProtocol; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.transaction.interceptor.TransactionAspectSupport; // //import java.util.Date; // //public class Test { // // public synchronized void autoEmptyOut() { // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); // Integer autoOutSite = 103; // //如果站点可出禁用,则不生成空盘出库任务 // StaProtocol staProtocol = devpThread.getStation().get(autoOutSite); // if (staProtocol == null) { // return; // } else { // staProtocol = staProtocol.clone(); // } // if (staProtocol.isAutoing() //自动 // && !staProtocol.isLoading() //无物 //// && staProtocol.isOutEnable() //可出信号 // && staProtocol.getWorkNo() == 0) { //// WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite); //// if (null != pakoutEmpty) { //// return; //// } // // LocMast locMast = locMastService.getById("0200404"); // if (locMast != null && locMast.getLocSts().equalsIgnoreCase("D")) { // try { // Date now = new Date(); // // 保存工作档 // WrkMast wrkMast = new WrkMast(); // int workNo = commonService.getWorkNo(0); // wrkMast.setWrkNo(workNo); // wrkMast.setIoTime(now); // wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID // wrkMast.setIoType(110); // 入出库状态: 110.空板出库 // wrkMast.setIoPri(999D); // wrkMast.setSourceStaNo(103); // 源站 // wrkMast.setStaNo(0); // 目标站 // wrkMast.setCrnNo(1); // wrkMast.setSourceLocNo("0200404"); // 源库位 // wrkMast.setFullPlt("N"); // 满板:Y // wrkMast.setPicking("N"); // 拣料 // wrkMast.setExitMk("N"); // 退出 // wrkMast.setEmptyMk("Y"); // 空板 // wrkMast.setLinkMis("N"); // wrkMast.setAppeUser(1L); // wrkMast.setTenant(1L); // wrkMast.setAppeTime(now); // wrkMast.setModiUser(1L); // wrkMast.setModiTime(now); // wrkMast.setMemo("生成自动空板出库"); // boolean res = wrkMastService.save(wrkMast); // // 更新库位状态 D.空板 -> R.出库预约 // if (locMast.getLocSts().equals("D")) { // locMast.setLocSts("R"); // locMast.setModiUser(1L); // locMast.setModiTime(now); // if (!locMastService.updateById(locMast)) { // throw new CoolException("更新库位状态失败"); // } // } // } catch (Exception e) { // e.printStackTrace(); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // } // } // } // } // // @Autowired // private WrkMastService wrkMastService; // // public synchronized void autoEmptyIn() { // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); // StaProtocol staProtocol = devpThread.getStation().get(103); // if (staProtocol == null) { // return; // } else { // staProtocol = staProtocol.clone(); // } // if (staProtocol.isAutoing() //自动 // && staProtocol.isLoading() //有物 //// && staProtocol.isInEnable() //可入信号 // // && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() >= 9990) //工作号为0或者工作号是9991~9999(输送机留用) // ) { // LocMast locMast = locMastService.getById("0200404"); // if (locMast != null && locMast.getLocSts().equalsIgnoreCase("O")) { // try { // Date now = new Date(); // // 生成工作档 // WrkMast wrkMast = new WrkMast(); // int workNo = commonService.getWorkNo(0); // wrkMast.setWrkNo(workNo); // wrkMast.setIoTime(now); // wrkMast.setWrkSts(2L); // wrkMast.setIoPri(999D); // wrkMast.setIoType(10); // wrkMast.setTenant(1L); // wrkMast.setCrnNo(1); // wrkMast.setSourceStaNo(101); // wrkMast.setStaNo(103); // wrkMast.setLocNo("0200404"); // wrkMast.setFullPlt("N"); // 满板:N // wrkMast.setPicking("N"); // 拣料 // wrkMast.setExitMk("N"); // 退出 // wrkMast.setEmptyMk("Y"); // 空板 // wrkMast.setLinkMis("Y"); // // 操作人员数据 // wrkMast.setAppeTime(now); // wrkMast.setModiTime(now); // wrkMast.setMemo("自动空托入库"); // boolean res = wrkMastService.save(wrkMast); // staProtocol.setWorkNo(Short.parseShort(wrkMast.getWrkNo() + "")); // staProtocol.setStaNo(Short.parseShort(wrkMast.getStaNo() + "")); // boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); // log.info("输送线下发(存在设备上走的工作档,直接下发!)):" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo()); // // 更新目标库位状态 // if (locMast.getLocSts().equals("O")) { // locMast.setLocSts("S"); // S.入库预约 // locMast.setModiUser(789L); // locMast.setModiTime(now); // if (!locMastService.updateById(locMast)) { // throw new CoolException("改变库位状态失败"); // } // } // } catch (Exception e) { // e.printStackTrace(); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // } // } // } // } //}