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 采购订单明细列表