自动化立体仓库 - WMS系统
dubin
2025-12-19 b00eeab31bd13ba34a03301aa441b0751d6a93e4
src/main/java/com/zy/common/service/CommonService.java
@@ -518,6 +518,8 @@
            crnNo = 2;
        } else if(devpNo == 104) {
            crnNo = 1;
        }else if(devpNo == 311) {
            crnNo = 4;
        }
        // 目标库位
@@ -571,6 +573,13 @@
        // 目标库位
        LocMast locMast = locMastMapper.queryLocByBarCode(row);
        //第六排成品可以放第七排原材料
        if (locMast == null && type.equals("2")){
            locMast = locMastMapper.queryLocByBarCode(7);
        }
        if (locMast == null) {
            throw new CoolException("304入库没有空库位");
        }
@@ -604,6 +613,55 @@
        return startupDto;
    }
    public StartupDto getLocNoBy311(String type) {
        int row;
        int devpNo = 311;
        int crnNo = 4;
//        if (type.equals("1")) {
//            row =  7;
//        } else if (type.equals("2")) {
//            row = 6;
//        } else {
//            throw new CoolException("304物料类别识别错误:" + type);
//        }
        // 目标库位
        List<LocMast> locMasts = locMastMapper.selectOneByCrnNo(4);
        LocMast locMast = locMasts.get(0);
        if (locMast == null) {
            throw new CoolException("311入库没有空库位");
        }
        // 获取目标站
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", 1)
                .eq("stn_no", devpNo)
                .eq("crn_no", crnNo);
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            log.error("入库路径不存在, staDescId={}, sourceStaNo={}, crnNo={}", 1, devpNo, crnNo);
            throw new CoolException("入库路径不存在");
        }
        // 检测目标站
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        if (!staNo.getAutoing().equals("Y")) {
            throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
        }
        basCrnpService.checkSiteStatus(crnNo, true);
        // 返回dto
        StartupDto startupDto = new StartupDto();
        startupDto.setWorkNo(getWorkNo(0));
        startupDto.setCrnNo(crnNo);
        startupDto.setSourceStaNo(devpNo);
        startupDto.setStaNo(devpNo);
        startupDto.setLocNo(locMast.getLocNo());
        return startupDto;
    }
    /**
     * 一期寻找库位
     * 1-6层 条码1或者2开头