From 1342f568f4b6470efdfc69be7bb153e2b12762f9 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 31 三月 2026 17:00:57 +0800
Subject: [PATCH] feat:1.销售,采购,库存,质检模块产品添加批号,供应商 2.销售产品关联批号,供应商递归查询
---
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java | 59 +++++++++++++++++++----------------------------------------
1 files changed, 19 insertions(+), 40 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 0ed4db6..f479a16 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -23,8 +23,8 @@
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductOrderService;
import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.mapper.StockInventoryMapper;
+import com.ruoyi.stock.pojo.StockInventory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,7 +32,8 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
@Service
@@ -247,43 +248,9 @@
@Override
public List<SelectOptionDTO<String>> getProductOrderBatchNo() {
- List<ProductOrder> productOrders = productOrderMapper.selectList(null);
- return productOrders.stream().map(productOrder -> new SelectOptionDTO<>(productOrder.getBatchNo(), productOrder.getBatchNo())).collect(Collectors.toList());
- }
-
- @Override
- public List<StockInventoryDto> getByBomId(Long bomId) {
- List<ProductStructureDto> structureList = productStructureMapper.listBybomId(bomId);
-
- if (CollectionUtils.isEmpty(structureList)) {
- return Collections.emptyList();
- }
-
- Set<Long> allNodeIds = structureList.stream()
- .map(ProductStructureDto::getId)
- .collect(Collectors.toSet());
-
- Set<Long> parentIds = structureList.stream()
- .filter(node -> node.getParentId() != null && node.getParentId() != 0)
- .map(ProductStructureDto::getParentId)
- .collect(Collectors.toSet());
-
- Set<Long> leafNodeIds = new HashSet<>(allNodeIds);
- leafNodeIds.removeAll(parentIds);
-
- // 鑾峰彇鍙跺瓙鑺傜偣鐨� productModelId
- List<Long> productModelIds = structureList.stream()
- .filter(node -> leafNodeIds.contains(node.getId()))
- .map(ProductStructureDto::getProductModelId)
- .filter(Objects::nonNull)
- .distinct()
- .collect(Collectors.toList());
-
- if (productModelIds.isEmpty()) {
- return Collections.emptyList();
- }
-
- return stockInventoryMapper.getStockInventory(productModelIds);
+ //鏌ヨ搴撳瓨鎵瑰彿
+ List<StockInventory> stockInventoryList = stockInventoryMapper.selectList(null);
+ return stockInventoryList.stream().map(stockInventory -> new SelectOptionDTO<>(stockInventory.getBatchNo(), stockInventory.getBatchNo())).collect(Collectors.toList());
}
@Override
@@ -308,6 +275,16 @@
if (CollectionUtils.isEmpty(drawMaterialsList)) {
throw new RuntimeException("棰嗘枡鏄庣粏涓嶈兘涓虹┖");
}
+ // 濡傛灉鏈夋暟鎹厛鍔犲簱瀛�
+ ProductOrder productOrder = productOrderMapper.selectById(productOrderDto.getId());
+ if (productOrder != null) {
+ List<DrawMaterialDto> materialDtoList = JSON.parseArray(productOrder.getDrawMaterials(), DrawMaterialDto.class);
+ for (DrawMaterialDto drawMaterialDto : materialDtoList) {
+ stockUtils.addStock(drawMaterialDto.getProductModelId(), drawMaterialDto.getRequisitionQty(), null, productOrderDto.getId(),
+ drawMaterialDto.getBatchNo(), drawMaterialDto.getCustomer()
+ );
+ }
+ }
// 澶勭悊棰嗘枡锛堟墸鍑忓簱瀛橈級
try {
@@ -315,7 +292,9 @@
if (drawMaterialDto.getProductModelId() == null) {
throw new RuntimeException("浜у搧鍨嬪彿ID涓嶈兘涓虹┖");
}
- stockUtils.substractStock(drawMaterialDto.getProductModelId(), drawMaterialDto.getRequisitionQty(), StockOutQualifiedRecordTypeEnum.DRAW_MATERIALS_STOCK_OUT.getCode(), productOrderDto.getId());
+ stockUtils.substractStock(drawMaterialDto.getProductModelId(), drawMaterialDto.getRequisitionQty(),
+ StockOutQualifiedRecordTypeEnum.DRAW_MATERIALS_STOCK_OUT.getCode(), productOrderDto.getId(),
+ drawMaterialDto.getBatchNo(),drawMaterialDto.getCustomer());
}
} catch (Exception e) {
throw new RuntimeException("棰嗘枡澶辫触锛�" + e.getMessage());
--
Gitblit v1.9.3