From 91968cc6ee3fa8206201fd137f56a20ae4b6dff7 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 23 九月 2026 15:19:46 +0800
Subject: [PATCH] feat: 销售台账手工录入品名/材质/规格型号自动注册产品层级,回退采购台账相关改动
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 4 +-
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 34 -----------------
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 32 ++++++++++++++++
3 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index ead2eb3..7c25815 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -22,7 +22,6 @@
import com.ruoyi.basic.pojo.Product;
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.pojo.SupplierManage;
-import com.ruoyi.basic.service.IProductService;
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.ApprovalStatusEnum;
import com.ruoyi.common.enums.ReviewStatusEnum;
@@ -104,7 +103,6 @@
private final SupplierManageMapper supplierManageMapper;
private final ProductMapper productMapper;
private final ProductModelMapper productModelMapper;
- private final IProductService productService;
private final SysUserMapper sysUserMapper;
private final StringRedisTemplate redisTemplate;
private final QualityInspectMapper qualityInspectMapper;
@@ -633,11 +631,6 @@
}
Integer ledgerType = type == null ? 2 : type;
- // 鎵嬪伐褰曞叆銆屽搧鍚�+鏉愯川+瑙勬牸鍨嬪彿銆嶆椂锛岃嚜鍔ㄦ敞鍐屽埌浜у搧缁存姢
- for (SalesLedgerProduct product : products) {
- registerProductFromLedgerProduct(product);
- }
-
// 鎻愬墠鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑ID
Set<Long> productIds = products.stream()
.map(SalesLedgerProduct::getProductId)
@@ -665,11 +658,6 @@
// 璁剧疆瀛楁
for (SalesLedgerProduct product : products) {
product.setSalesLedgerId(salesLedgerId);
-
- // 鎵嬪伐褰曞叆鍝佸悕/鏉愯川/瑙勬牸鍨嬪彿鐨勮宸插湪娉ㄥ唽鏃跺啓鍏ワ紝涓嶅啀鐢ㄤ骇鍝佹爲鑺傜偣鍚嶇О瑕嗙洊
- if (StringUtils.isNotEmpty(product.getMaterial())) {
- continue;
- }
Long productId = product.getProductId();
if (productId != null && productMap.containsKey(productId)) {
@@ -719,28 +707,6 @@
if (salesLedgerId != null) {
// 鐩存帴鏇存柊鎸囧畾ID鐨勮褰曠殑contractAmount瀛楁涓簍otalTaxInclusiveAmount
purchaseLedgerMapper.updateContractAmountById(salesLedgerId, totalTaxInclusiveAmount);
- }
- }
-
- /**
- * 鎵嬪伐褰曞叆銆屽搧鍚�+鏉愯川+瑙勬牸鍨嬪彿銆嶆椂锛屽湪浜у搧缁存姢鑷姩娉ㄥ唽锛�
- * 鍝佸悕=涓�绾уぇ绫伙紝鏉愯川=澶х被涓嬬殑瀛愮被锛岃鏍煎瀷鍙�=瀛愮被涓嬬殑瑙勬牸
- */
- private void registerProductFromLedgerProduct(SalesLedgerProduct product) {
- String productName = StringUtils.trim(product.getProductCategory());
- String material = StringUtils.trim(product.getMaterial());
- String modelName = StringUtils.trim(product.getSpecificationModel());
- if (StringUtils.isEmpty(productName) || StringUtils.isEmpty(material) || StringUtils.isEmpty(modelName)) {
- return;
- }
- product.setProductCategory(productName);
- product.setMaterial(material);
- product.setSpecificationModel(modelName);
-
- ProductModel productModel = productService.ensureProductHierarchy(productName, material, modelName, product.getUnit());
- if (productModel != null) {
- product.setProductId(productModel.getProductId());
- product.setProductModelId(productModel.getId());
}
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index b2c002f..f587a7a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -183,8 +183,8 @@
@Transactional(rollbackFor = Exception.class)
public int addOrUpdateSalesLedgerProduct(SalesLedgerProduct salesLedgerProduct) {
- // 閲囪喘鍙拌处(type=2)鎵嬪伐褰曞叆鍝佸悕/鏉愯川/瑙勬牸鍨嬪彿鏃讹紝鑷姩娉ㄥ唽鍒颁骇鍝佺淮鎶�
- if (Integer.valueOf(2).equals(salesLedgerProduct.getType())
+ // 閿�鍞彴璐�(type=1)鎵嬪伐褰曞叆鍝佸悕/鏉愯川/瑙勬牸鍨嬪彿鏃讹紝鑷姩娉ㄥ唽鍒颁骇鍝佺淮鎶�
+ if (Integer.valueOf(1).equals(salesLedgerProduct.getType())
&& StringUtils.isNotBlank(salesLedgerProduct.getMaterial())) {
ProductModel productModel = productService.ensureProductHierarchy(
salesLedgerProduct.getProductCategory(),
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 00e913f..80bc1c8 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -18,6 +18,8 @@
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.pojo.Customer;
+import com.ruoyi.basic.pojo.ProductModel;
+import com.ruoyi.basic.service.IProductService;
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.SaleEnum;
@@ -106,6 +108,7 @@
private final FileUtil fileUtil;
private final AccountInvoiceApplicationMapper accountInvoiceApplicationMapper;
private final AccountSalesCollectionMapper accountSalesCollectionMapper;
+ private final IProductService productService;
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -610,6 +613,13 @@
@Override
public void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, SaleEnum type) {
+ // 閿�鍞彴璐︽墜宸ュ綍鍏ャ�屽搧鍚�+鏉愯川+瑙勬牸鍨嬪彿銆嶆椂锛岃嚜鍔ㄦ敞鍐屽埌浜у搧缁存姢
+ if (SaleEnum.SALE.equals(type)) {
+ for (SalesLedgerProduct product : products) {
+ registerProductFromLedgerProduct(product);
+ }
+ }
+
// 鎸塈D鍒嗙粍锛屽尯鍒嗘柊澧炲拰鏇存柊鐨勮褰�
Map<Boolean, List<SalesLedgerProduct>> partitionedProducts = products.stream()
.peek(p -> p.setSalesLedgerId(salesLedgerId))
@@ -636,6 +646,28 @@
}
}
+ /**
+ * 鎵嬪伐褰曞叆銆屽搧鍚�+鏉愯川+瑙勬牸鍨嬪彿銆嶆椂锛屽湪浜у搧缁存姢鑷姩娉ㄥ唽锛�
+ * 鍝佸悕=涓�绾уぇ绫伙紝鏉愯川=澶х被涓嬬殑瀛愮被锛岃鏍煎瀷鍙�=瀛愮被涓嬬殑瑙勬牸
+ */
+ private void registerProductFromLedgerProduct(SalesLedgerProduct product) {
+ String productName = StringUtils.trim(product.getProductCategory());
+ String material = StringUtils.trim(product.getMaterial());
+ String modelName = StringUtils.trim(product.getSpecificationModel());
+ if (StringUtils.isEmpty(productName) || StringUtils.isEmpty(material) || StringUtils.isEmpty(modelName)) {
+ return;
+ }
+ product.setProductCategory(productName);
+ product.setMaterial(material);
+ product.setSpecificationModel(modelName);
+
+ ProductModel productModel = productService.ensureProductHierarchy(productName, material, modelName, product.getUnit());
+ if (productModel != null) {
+ product.setProductId(productModel.getProductId());
+ product.setProductModelId(productModel.getId());
+ }
+ }
+
private SalesLedger convertToEntity(SalesLedgerDto dto) {
SalesLedger entity = new SalesLedger();
BeanUtils.copyProperties(dto, entity);
--
Gitblit v1.9.3