自动化立体仓库 - WMS系统
dubin
2025-09-25 58652618b0776f3ebe271c6a0f585e4a0dc60877
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -26,6 +26,7 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * Created by vincent on 2020/6/11
@@ -295,6 +296,21 @@
        }
        // 获取库位
        LocMast locMast = locMastService.selectById(taskDto.getLocNo());
        // 构建出库明细(用于 isAll 判断)
        List<LocDetlDto> locDetlDtos = locDtos.stream().map(locDto -> {
            LocDetl locDetl = new LocDetl();
            locDetl.setMatnr(locDto.getMatnr());
            locDetl.setBatch(locDto.getBatch());
            locDetl.setAnfme(locDto.getAnfme());
            LocDetlDto dto = new LocDetlDto();
            dto.setLocDetl(locDetl);
            dto.setCount(locDto.getAnfme());
            return dto;
        }).collect(Collectors.toList());
        taskDto.setLocDetlDtos(locDetlDtos);
        // 获取路径
        int ioType = taskDto.isAll() ? 101 : 103;
        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
@@ -532,10 +548,10 @@
                    .eq("stn_no", param.getOutSite())
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            Integer sourceStaNo = staDesc.getCrnStn();
            if (Cools.isEmpty(sourceStaNo)) {
                throw new CoolException("检索源站失败");
            if (Cools.isEmpty(staDesc)) {
                throw new CoolException("不存在该空板出库路径,请更换站点");
            }
            Integer sourceStaNo = staDesc.getCrnStn();
            Date now = new Date();
            // 保存工作档
            WrkMast wrkMast = new WrkMast();
@@ -589,9 +605,10 @@
                throw new CoolException(locNo + "库位不存在");
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 110)
                    .eq("stn_no", param.getOutSite())
                    //.eq("stn_no", param.getOutSite())
                     .eq("crn_stn", param.getOutSite())
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            Integer sourceStaNo = staDesc.getCrnStn();
@@ -607,7 +624,8 @@
            wrkMast.setIoType(110); // 入出库状态: 110.空板出库
            wrkMast.setIoPri(10D);
            wrkMast.setSourceStaNo(sourceStaNo); // 源站
            wrkMast.setStaNo(param.getOutSite()); // 目标站
            //wrkMast.setStaNo(param.getOutSite()); // 目标站
            wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
            wrkMast.setCrnNo(locMast.getCrnNo());
            wrkMast.setSourceLocNo(locNo); // 源库位
            wrkMast.setFullPlt("N"); // 满板:Y
@@ -754,7 +772,7 @@
        if (Cools.isEmpty(wrkMast)) {
            throw new CoolException(workNo + "工作档不存在");
        }
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() >= 14) {
            throw new CoolException("当前工作档已完成");
        }
        // 入库 + 库位转移
@@ -1116,7 +1134,7 @@
        }
        LocTypeDto locTypeDto = new LocTypeDto();
        locTypeDto.setLocType1((short) 1);
        return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
        return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), 0.0, locTypeDto, list);
    }
    @Override