自动化立体仓库 - WMS系统
skyouc
2026-04-27 2d60f9188ccc113ae8ffacbb2547a753d8556d25
no message
3个文件已修改
75 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/WorkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java
@@ -40,7 +40,7 @@
     */
    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
    void moveShallowLocByF(BasDevp staNo, Long userId, OutLocDto dto, LocMast locMast, StaDesc staDesc, Date now)
    void moveShallowLocByF(BasDevp staNo, Long userId, LocMast locMast, StaDesc staDesc, Date now);
    void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -365,7 +365,7 @@
            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
            //移走潜库位在库或空板信息
            moveShallowLocByF(staNo, userId, dto, locMast, staDesc, now);
            moveShallowLocByF(staNo, userId, locMast, staDesc, now);
            // 生成工作号
            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
@@ -430,40 +430,42 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void moveShallowLocByF(BasDevp staNo, Long userId, OutLocDto dto, LocMast locMast, StaDesc staDesc, Date now) {
        String shallowLoc = Utils.getShallowLoc(locMast.getLocNo(), MesConstant.deepRows);
        if (!Objects.isNull(shallowLoc)) {
            LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
            if (locNo.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type) || locNo.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)) {
                //TODO 出库前判断是浅库位是否有货,如果有货优先生成移库任务
                BasDevp sourceStaNo = basDevpService.checkSiteStatus(staDesc.getCrnStn(), true);
                sourceStaNo.setLocType1(locMast.getLocType1());
                LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
                StartupDto mvDto = commonService.getLocNo(1, staNo.getDevNo(), 2, null, locTypeDto);
                WrkMast wrkMast = new WrkMast();
                wrkMast.setWrkNo(mvDto.getWorkNo());
                wrkMast.setIoTime(now);
                wrkMast.setWrkSts(1L); // 工作状态:11.移库任务
                wrkMast.setIoType(11); // 入出库状态
                wrkMast.setIoPri(999D); // 优先级:13
                wrkMast.setStaNo("");
                wrkMast.setCrnNo(locNo.getCrnNo());
                //源库位
                wrkMast.setSourceLocNo(locNo.getLocNo()); // 源库位
                //目标库位
                wrkMast.setLocNo(mvDto.getLocNo());
                wrkMast.setFullPlt("Y"); // 满板:Y
                wrkMast.setPicking("N"); // 拣料
                wrkMast.setExitMk("N"); // 退出
                wrkMast.setEmptyMk("N"); // 空板
                wrkMast.setLinkMis("N");
                wrkMast.setBarcode(locNo.getBarcode());
                wrkMast.setAppeUser(userId); // 操作人员数据
                wrkMast.setAppeTime(now);
                wrkMast.setModiUser(userId);
                wrkMast.setModiTime(now);
                if (!wrkMastService.insert(wrkMast)) {
                    throw new CoolException("保存移库工作档失败,移库库位号:" + locNo.getLocNo() + "目标库位号:" + dto.getLocNo());
    public void moveShallowLocByF(BasDevp staNo, Long userId, LocMast locMast, StaDesc staDesc, Date now) {
        if (MesConstant.deepRows.contains(locMast.getBay1())) {
            String shallowLoc = Utils.getShallowLoc(locMast.getLocNo(), MesConstant.deepRows);
            if (!Objects.isNull(shallowLoc)) {
                LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
                if (locNo.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type) || locNo.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)) {
                    //TODO 出库前判断是浅库位是否有货,如果有货优先生成移库任务
                    BasDevp sourceStaNo = basDevpService.checkSiteStatus(staDesc.getCrnStn(), true);
                    sourceStaNo.setLocType1(locMast.getLocType1());
                    LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
                    StartupDto mvDto = commonService.getLocNo(1, staNo.getDevNo(), 2, null, locTypeDto);
                    WrkMast wrkMast = new WrkMast();
                    wrkMast.setWrkNo(mvDto.getWorkNo());
                    wrkMast.setIoTime(now);
                    wrkMast.setWrkSts(1L); // 工作状态:11.移库任务
                    wrkMast.setIoType(11); // 入出库状态
                    wrkMast.setIoPri(999D); // 优先级:13
                    wrkMast.setStaNo("");
                    wrkMast.setCrnNo(locNo.getCrnNo());
                    //源库位
                    wrkMast.setSourceLocNo(locNo.getLocNo()); // 源库位
                    //目标库位
                    wrkMast.setLocNo(mvDto.getLocNo());
                    wrkMast.setFullPlt("Y"); // 满板:Y
                    wrkMast.setPicking("N"); // 拣料
                    wrkMast.setExitMk("N"); // 退出
                    wrkMast.setEmptyMk("N"); // 空板
                    wrkMast.setLinkMis("N");
                    wrkMast.setBarcode(locNo.getBarcode());
                    wrkMast.setAppeUser(userId); // 操作人员数据
                    wrkMast.setAppeTime(now);
                    wrkMast.setModiUser(userId);
                    wrkMast.setModiTime(now);
                    if (!wrkMastService.insert(wrkMast)) {
                        throw new CoolException("保存移库工作档失败,移库库位号:" + locNo.getLocNo() + "目标库位号:" + mvDto.getLocNo());
                    }
                }
            }
        }
src/main/java/com/zy/common/service/CommonService.java
@@ -187,7 +187,6 @@
                        crnNo = i;
                    }
                }
                if (crnNo == 6) {
                    return getDoubleLocNoRun(3, 1, sourceStaNo, findLocNoAttributeVo, null, locTypeDto, times);
                }