自动化立体仓库 - WMS系统
skyouc
2 天以前 10aef23d06cf1d12bc48273e7844328ddf0efcc8
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -510,10 +510,10 @@
            OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
        }
        //TODO 判断设备号,生成入库任务。没有机台号,说明是普通出库任务
        if (!Objects.isNull(deviceNo)) {
            genInStock(wrkMast, deviceNo, userId);
        }
//        //TODO 判断设备号,生成入库任务。没有机台号,说明是普通出库任务
//        if (!Objects.isNull(deviceNo)) {
//            genInStock(wrkMast, deviceNo, userId);
//        }
        // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
        locMast = locMastService.selectById(taskDto.getLocNo());
        if (locMast.getLocSts().equals("F")) {
@@ -1304,7 +1304,10 @@
        wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
        wrkMast.setStaNo(staNo + ""); // 目标站
        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位
        //判断是否为领料出库
        if (Objects.isNull(wrkMast.getWrkCode())) {
            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位
        }
        wrkMast.setSourceLocNo(""); // 源库位清空
        wrkMast.setModiTime(now);
        wrkMast.setModiUser(userId);
@@ -1476,14 +1479,13 @@
        }
        List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>().eq("dev_no", basDevice.getDevNo()));
        if (Objects.isNull(binds) || binds.isEmpty()) {
            throw new CoolException("台机未绑定工作站台!!");
            throw new CoolException("机台未绑定工作站台!!");
        }
        Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
        LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
                .in("loc_no", locs)
                .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
                .eq("dev_no", basDevice.getDevNo())
                .orderAsc(Arrays.asList("loc_no"))
                .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
@@ -1494,9 +1496,8 @@
        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locMasts.getLocNo(),1);
        //TODO 1. 获取入库站点, 目标库位  3. 将出库明细添加至入库明细
        Integer staNo = staNos.stream().findFirst().get();
        WrkMast wrkMast = new WrkMast();
        if (Objects.isNull(wrkMast.getWrkCode())) {
        if (Objects.isNull(outMast.getWrkCode())) {
            throw new CoolException("数据错误,上级任务编码为空!!");
        }
        String wrkCode;
@@ -1507,6 +1508,7 @@
        } else {
            throw new CoolException("数据错误,上级任务编码错误!!");
        }
        WrkMast wrkMast = new WrkMast();
        // 生成工作档
        wrkMast.setWrkNo(workNo);
        wrkMast.setWrkCode(wrkCode);
@@ -1514,8 +1516,8 @@
        wrkMast.setWrkSts(2L); // 工作状态:生成入库ID
        wrkMast.setIoType(1); // 入出库状态:1.入库
        wrkMast.setCrnNo(locMasts.getCrnNo());
        wrkMast.setSourceStaNo(outMast.getSourceStaNo());
        wrkMast.setStaNo(staNo + "");
        wrkMast.setSourceStaNo(outMast.getStaNo());
//        wrkMast.setStaNo(staNo + "");
        wrkMast.setLocNo(locMasts.getLocNo());
        wrkMast.setIoPri(13D); // 优先级
        wrkMast.setBarcode(outMast.getBarcode()); // 托盘码
@@ -1550,7 +1552,7 @@
        } else {
            throw new CoolException(locMasts.getLocNo() + "目标库位已被占用");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrkNo", outMast.getWrkNo()));
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", outMast.getWrkNo()));
        if (Objects.isNull(wrkDetls) || wrkDetls.isEmpty()) {
            throw new CoolException("任务明细为空!!");
        }