From 6d8e9ef3653639275d262a975ad477fa0bf5e366 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 30 三月 2026 10:51:53 +0800
Subject: [PATCH] fix: 加工编号缺失,发货修改为整个订单发货
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 37 ++++++++++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 87be01e..dd15ac8 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.basic.pojo.CustomerRegions;
+import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.service.ICustomerRegionsService;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.SaleEnum;
@@ -197,6 +198,20 @@
productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
productWrapper.eq(SalesLedgerProduct::getType, 1);
List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+ Map<Long, ProductModel> productModelMap = Collections.emptyMap();
+ if (CollectionUtils.isNotEmpty(products)) {
+ List<Long> productModelIds = products.stream()
+ .map(SalesLedgerProduct::getProductModelId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(productModelIds)) {
+ List<ProductModel> productModels = productModelMapper.selectBatchIds(productModelIds);
+ if (CollectionUtils.isNotEmpty(productModels)) {
+ productModelMap = productModels.stream().collect(Collectors.toMap(ProductModel::getId, Function.identity()));
+ }
+ }
+ }
for (SalesLedgerProduct product : products) {
product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
// 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
@@ -228,6 +243,20 @@
List<SalesLedgerProductProcess> processList = salesLedgerProductProcessService.listByIds(processIds);
processList.forEach(p -> p.setQuantity(processQuantityMap.get(p.getId())));
product.setSalesProductProcessList(processList);
+ }
+ ProductModel productModel = productModelMap.get(product.getProductModelId());
+ if (productModel != null) {
+ product.setThickness(productModel.getThickness());
+ }
+ if (product.getWidth() != null && product.getHeight() != null) {
+ BigDecimal pieceArea = product.getWidth().multiply(product.getHeight()).divide(new BigDecimal(1000000), 2, RoundingMode.HALF_UP);
+ if (product.getActualPieceArea() == null) {
+ product.setActualPieceArea(pieceArea);
+ }
+ BigDecimal quantity = product.getQuantity() == null ? BigDecimal.ZERO : product.getQuantity();
+ if (product.getActualTotalArea() == null) {
+ product.setActualTotalArea(pieceArea.multiply(quantity).setScale(2, RoundingMode.HALF_UP));
+ }
}
}
@@ -431,6 +460,8 @@
salesLedger.setContractAmount(salesLedgerProductImportDtos.stream()
.map(SalesLedgerProductImportDto::getTaxInclusiveTotalPrice)
.reduce(BigDecimal.ZERO, BigDecimal::add));
+ // 鍙戣揣鐘舵��
+ salesLedger.setDeliveryStatus(0);
salesLedgerMapper.insert(salesLedger);
for (SalesLedgerProductImportDto salesLedgerProductImportDto : salesLedgerProductImportDtos) {
@@ -700,8 +731,12 @@
if (salesLedger.getId() == null) {
String contractNo = generateSalesContractNo();
salesLedger.setSalesContractNo(contractNo);
+ salesLedger.setDeliveryStatus(0);
salesLedgerMapper.insert(salesLedger);
} else {
+ if (salesLedger.getDeliveryStatus() == 1) {
+ throw new ServiceException("璁㈠崟宸插彂璐�,绂佹缂栬緫");
+ }
salesLedgerMapper.updateById(salesLedger);
}
@@ -836,7 +871,7 @@
// 娓呯┖閿�鍞骇鍝佺粦瀹氱殑鍔犲伐
salesLedgerProductProcessBindService.updateProductProcessBind(salesLedgerProduct.getSalesProductProcessList(), salesLedgerProduct.getId());
// 娣诲姞鐢熶骇鏁版嵁
- salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
+// salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
}
}
}
--
Gitblit v1.9.3