自动化立体仓库 - WMS系统
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -330,7 +330,7 @@
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
        wrkMast.setIoType(ioType); // 入出库状态
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setIoPri(ioType==101?20D:13D); // 优先级:13
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
        wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
@@ -346,9 +346,34 @@
        wrkMast.setModiUser(user.getId());
        wrkMast.setModiTime(now);
        wrkMast.setMemo(Cools.isEmpty(agvStaNo) ? "" : agvStaNo);
        if(!Cools.isEmpty(taskDto.getLocDtos().get(0).getOrderNo())){
            wrkMast.setPacked(taskDto.getLocDtos().get(0).getOrderNo());
        }
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo());
        }
        String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
        Order order = orderService.selectByNo(orderNo);
        if (Cools.isEmpty(order.getAccountDay())) {
            order.setAccountDay(1);
        } else {
            order.setAccountDay(order.getAccountDay() + 1);
        }
        orderNo = order.getOrderNo() + "-" + order.getAccountDay();
        Order1 order2 = order1Service.selectByNo(orderNo);
        if (Cools.isEmpty(order2)) {
            //创建子表表头
            Order1 order1 = new Order1();
            order1.sync(order);
            order1.setOrderNo(orderNo);
            order1.setCreateBy(user.getId());
            order1.setCreateTime(now);
            order1.setUpdateTime(new Date());
            order1.setSettle(2L);
            order1Service.insert(order1);
            order2=order1;
        }
        // 生成工作档明细
        for (LocDto locDto : taskDto.getLocDtos()) {
            if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
@@ -365,7 +390,7 @@
            wrkDetl.setIoTime(now);
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setBatch(locDto.getBatch());
            wrkDetl.setOrderNo(locDto.getOrderNo());
            wrkDetl.setOrderNo(orderNo);
            wrkDetl.setModel(mat.getModel());
            wrkDetl.setAnfme(locDto.getAnfme()); // 数量
            wrkDetl.setAppeTime(now);
@@ -376,9 +401,22 @@
                throw new CoolException("保存工作档明细失败");
            }
            // 修改订单明细
            if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), user.getEmail())) {
            if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), user.getId())) {
                throw new CoolException("修改订单明细数量失败");
            }
            //生成出货单
            OrderDetl1 orderDetl1 = new OrderDetl1();
            orderDetl1.sync(wrkDetl);
            orderDetl1.setOrderId(order2.getId());
            orderDetl1.setWorkQty(wrkDetl.getAnfme());
            orderDetl1.setStatus(1);
            orderDetl1.setCreateBy(user.getId());
            orderDetl1.setUpdateBy(user.getId());
            orderDetl1.setCreateTime(new Date());
            orderDetl1.setUpdateTime(new Date());
            orderDetl1Service.insert(orderDetl1);
            orderService.updateSettle(orderDetl.getOrderId(), 2L, user.getId());
        }
        // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
@@ -450,7 +488,7 @@
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
        wrkMast.setIoType(ioType); // 入出库状态
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setIoPri(ioType==101?20D:13D); // 优先级:13
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
        wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
@@ -466,9 +504,13 @@
        wrkMast.setModiUser(user.getId());
        wrkMast.setModiTime(now);
        wrkMast.setMemo(Cools.isEmpty(agvStaNo) ? "" : agvStaNo);
        if(!Cools.isEmpty(taskDto.getLocDtos().get(0).getOrderNo())){
            wrkMast.setPacked(taskDto.getLocDtos().get(0).getOrderNo());
        }
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("保存工作档失败,出库库位号:" + taskDto.getLocNo());
        }
        //新增子单
        Order order = orderService.selectByNo(orderNo);
        if (Cools.isEmpty(order.getAccountDay())) {
            order.setAccountDay(1);
@@ -517,7 +559,7 @@
                throw new CoolException("保存工作档明细失败");
            }
            // 修改订单明细
            if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme(), user.getEmail())) {
            if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme(), user.getId())) {
                throw new CoolException("修改订单明细数量失败");
            }