自动化立体仓库 - WMS系统
93860dbc9e47ef9886c1347ce0bf14e9f0438b2a..24f4438faf3a689d2ec67d56457c0ff5a3d1fb46
1 天以前 IZCD4L12RTSW0VZ\Administrator
派工单变更优化
24f443 对比 | 目录
1 天以前 skyouc
no message
bd9b33 对比 | 目录
1 天以前 skyouc
上架派工单变更 备货单变更
452f6c 对比 | 目录
3个文件已修改
76 ■■■■ 已修改文件
src/main/java/com/zy/api/controller/KopenApiController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/KopenApiService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/controller/KopenApiController.java
@@ -50,7 +50,26 @@
//        if (Objects.isNull(params.getType())) {
//            return XSR.error("单据类型不能为空!");
//        }
        return kopenApiService.receiveOrders(params);
        return kopenApiService.receiveOrders(params, "add");
    }
    /**
     * 上架派工单变更
     * @author Ryan
     * @date 2025/11/24 15:22
     * @param params
     * @return com.core.common.R
     */
    @ApiOperation("上架派工单变更")
    @PostMapping("/sendInDispatchCancel")
    public XSR dispatchUpdate(@RequestBody List<PubOrderParams> params) {
        if (Objects.isNull(params)) {
            return XSR.error("参数不能为空!!");
        }
//        if (Objects.isNull(params.getType())) {
//            return XSR.error("单据类型不能为空!");
//        }
        return kopenApiService.receiveOrders(params, "update");
    }
    /**
@@ -105,7 +124,26 @@
//        if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
//            return XSR.error("上报订单列表不能为空!!");
//        }
        return kopenApiService.sendOutDispatch(params);
        return kopenApiService.sendOutDispatch(params, "add");
    }
    /**
     * 备货指示派工单变更
     * @author Ryan
     * @date 2025/11/24 15:22
     * @param params
     * @return com.core.common.R
     */
    @ApiOperation("备货指示派工单变更")
    @PostMapping("/sendOutDispacthCancel")
    public XSR sendOutDispatchCancel(@RequestBody List<PubOrderParams> params) {
        if (Objects.isNull(params)) {
            return XSR.error("参数不能为空!!");
        }
//        if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
//            return XSR.error("上报订单列表不能为空!!");
//        }
        return kopenApiService.sendOutDispatch(params, "update");
    }
src/main/java/com/zy/api/service/KopenApiService.java
@@ -22,7 +22,7 @@
     * @param params
     * @return com.core.common.R
     */
    XSR receiveOrders(List<PubOrderParams> params);
    XSR receiveOrders(List<PubOrderParams> params, String type);
    /**
     * 基础零件变更
@@ -55,7 +55,7 @@
     * @param params
     * @return
     */
    XSR sendOutDispatch(List<PubOrderParams> params);
    XSR sendOutDispatch(List<PubOrderParams> params, String type);
    /**
     * 备货单下发
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -82,12 +82,12 @@
     * @date 2025/11/24 14:49
     */
    @Override
    public XSR receiveOrders(List<PubOrderParams> orderParams) {
    public XSR receiveOrders(List<PubOrderParams> orderParams, String type) {
        orderParams.forEach(params -> {
            if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
                throw new CoolException("当前类型不是上架派工单!!");
            }
            addOrUpdateOrders(params, "add");
            addOrUpdateOrders(params, type);
        });
        return XSR.ok("单据下发成功!!");
@@ -179,7 +179,7 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) {
    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams, String type) {
        if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
            return XSR.error("参数不能为空!!");
        }
@@ -195,7 +195,7 @@
                throw new CoolException("公司ID不能为空!!");
            }
            addOrUpdateOrders(params, "add");
            addOrUpdateOrders(params, type);
        });
        return XSR.ok("备货指示派工单下发成功!!");
@@ -354,8 +354,11 @@
        // 判断订单是否存在
        if (Objects.isNull(order)) {
            /** 不存在,新增订单 */
            generateOrders(params);
            generateOrders(params, type);
        } else {
            if (order.getSettle() == 2) {
                throw new CoolException("订单已处理,不可再变更!!");
            }
            /** 存在,删除老订单,更新插入新订单 */
            // 删除旧订单明细
            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
@@ -365,7 +368,7 @@
            if (!orderService.deleteById(order.getId())) {
                throw new CoolException("原单据删除失败!!");
            }
            generateOrders(params);
            generateOrders(params, type);
        }
    }
@@ -377,9 +380,10 @@
     * 生成订单信息
     *
     * @param params
     * @param type
     */
    @Transactional(rollbackFor = Exception.class)
    public void generateOrders(PubOrderParams params) {
    public void generateOrders(PubOrderParams params, String type) {
        // 将数据当新订单插入
        Order newOrder = new Order();
        // 派工单号
@@ -440,7 +444,11 @@
                if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                    // 入库
                    orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
                    if (type.equals("add")) {
                        orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
                    } else {
                        orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
                    }
                } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                    // 出库
                    if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
@@ -449,7 +457,11 @@
                    } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType())
                            || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) {
                        // 备货指示派工单(EO/SO)出库
                        orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
                        if (type.equals("add")) {
                            orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
                        } else {
                            orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
                        }
                    }
                }
                orderItem.setMatnr(matnr.getMatnr());