From accb86943163e6224d4ef9a3418ad4f4cf830160 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 23 四月 2026 09:32:45 +0800
Subject: [PATCH] feat(production): 添加工艺路线反向新增功能

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 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 31ee9fb..5f4ec02 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -19,12 +19,13 @@
 import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
 import com.ruoyi.account.service.AccountIncomeService;
 import com.ruoyi.basic.dto.CustomerPrivatePoolDto;
+import com.ruoyi.basic.dto.ProductModelAnticlockwiseDto;
 import com.ruoyi.basic.mapper.CustomerMapper;
 import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.pojo.Customer;
-import com.ruoyi.basic.pojo.CustomerPrivatePool;
+import com.ruoyi.basic.service.IProductModelService;
 import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.common.enums.SaleEnum;
 import com.ruoyi.common.exception.base.BaseException;
@@ -37,13 +38,12 @@
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
-import com.ruoyi.production.mapper.*;
+import com.ruoyi.production.mapper.ProductStructureMapper;
 import com.ruoyi.production.service.ProductionProductMainService;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysDeptMapper;
 import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.sales.dto.*;
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.*;
@@ -134,6 +134,8 @@
     private SysUserMapper sysUserMapper;
     @Autowired
     private CustomerPrivatePoolMapper customerPrivatePoolMapper;
+    @Autowired
+    private IProductModelService productModelService;
 
     @Override
     public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -676,12 +678,13 @@
             SalesLedger salesLedger = convertToEntity(salesLedgerDto);
             salesLedger.setCustomerName(customer.getCustomerName());
             salesLedger.setTenantId(customer.getTenantId());
+
             // 3. 鏂板鎴栨洿鏂颁富琛�
             if (salesLedger.getId() == null) {
                 // 涓虹┖ 鑷姩鐢熸垚
                 String contractNo =StrUtil.isBlank(salesLedgerDto.getSalesContractNo())? generateSalesContractNoBy8Date():salesLedgerDto.getSalesContractNo();
                 // 涓嶈兘鏈夐噸澶嶆暟鎹殑鍚堝悓鍙�
-               Assert.isFalse(salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+               Assert.isTrue(salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
                         .eq(SalesLedger::getSalesContractNo, contractNo)
                         .last("limit 1")) == null, contractNo+"鍚堝悓鍙峰凡瀛樺湪");
                 salesLedger.setSalesContractNo(contractNo);
@@ -693,6 +696,18 @@
 
             // 4. 澶勭悊瀛愯〃鏁版嵁
             List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
+            for (SalesLedgerProduct product : productList) {
+                //绌虹殑鍏堟柊澧炲熀纭�鏁版嵁  闈炵┖鐩存帴寰�涓嬭蛋
+                if (ObjectUtils.isEmpty(product.getProductModelId())) {
+                    ProductModelAnticlockwiseDto  productModelAnticlockwiseDto =  new ProductModelAnticlockwiseDto();
+                    productModelAnticlockwiseDto.setModel(product.getSpecificationModel());
+                    productModelAnticlockwiseDto.setProductName(product.getProductCategory());
+                    productModelAnticlockwiseDto.setUnit(product.getUnit());
+                    productModelAnticlockwiseDto.setSubUnit(product.getUnit());
+                    Long productModelId = productModelService.productModelAnticlockwise(productModelAnticlockwiseDto);
+                    product.setProductModelId(productModelId);
+                }
+            }
             if (productList != null && !productList.isEmpty()) {
                 handleSalesLedgerProducts(salesLedger.getId(), productList, EnumUtil.fromCode(SaleEnum.class, salesLedgerDto.getType()));
                 updateMainContractAmount(

--
Gitblit v1.9.3