123
ZY
2025-05-14 ce641926a957d238b202aa0d9dac3b8f15aff153
123
1个文件已修改
1个文件已添加
229 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/Test.java 146 ●●●●● 补丁 | 查看 | 原始文档 | 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();
//                }
//            }
//        }
//    }
//}