自动化立体仓库 - WMS系统
dubin
2026-02-07 8bc35cc4f75cfb435577e34763002f69def6a1a2
src/main/java/com/zy/common/web/WcsController.java
@@ -107,11 +107,23 @@
        sourceStaNo.setLocType1(param.getLocType1());
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        if (param.getBarcode().startsWith("5")){
            locTypeDto.setLocType2((short) 5); // 2000*1500*170 1巷道 4、5层
        }else if (param.getBarcode().startsWith("6")){
            locTypeDto.setLocType2((short) 6); // 1500*1500*170(有两种 托盘一样 载重不一样 需要单独根据 托盘码 + 高低 来写分库位的逻辑) 1巷道 1、2、3层
        }else if (param.getBarcode().startsWith("7")){
            locTypeDto.setLocType2((short) 7); // 2600*1500*160 2巷道 1、2层
        }else if (param.getBarcode().startsWith("8")){
            locTypeDto.setLocType2((short) 8); // 1300*1500*160 2巷道 3、4、5、6层
        }else {
            return R.error("条码规则不存在:"+param.getBarcode());
        }
        StartupDto dto = null;
        switch (param.getIoType()) {
            case 1://满托盘入库
                assert waitPakins != null;
                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(),param.getWeight(), locTypeDto, waitPakins);
                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), param.getWeight(), locTypeDto, waitPakins);
                break;
            case 10://空托盘入库
                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
@@ -333,8 +345,7 @@
        // 检索库位
        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
//        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto,barcode);
        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
        int workNo = dto.getWorkNo();
        Date now = new Date();
        // 生成工作档
@@ -374,6 +385,7 @@
            wrkDetl.setIoTime(wrkMast.getIoTime());
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            wrkDetl.setModel(waitPakin.getModel());
            if (!Cools.isEmpty(waitPakin.getOrderNo())) {
                Order order = orderService.selectByNo(waitPakin.getOrderNo());
                if (order != null) {
@@ -417,10 +429,8 @@
        LocMast locMast = locMastService.selectById(dto.getLocNo());
        if (locMast.getLocSts().equals("O")) {
            locMast.setLocSts("S"); // S.入库预约
//            locMast.setScWeight(weight); // 整托重量记入库位 为并板出库筛选托盘做准备
            locMast.setModiTime(now);
            if (locMast.getBarcode()==null){
                locMast.setBarcode(barcode);//托盘与库位绑定
            }
            if (!locMastService.updateById(locMast)) {
                throw new CoolException("改变库位状态失败");
            }
@@ -435,7 +445,7 @@
        // 源站点状态检测
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, null, null, locTypeDto,barcode);
        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, null, null, locTypeDto);
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
@@ -473,9 +483,6 @@
        if (locMast.getLocSts().equals("O")) {
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiTime(new Date());
            if (locMast.getBarcode()==null){
                locMast.setBarcode(barcode);//托盘与库位绑定
            }
            if (!locMastService.updateById(locMast)) {
                throw new CoolException("改变库位状态失败");
            }