From 75b7a414ef821a07426790cb79c37811ae2f07ac Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 27 一月 2026 10:42:20 +0800
Subject: [PATCH] 浪潮对接单点登录:mis管理系统配置修改

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   76 +++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 34 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 671ce23..be161e0 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -24,6 +24,8 @@
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.purchase.dto.PurchaseLedgerDto;
@@ -36,14 +38,8 @@
 import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.purchase.pojo.TicketRegistration;
 import com.ruoyi.purchase.service.IPurchaseLedgerService;
-import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.mapper.QualityInspectParamMapper;
-import com.ruoyi.quality.mapper.QualityTestStandardMapper;
-import com.ruoyi.quality.mapper.QualityTestStandardParamMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
-import com.ruoyi.quality.pojo.QualityInspectParam;
-import com.ruoyi.quality.pojo.QualityTestStandard;
-import com.ruoyi.quality.pojo.QualityTestStandardParam;
+import com.ruoyi.quality.mapper.*;
+import com.ruoyi.quality.pojo.*;
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.CommonFile;
 import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
@@ -110,10 +106,11 @@
 
     private final StringRedisTemplate redisTemplate;
     private final QualityInspectMapper qualityInspectMapper;
-    private final QualityTestStandardMapper qualityTestStandardMapper;
+    private final QualityTestStandardBindingMapper qualityTestStandardBindingMapper;
     private final QualityTestStandardParamMapper qualityTestStandardParamMapper;
     private final QualityInspectParamMapper qualityInspectParamMapper;
 
+    private final ProcurementRecordMapper procurementRecordStorageMapper;
     @Value("${file.upload-dir}")
     private String uploadDir;
 
@@ -185,7 +182,7 @@
         if (ObjectUtils.isNotEmpty(loginUser) && null != loginUser.getTenantId()) {
             purchaseLedger.setTenantId(loginUser.getTenantId());
         }
-        purchaseLedger.setSalesContractNo(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getSalesContractNo() : "");
+        purchaseLedger.setSalesContractNo(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getSalesContractNo() : purchaseLedgerDto.getSalesContractNo());
         purchaseLedger.setSalesLedgerId(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getId() : -1);
         purchaseLedger.setSupplierName(supplierManage.getSupplierName());
         purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId());
@@ -204,10 +201,12 @@
             handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
         }
         //鏂板鍘熸潗鏂欐楠�
-        for (SalesLedgerProduct saleProduct : productList) {
-            //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
-            if (saleProduct.getIsChecked()) {
-                addQualityInspect(purchaseLedger, saleProduct);
+        if (productList != null) {
+            for (SalesLedgerProduct saleProduct : productList) {
+                //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
+                if (Objects.nonNull(saleProduct.getIsChecked()) && saleProduct.getIsChecked()) {
+                    addQualityInspect(purchaseLedger, saleProduct);
+                }
             }
         }
         // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
@@ -223,33 +222,27 @@
         qualityInspect.setInspectType(0);
         qualityInspect.setSupplier(purchaseLedger.getSupplierName());
         qualityInspect.setPurchaseLedgerId(purchaseLedger.getId());
-        qualityInspect.setProductId(saleProduct.getId());
+        qualityInspect.setProductId(saleProduct.getProductId());
         qualityInspect.setProductName(saleProduct.getProductCategory());
         qualityInspect.setModel(saleProduct.getSpecificationModel());
         qualityInspect.setProductModelId(saleProduct.getProductModelId());
         qualityInspect.setUnit(saleProduct.getUnit());
         qualityInspect.setQuantity(saleProduct.getQuantity());
         qualityInspectMapper.insert(qualityInspect);
-        QualityTestStandard qualityTestStandard = new QualityTestStandard();
-        qualityTestStandard.setProductId(saleProduct.getProductId());
-        List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.qualityTestStandardList(qualityTestStandard);
-        for (QualityTestStandard qualityTestStandardDB : qualityTestStandards) {
-            QualityInspectParam qualityInspectParam = new QualityInspectParam();
-            qualityInspectParam.setInspectId(qualityInspect.getId());
-            qualityInspectParam.setParameterItem(qualityTestStandardDB.getParameterItem());
-            qualityInspectParam.setUnit(qualityTestStandardDB.getUnit());
-            qualityInspectParam.setStandardValue(qualityTestStandardDB.getStandardValue());
-            qualityInspectParam.setControlValue(qualityTestStandardDB.getControlValue());
-            qualityInspectParamMapper.insert(qualityInspectParam);
+        List<QualityTestStandardBinding> qualityTestStandardBindings = qualityTestStandardBindingMapper.selectList(
+                new LambdaQueryWrapper<QualityTestStandardBinding>()
+                        .eq(QualityTestStandardBinding::getProductId, saleProduct.getProductId()));
+        if (qualityTestStandardBindings.size()>0){
+            qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
+                    .eq(QualityTestStandardParam::getTestStandardId,qualityTestStandardBindings.get(0).getTestStandardId()))
+                    .forEach(qualityTestStandardParam -> {
+                        QualityInspectParam param = new QualityInspectParam();
+                        com.ruoyi.common.utils.bean.BeanUtils.copyProperties(qualityTestStandardParam, param);
+                        param.setId(null);
+                        param.setInspectId(qualityInspect.getId());
+                        qualityInspectParamMapper.insert(param);
+                    });
         }
-    }
-
-        // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
-        if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
-            migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
-        }
-
-        return 1;
     }
 
     private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) {
@@ -419,6 +412,19 @@
         if (ids == null || ids.length == 0) {
            throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
         }
+        // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐叆搴撹褰�
+        LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductQueryWrapper = new LambdaQueryWrapper<>();
+        salesLedgerProductQueryWrapper.in(SalesLedgerProduct::getSalesLedgerId, ids)
+                .eq(SalesLedgerProduct::getType, 2);
+        List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(salesLedgerProductQueryWrapper);
+        if (CollectionUtils.isNotEmpty(salesLedgerProducts)) {
+            salesLedgerProducts.stream().forEach(salesLedgerProduct -> {
+                // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︿骇鍝�
+                LambdaQueryWrapper<ProcurementRecordStorage> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, salesLedgerProduct.getId());
+                procurementRecordStorageMapper.delete(queryWrapper);
+            });
+        }
         // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︿骇鍝�
         LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(SalesLedgerProduct::getSalesLedgerId, ids)
@@ -572,6 +578,8 @@
 
     @Override
     public IPage<PurchaseLedgerDto> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedgerDto purchaseLedger) {
+        Long userId = SecurityUtils.getUserId();
+        purchaseLedger.setRecorderId(userId);
         IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
         purchaseLedgerDtoIPage.getRecords().forEach(purchaseLedgerDto -> {
             List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, purchaseLedgerDto.getId()).eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));

--
Gitblit v1.9.3