自动化立体仓库 - WMS系统
#
LSH
2023-06-07 b60d9bacd64db68fc72e9b1a0997613cab3b4390
#
1个文件已修改
56 ■■■■ 已修改文件
src/main/java/com/zy/common/service/CommonService.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java
@@ -97,20 +97,7 @@
     */
    @Transactional
    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
        if (sourceStaNo < 200){
            whsType = 1;
        } else if (sourceStaNo > 199 && sourceStaNo < 300){
            whsType = 2;
        } else if (sourceStaNo > 299){
            whsType = 3;
        }
        // 目标堆垛机号
        int crnNo = whsType;
        if (!basCrnpService.checkSiteError(crnNo, true)){
            throw new CoolException("没有可用的堆垛机");
        }
        whsType = 1;
        StartupDto startupDto = new StartupDto();
        RowLastno rowLastno = rowLastnoService.selectById(whsType);
@@ -175,21 +162,6 @@
            curRow = getCurRow(curRow);
        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", staDescId)
                .eq("stn_no", sourceStaNo)
                .eq("crn_no", crnNo);
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
            throw new CoolException("入库路径不存在");
        }
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        if (!staNo.getAutoing().equals("Y")) {
            throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
        }
        // 更新库位排号
        rowLastno.setCurrentRow(curRow);
        rowLastnoService.updateById(rowLastno);
@@ -229,9 +201,33 @@
                }
            }
        }
        Integer crnNo = 0;
        BasDevp staNo =null;
        boolean sign=false;
        if (!Cools.isEmpty(locMast)){
            try{
                crnNo = locMast.getCrnNo();
                // 获取目标站
                Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                        .eq("type_no", staDescId)
                        .eq("stn_no", sourceStaNo)
                        .eq("crn_no", crnNo);
                StaDesc staDesc = staDescService.selectOne(wrapper);
                if (Cools.isEmpty(staDesc)) {
                    log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
                    throw new CoolException("入库路径不存在");
                }
                staNo = basDevpService.selectById(staDesc.getCrnStn());
                if (!staNo.getAutoing().equals("Y")) {
                    throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
                }
            }catch (Exception e){
                sign=true;
            }
        }
        // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
        if (Cools.isEmpty(locMast)) {
        if (Cools.isEmpty(locMast) || sign) {
            // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归
            if (times < rowCount) {
                times = times + 1;