From 703a357683c01aa47e79084ff16bd52a789a4ac5 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 16 一月 2026 09:43:22 +0800
Subject: [PATCH] fix(procurement): 修复采购记录和销售台账相关字段映射及业务逻辑问题
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 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 223c313..22923b5 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -99,6 +99,7 @@
private final ProductOrderMapper productOrderMapper;
private final ProcessRouteMapper processRouteMapper;
+ private final ProductProcessRouteMapper productProcessRouteMapper;
private final ProcessRouteItemMapper processRouteItemMapper;
@@ -407,7 +408,7 @@
// 鎵归噺鏌ヨprocessRouteItems
List<ProductProcessRouteItem> allRouteItems = productProcessRouteItemMapper.selectList(
new LambdaQueryWrapper<ProductProcessRouteItem>()
- .in(ProductProcessRouteItem::getRouteId, orderIds)
+ .in(ProductProcessRouteItem::getProductOrderId, orderIds)
);
if (!CollectionUtils.isEmpty(allRouteItems)) {
@@ -462,7 +463,11 @@
}
// 鎵归噺鍒犻櫎processRouteItem
productProcessRouteItemMapper.delete(new LambdaQueryWrapper<ProductProcessRouteItem>()
- .in(ProductProcessRouteItem::getRouteId, orderIds));
+ .in(ProductProcessRouteItem::getProductOrderId, orderIds));
+
+ // 鎵归噺鍒犻櫎productProcessRoute
+ productProcessRouteMapper.delete(new LambdaQueryWrapper<ProductProcessRoute>()
+ .in(ProductProcessRoute::getProductOrderId, orderIds));
// 鎵归噺鍒犻櫎productOrder
productOrderMapper.delete(new LambdaQueryWrapper<ProductOrder>()
@@ -693,21 +698,31 @@
productOrder.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
productOrder.setProductModelId(salesLedgerProduct.getId());
productOrder.setNpsNo("SC" + String.format("%08d", salesLedgerProduct.getId()));
+ productOrder.setQuantity(salesLedgerProduct.getQuantity());//闇�姹傛暟閲�
+ productOrder.setCompleteQuantity(BigDecimal.ZERO);//瀹屾垚鏁伴噺
productOrderMapper.insert(productOrder);
ProcessRoute processRoute = processRouteMapper.selectOne(new QueryWrapper<ProcessRoute>().lambda().eq(ProcessRoute::getProductModelId, salesLedgerProduct.getProductModelId()));
List<ProductStructureDto> productStructureDtos = productStructureMapper.listByproductModelId(salesLedgerProduct.getProductModelId());
if (processRoute != null) {
+ //鏂板鐢熶骇璁㈠崟宸ヨ壓璺嚎涓昏〃
+ ProductProcessRoute productProcessRoute = new ProductProcessRoute();
+ productProcessRoute.setProductModelId(processRoute.getProductModelId());
+ productProcessRoute.setProcessRouteCode(processRoute.getProcessRouteCode());
+ productProcessRoute.setProductOrderId(productOrder.getId());
+ productProcessRoute.setBomId(processRoute.getBomId());
+ productProcessRouteMapper.insert(productProcessRoute);
+ //鏂板鐢熶骇璁㈠崟宸ヨ壓璺嚎瀛愯〃
List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRoute.getId()));
// 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
- int dragSort = 1;
for (ProcessRouteItem processRouteItem : processRouteItems) {
ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
- productProcessRouteItem.setRouteId(productOrder.getId());
- productProcessRouteItem.setDragSort(dragSort);
+ productProcessRouteItem.setProductOrderId(productOrder.getId());
+ productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
+ productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
if (insert > 0) {
// 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
@@ -735,12 +750,10 @@
ProductWorkOrder productWorkOrder = new ProductWorkOrder();
productStructureDtos.stream().forEach(productStructureDto -> {
if (productStructureDto.getProductModelId().equals(productProcessRouteItem.getProductModelId())){
- productWorkOrder.setQuantity(productStructureDto.getUnitQuantity().multiply(salesLedgerProduct.getQuantity()));
- productWorkOrder.setPlanQuantity(productWorkOrder.getQuantity());
+ productWorkOrder.setPlanQuantity(productWorkOrder.getPlanQuantity());
}
});
if (Objects.equals(productProcessRouteItem.getProductModelId(), salesLedgerProduct.getProductModelId())) {
- productWorkOrder.setQuantity(salesLedgerProduct.getQuantity());
productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity());
}
productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
@@ -749,7 +762,6 @@
productWorkOrder.setStatus(1);
productWorkOrderMapper.insert(productWorkOrder);
}
- dragSort++;
}
productOrder.setRouteId(processRoute.getId());
productOrderMapper.updateById(productOrder);
--
Gitblit v1.9.3