自动化立体仓库 - WMS系统
zhangc
2025-01-18 8ca385d65454fb8e993970a768ed3ad5c3a095ab
优化库位检索逻辑,修复代码并添加新功能
3个文件已修改
21 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/AgvCommonService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -8,6 +8,7 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.CodeDetectionUtil;
import com.zy.asrs.utils.OrderUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.service.AgvCommonService;
import lombok.Synchronized;
@@ -796,7 +797,14 @@
        agvWrkMastLogService.save(agvWrkMast);
        agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
        String sourceLocNo = agvWrkMast.getSourceLocNo();
        AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
        //AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
        // TODO: 四期
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
        String factory = null;
        if (!Cools.isEmpty(agvWrkDetls)) {
            factory = OrderUtils.getFactory(agvWrkDetls.get(0).getThreeCode());
        }
        AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory);
        if (newLocMast==null){
            throw new CoolException("无可用库位");
        }
@@ -819,7 +827,6 @@
        agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30);
        agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo));
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
        agvWrkDetls.forEach(agvWrkDetl -> {
            for (AgvWrkDetl wrkDetl : param.getWrkDetls()) {
                if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) {
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -50,6 +50,7 @@
        doAutoMove2(agvWrkMast);
        return SUCCESS;
    }
    public ReturnT<String> start3(AgvWrkMast agvWrkMast) {
        // locType 1. 自动, 2. 手动
        doHandMove2(agvWrkMast);
@@ -258,6 +259,7 @@
        updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
        return SUCCESS;
    }
    /*
    更新目标库位信息
     */
@@ -265,6 +267,7 @@
        locMast.setLocSts(locSts);
        agvLocMastService.updateById(locMast);
    }
    /*
    更新源站点信息
     */
@@ -274,6 +277,7 @@
            agvBasDevpService.updateById(agvBasDevp);
        }
    }
    private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){
        if(!Cools.isEmpty(agvBasDevp)){
            agvBasDevp.setLocSts(locSts);
@@ -405,6 +409,8 @@
            floor = "F3";
        } else if(agvLocMast.getFloor() == 2) {
            floor = "F2";
        } else if (agvLocMast.getFloor() == 1 && agvLocMast.getLev1() == 2) {
            floor = "02F1";
        }
        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
        if (agvWrkMasts.size() >= 5) {
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -168,10 +168,6 @@
                }
            }
            //当目标库位是1楼
            if (floor == 1) {
                wrapper.orderBy("loc_no", false);
            }
            agvLocMasts = agvLocMastService.selectList(wrapper);
            for (AgvLocMast agvLocMast : agvLocMasts) {
                AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));