6 天以前 0ed338976c6cabb5ee17983e3ee1bedb529a0ccb
1.联调优化采购申请到入库的整个逻辑
已修改3个文件
29 ■■■■ 文件已修改
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java
@@ -92,6 +92,9 @@
    @Schema(description = "采购入库数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
    private BigDecimal inCount;
    @Schema(description = "入库状态(0:未入库 1:部分入库 2:全部入库)", example = "0")
    private Integer inStatus;
    // ========== 采购退货(出库)) ==========
    @Schema(description = "采购退货数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
@@ -61,6 +61,9 @@
    @Schema(description = "生成的采购订单号", example = "CGDD001")
    private String orderNo;
    @Schema(description = "入库状态(0:未入库 1:部分入库 2:全部入库)", example = "0")
    private Integer inStatus;
    @Schema(description = "附件地址", example = "https://xxx.com/xxx.pdf")
    private String fileUrl;
@@ -119,6 +122,9 @@
        @Schema(description = "是否需要来料检验", example = "true")
        private Boolean qcCheckFlag;
        @Schema(description = "入库数量", example = "10.00")
        private BigDecimal inCount;
    }
}
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
@@ -446,17 +446,31 @@
        if (CollUtil.isEmpty(items)) {
            return;
        }
        // 3. 计算入库状态
        // 3. 计算入库状态和总入库数量
        int inStatus = calculateInStatus(items);
        // 4. 更新采购订单入库状态
        BigDecimal totalInCount = calculateTotalInCount(items);
        // 4. 更新采购订单入库状态和入库数量
        purchaseOrderMapper.updateById(new ErpPurchaseOrderDO()
                .setId(orderId).setInStatus(inStatus));
                .setId(orderId).setInStatus(inStatus).setInCount(totalInCount));
        // 5. 回写采购申请明细的入库数量和采购申请的入库状态
        updatePurchaseRequestInStatus(items, inStatus);
    }
    /**
     * 计算总入库数量
     */
    private BigDecimal calculateTotalInCount(List<ErpPurchaseOrderItemDO> items) {
        BigDecimal total = BigDecimal.ZERO;
        for (ErpPurchaseOrderItemDO item : items) {
            if (item.getInCount() != null) {
                total = total.add(item.getInCount());
            }
        }
        return total;
    }
    /**
     * 回写采购申请入库数量和入库状态
     *
     * @param orderItems 采购订单明细列表