From bd63dcea170b3ceb86851f56a7a53b85b77027c2 Mon Sep 17 00:00:00 2001
From: yinrw <2030349650@qq.com>
Date: 星期四, 23 七月 2026 15:03:25 +0800
Subject: [PATCH] 修改销售台账和生产订单绑定逻辑,修复销售台账和生产订单页面展示数据bug
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 74 insertions(+), 36 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 fd21bb8..40836c8 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -31,6 +31,7 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.service.ProductionProductMainService;
import com.ruoyi.project.system.domain.SysDept;
@@ -44,6 +45,7 @@
import com.ruoyi.sales.mapper.*;
import com.ruoyi.sales.pojo.*;
import com.ruoyi.sales.service.ISalesLedgerService;
+import com.ruoyi.sales.service.SalesLedgerProductionRefService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
@@ -166,6 +168,10 @@
private SysUserMapper sysUserMapper;
@Autowired
private CustomerPrivatePoolMapper customerPrivatePoolMapper;
+ @Autowired
+ private SalesLedgerProductionRefService salesLedgerProductionRefService;
+ @Autowired
+ private SalesLedgerProductionRefMapper salesLedgerProductionRefMapper;
@Override
public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -192,7 +198,7 @@
// 鏌ヨ閫�璐т俊鎭�
List<Long> productIds = salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList());
List<SimpleReturnOrderGroupDto> groupListByProductIds = new ArrayList<>();
- if(CollectionUtils.isNotEmpty(productIds)){
+ if (CollectionUtils.isNotEmpty(productIds)) {
groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds);
}
Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, SimpleReturnOrderGroupDto::getSumReturnQuantity));
@@ -212,7 +218,8 @@
if (salesLedger == null) {
throw new BaseException("鍙拌处涓嶅瓨鍦�");
}
-
+ List<ProductOrderDto> productionOrdersBySalesLedgerId = getProductionOrdersBySalesLedgerId(salesLedger.getId());
+ salesLedger.setProductionOrders(productionOrdersBySalesLedgerId);
// 2. 鏌ヨ瀛愯〃
LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
@@ -498,40 +505,30 @@
}
@Override
- public IPage<SalesLedgerDto> listSalesLedger(SalesLedgerDto salesLedgerDto, Page page) {
- IPage<SalesLedgerDto> salesLedgerDtoIPage = salesLedgerMapper.listSalesLedgerAndShipped(page, salesLedgerDto);
- for (SalesLedgerDto salesLedger : salesLedgerDtoIPage.getRecords()) {
- LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
- productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId());
- productWrapper.eq(SalesLedgerProduct::getType, 1);
- List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
- for (SalesLedgerProduct product : products) {
- product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
- // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
- product.setTempnoInvoiceAmount(product.getNoInvoiceAmount());
- product.setTempNoInvoiceNum(product.getNoInvoiceNum());
- product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName());
- product.setRegisterDate(LocalDateTime.now());
- // 鍙戣揣淇℃伅
- ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getSalesLedgerProductId, product.getId())
- .orderByDesc(ShippingInfo::getCreateTime)
- .last("limit 1"));
- product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
- product.setShippingDate(shippingInfo.getShippingDate());
- if (shippingInfo != null) {
- product.setShippingStatus(shippingInfo.getStatus());
- }
+ public IPage<AfterSalesLedgerDto> listSalesLedger(AfterSalesLedgerDto salesLedgerDto, Page page) {
+ IPage<AfterSalesLedgerDto> salesLedgerDtoIPage = salesLedgerMapper.listSalesLedgerAndShipped(page, salesLedgerDto);
+ for (AfterSalesLedgerDto salesLedger : salesLedgerDtoIPage.getRecords()) {
+ SalesLedgerProduct product = salesLedgerProductMapper.selectById(salesLedger.getSalesLedgerProductId());
+ product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
+ // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
+ product.setTempnoInvoiceAmount(product.getNoInvoiceAmount());
+ product.setTempNoInvoiceNum(product.getNoInvoiceNum());
+ product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName());
+ product.setRegisterDate(LocalDateTime.now());
+ // 鍙戣揣淇℃伅
+ ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getSalesLedgerProductId, product.getId())
+ .orderByDesc(ShippingInfo::getCreateTime)
+ .last("limit 1"));
+ product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
+ product.setShippingDate(shippingInfo.getShippingDate());
+ if (shippingInfo != null) {
+ product.setShippingStatus(shippingInfo.getStatus());
}
- // 杩囨护鍙繚鐣欏彂璐ц褰�
- products = products.stream().filter(product -> "宸插彂璐�".equals(product.getShippingStatus())).collect(Collectors.toList());
- if (!products.isEmpty()) {
- salesLedger.setHasChildren(true);
- salesLedger.setProductData(products);
- }
+ List<SalesLedgerProduct> afterSalesLedgerDtos = new ArrayList<>();
+ afterSalesLedgerDtos.add(product);
+ salesLedger.setProductData(afterSalesLedgerDtos);
}
-
-
return salesLedgerDtoIPage;
}
@@ -559,6 +556,24 @@
resultDto.setProductData(products);
}
return resultDto;
+ }
+
+ @Override
+ public List<ProductOrderDto> getProductionOrdersBySalesLedgerId(Long salesLedgerId) {
+ List<Long> productOrderIds = salesLedgerProductionRefMapper.getProductionOrderIdsBySalesLedgerId(salesLedgerId);
+ if (productOrderIds == null || productOrderIds.isEmpty()) {
+ return Collections.emptyList();
+ }
+ return productOrderMapper.listByProductOrderId(productOrderIds);
+ }
+
+ @Override
+ public void getProductionOrders(List<SalesLedger> records) {
+ List<Long> ledgerIdList = records.stream()
+ .map(SalesLedger::getId)
+ .collect(Collectors.toList());
+
+
}
/**
@@ -701,7 +716,10 @@
);
}
- // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
+ //5. 缁戝畾閿�鍞鍗曞拰鐢熶骇璁㈠崟
+ bindSalesOrderAndProductionOrder(salesLedgerDto.getProductionOrderIds(), salesLedger.getId());
+
+ // 6. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
}
@@ -711,6 +729,26 @@
} catch (Exception e) {
throw new RuntimeException(e);
}
+ }
+
+ private void bindSalesOrderAndProductionOrder(List<Long> productionOrderIds, Long salesLedgerId) {
+ // 鍏堝垹闄よ閿�鍞彴璐︽墍鏈夋棫鍏宠仈
+ LambdaQueryWrapper<SalesLedgerProductionRef> deleteWrapper = Wrappers.lambdaQuery();
+ deleteWrapper.eq(SalesLedgerProductionRef::getSalesLedgerId, salesLedgerId);
+ salesLedgerProductionRefMapper.delete(deleteWrapper);
+
+ if (productionOrderIds == null || productionOrderIds.isEmpty()) {
+ return;
+ }
+ List<SalesLedgerProductionRef> refList = productionOrderIds.stream()
+ .map(productOrderId -> {
+ SalesLedgerProductionRef ref = new SalesLedgerProductionRef();
+ ref.setSalesLedgerId(salesLedgerId);
+ ref.setProductOrderId(productOrderId);
+ return ref;
+ })
+ .collect(Collectors.toList());
+ salesLedgerProductionRefService.saveBatch(refList);
}
public void addApproveByPurchase(LoginUser loginUser, SalesLedger salesLedger) throws Exception {
@@ -827,7 +865,7 @@
salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
// 娣诲姞鐢熶骇鏁版嵁
- salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
+ //salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
}
}
}
--
Gitblit v1.9.3