自动化立体仓库 - WMS系统
#
lty
1 天以前 f245b2ecba9428659f2a8fb3e1f3d23bddda1218
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -29,6 +29,14 @@
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderPakinService orderPakinService;
    @Autowired
    private OrderDetlPakinService orderDetlPakinService;
    @Autowired
    private OrderPakoutService orderPakoutService;
    @Autowired
    private OrderDetlPakoutService orderDetlPakoutService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private DocTypeService docTypeService;
@@ -42,6 +50,8 @@
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private LocOwnerService locOwnerService;
    @RequestMapping(value = "/order/nav/list/auth")
    @ManagerAuth
@@ -98,14 +108,28 @@
    @ManagerAuth(memo = "手动添加订单")
    @Transactional
    public R formAdd(@RequestBody OrderDomainParam param){
        int status = 0;
        if(Cools.isEmpty(param.getOrderNo())){
            String prefix = "";
            DocType docType = docTypeService.selectById(param.getDocType());
            if(!Cools.isEmpty(docType)){
                prefix = docType.getPakin() == 1 ? "RK" : "CK";
                status = (prefix.equals("RK") ? 1 : (prefix.equals("CK") ? 2 : 0));
            }
            param.setOrderNo(prefix + snowflakeIdWorker.nextId());
        } else {
            DocType docType = docTypeService.selectById(param.getDocType());
            if(!Cools.isEmpty(docType)){
                status = (docType.getPakin() == 1 ? 1 :  2 );
            }
        }
        LocOwner locOwner = null;
        if (!Cools.isEmpty(param.getOwnerId())) {
            locOwner = locOwnerService.selectById(param.getOwnerId());
        } else {
            locOwner = locOwnerService.selectById(1);
        }
        Order order = orderService.selectByNo(param.getOrderNo());
        if (order != null) {
            return R.error("单据编号已存在");
@@ -117,7 +141,7 @@
                DateUtils.convert(now),    // 单据日期
                param.getDocType(),    // 单据类型
                null,    // 项目编号
                null,    //
                null,    //项目名称 客户PO号
                null,    // 调拨项目编号
                null,    // 初始票据号
                null,    // 票据号
@@ -145,16 +169,20 @@
                now,    // 添加时间
                getUserId(),    // 修改人员
                now,    // 修改时间
                null    // 备注
                null,    // 备注
                status
        );
        if (!orderService.insert(order)) {
            throw new CoolException("保存订单主档失败");
        }
        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(),
                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
@@ -169,6 +197,11 @@
                orderDetl.setUpdateTime(now);
                orderDetl.setStatus(1);
                orderDetl.setQty(0.0D);
//                orderDetl.setStandby1(param.getStandby1().toString());//po
//                orderDetl.setBoxType1(locOwner.getId().toString());//货主ID
//                orderDetl.setBoxType2(locOwner.getOwnerUuid().toString());//货主UUID
//                orderDetl.setBoxType3(locOwner.getOwner());//货主
                orderDetl.setPakinPakoutStatus(status);
                if (!orderDetlService.insert(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
@@ -205,9 +238,13 @@
        // 2.重组数据
        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
                        orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
@@ -247,19 +284,21 @@
            totalQty = totalQty + orderDetl.getAnfme();
            wrkQty = wrkQty + orderDetl.getWorkQty();
            endQty = endQty + orderDetl.getQty();
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
            if (issued > 0.0) {
                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
                for (LocDetl locDetl : locDetls) {
                    if (issued > 0) {
                        issued = issued - locDetl.getAnfme();
                    } else {
                        break;
            if (!Cools.isEmpty(order.getPakinPakoutStatus$()) && order.getPakinPakoutStatus$().equals("N")){
                double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
                if (issued > 0.0) {
                    List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
                    for (LocDetl locDetl : locDetls) {
                        if (issued > 0) {
                            issued = issued - locDetl.getAnfme();
                        } else {
                            break;
                        }
                    }
                }
            }
            if (issued > 0.0) {
                lackQty = lackQty + issued;
                if (issued > 0.0) {
                    lackQty = lackQty + issued;
                }
            }
        }
        // 任务追溯
@@ -298,7 +337,7 @@
                .add("list", wrkTraceVos)
                .add("orderNo", order.getOrderNo())
                .add("totalQty", totalQty)
                .add("wrkQty", wrkQty)
                .add("wrkQty", wrkQty+endQty)
                .add("lackQty", lackQty)
                .add("endQty",endQty)
        );
@@ -367,19 +406,32 @@
    @RequestMapping(value = "/order/delete/auth")
    @ManagerAuth(memo = "手动删除订单")
    @Transactional
    public R delete(@RequestParam Long orderId){
        orderService.remove(orderId);
//        Order order = orderService.selectById(orderId);
//        if (order != null) {
//            order.setStatus(0);
//        }
//        if (!orderService.updateById(order)) {
//            throw new CoolException("删除订单失败");
//        }
//        orderDetlService.modifyStatus(orderId, 0);
    public R delete(@RequestParam Long orderId) {
        // 获取订单信息
        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("id", orderId));
        String orderNo = order.getOrderNo();
        // 删除 OrderDetl 表中与订单相关的数据
        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
        // 根据 PakinPakoutStatus 删除相关数据
        if (order.getPakinPakoutStatus() == 1) {
            // 删除 OrderPakin 和 OrderDetlPakin 相关数据
            orderPakinService.delete(new EntityWrapper<OrderPakin>().eq("order_no", orderNo));
            orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderNo));
        } else if (order.getPakinPakoutStatus() == 2) {
            // 删除 OrderPakout 和 OrderDetlPakout 相关数据
            orderPakoutService.delete(new EntityWrapper<OrderPakout>().eq("order_no", orderNo));
            orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_no", orderNo));
        }
        // 删除 Order 表中对应的订单数据
        orderService.delete(new EntityWrapper<Order>().eq("order_no", orderNo));
        return R.ok();
    }
    @RequestMapping(value = "/order/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){