自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-03-29 55aa93a62254ff4fdfd1bb4163e55cac09b40302
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -68,6 +68,10 @@
    private WmsService wmsService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Override
    @Transactional
@@ -273,15 +277,8 @@
        // 获取库位
        LocMast locMast = locMastService.selectById(taskDto.getLocNo());
        // 获取路径
        Integer ioType = taskDto.isAll() ? 101 : 103;
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", ioType)
                .eq("stn_no", staNo.getDevNo())
                .eq("crn_no", locMast.getCrnNo());
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (Cools.isEmpty(staDesc)) {
            throw new CoolException("出库路径不存在");
        }
        int ioType = taskDto.isAll() ? 101 : 103;
        StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
        // 生成工作档
@@ -309,14 +306,17 @@
        }
        // 生成工作档明细
        for (LocDto locDto : taskDto.getLocDtos()) {
            // 出库时,数量为0的直接忽略
            if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
            if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.setIoTime(now);
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setIoTime(new Date());
            Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
            wrkDetl.setAnfme(anfme); // 数量
            VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 版本控制
            wrkDetl.setBatch(locDto.getBatch());
            wrkDetl.setOrderNo(locDto.getOrderNo());
            wrkDetl.setAnfme(locDto.getAnfme()); // 数量
            VersionUtils.setWrkDetl(wrkDetl, orderDetl); // 版本控制
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
            wrkDetl.setModiTime(now);