From eeb8d7faa8d25b3ca9fe75ef28f035c49af5b06d Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 11 三月 2025 11:05:38 +0800
Subject: [PATCH] Merge branch 'dev' into dev_zj

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java |   89 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 66 insertions(+), 23 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
index f63a161..fc2ec38 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -2,25 +2,35 @@
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.basic.dto.PageTestObjectDto;
 import com.ruoyi.basic.dto.TestItemDto;
 import com.ruoyi.basic.mapper.*;
 import com.ruoyi.basic.pojo.*;
 import com.ruoyi.basic.service.CapacityScopeService;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.basic.service.StandardProductListService;
 import com.ruoyi.basic.service.StructureItemParameterService;
+import com.ruoyi.system.mapper.SysDictTypeMapper;
+import com.ruoyi.system.service.ISysDictTypeService;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -33,7 +43,9 @@
 @AllArgsConstructor
 public class CapacityScopeServiceImpl extends ServiceImpl<StructureItemParameterMapper, StructureItemParameter> implements CapacityScopeService {
 
-    private LaboratoryMapper laboratoryMapper;
+    private StandardProductListMapper standardProductListMapper;
+
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
 
     private StructureItemParameterMapper structureItemParameterMapper;
 
@@ -41,19 +53,38 @@
 
     private ProductMapper productMapper;
 
-    private StructureTestObjectPartMapper structureTestObjectPartMapper;
-
-    private ProductPartMapper productPartMapper;
-
     private StandardProductListService standardProductListService;
 
     private StandardTreeMapper standardTreeMapper;
 
     private StructureItemParameterService structureItemParameterService;
 
+    private ISysDictTypeService sysDictTypeService;
+
     @Override
     public IPage<StructureItemParameter> selectItemParameterList(Page page, StructureItemParameter itemParameter) {
-       return structureItemParameterMapper.selectItemParameterList(page, QueryWrappers.queryWrappers(itemParameter));
+        IPage<StructureItemParameter> parameterIPage = structureItemParameterMapper.selectItemParameterList(page, QueryWrappers.queryWrappers(itemParameter));
+        //鏌ヨ瀛楀吀
+        Map<String, List<SysDictData>> dictMaps = sysDictTypeService.selectEnumListByCategory(Arrays.asList("妫�楠岄」绫诲瀷", "鏄惁", "妫�楠屽�肩被鍨�", "鍗曚綅"));
+        parameterIPage.getRecords().forEach(ele->{
+            ele.setInspectionItemTypeTwo(getLabelByValue(dictMaps.get("妫�楠岄」绫诲瀷"),ele.getInspectionItemType()));
+            ele.setUpdateBsm(getLabelByValue(dictMaps.get("鏄惁"),ele.getBsm()));
+            ele.setInspectionValueTypeTwo(getLabelByValue(dictMaps.get("妫�楠屽�肩被鍨�"),ele.getInspectionValueType()));
+        });
+        return parameterIPage;
+    }
+
+    /**
+     * 鏍规嵁value鑾峰彇瀛楀吀
+     * @param dictList
+     * @param value
+     * @return
+     */
+    private String getLabelByValue(List<SysDictData> dictList, String value){
+        if(dictList.isEmpty()){
+            return "";
+        }
+        return dictList.stream().filter(ele-> Objects.equals(ele.getDictValue(),value)).map(SysDictData::getDictLabel).findFirst().orElse("");
     }
 
     @Override
@@ -71,15 +102,35 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int upItemParameter(StructureItemParameter itemParameter) {
+        //鑳藉姏鑼冨洿鏇存柊锛屽悓鏃舵洿鏂板搴旂殑鏍囧噯搴�
+        StructureItemParameter oldParameter = structureItemParameterMapper.selectById(itemParameter.getId());
+        //鍒ゆ柇妫�楠岄」銆佹楠屽瓙椤广�佸崟浣嶆槸鍚︽湁淇敼锛屾湁灏卞悓鏃朵慨鏀规爣鍑嗗簱瀵瑰簲鐨勬暟鎹�
+        if(
+                !StringUtils.equals(itemParameter.getInspectionItem(),oldParameter.getInspectionItem()) ||
+                        !StringUtils.equals(itemParameter.getInspectionItemSubclass(),oldParameter.getInspectionItemSubclass()) ||
+                        !StringUtils.equals(itemParameter.getInspectionItemEn(),oldParameter.getInspectionItemEn()) ||
+                        !StringUtils.equals(itemParameter.getInspectionItemSubclassEn(),oldParameter.getInspectionItemSubclassEn()) ||
+                        !StringUtils.equals(itemParameter.getUnit(),oldParameter.getUnit())
+        ){
+            CompletableFuture.runAsync(() -> {
+                LambdaUpdateWrapper<StandardProductList> updateWrapper = Wrappers.<StandardProductList>lambdaUpdate()
+                        .set(StandardProductList::getInspectionItem, itemParameter.getInspectionItem())
+                        .set(StandardProductList::getInspectionItemEn, itemParameter.getInspectionItemEn())
+                        .set(StandardProductList::getInspectionItemSubclass, itemParameter.getInspectionItemSubclass())
+                        .set(StandardProductList::getInspectionItemSubclassEn, itemParameter.getInspectionItemSubclassEn())
+                        .set(StandardProductList::getUnit, itemParameter.getUnit())
+                        .eq(StandardProductList::getStructureItemParameterId,itemParameter.getId());
+                standardProductListMapper.update(null,updateWrapper);
+            },threadPoolTaskExecutor);
+        }
         return structureItemParameterMapper.updateById(itemParameter);
     }
 
     @Override
     public IPage<PageTestObjectDto> selectTestObjectList(Page page, PageTestObjectDto pageTestObjectDto) {
-        String partNo = pageTestObjectDto.getPartNo();
-        pageTestObjectDto.setPartNo(null);
-        return structureTestObjectMapper.selectTestObjectList(page, QueryWrappers.queryWrappers(pageTestObjectDto),partNo);
+        return structureTestObjectMapper.selectTestObjectList(page, QueryWrappers.queryWrappers(pageTestObjectDto));
     }
 
     @Override
@@ -88,27 +139,19 @@
         if(count.compareTo(0L) > 0){
             throw new BaseException("妫�楠屽璞′笉鑳介噸澶�");
         }
-
         return structureTestObjectMapper.insert(testObject);
     }
 
     @Override
     public int delTestObject(Integer id) {
-        // 浜у嚭妫�楠屽璞′骇鍝佺淮鎶�
-        structureTestObjectPartMapper.delete(Wrappers.<StructureTestObjectPart>lambdaQuery()
-                .eq(StructureTestObjectPart::getTestObjectId, id));
-
-        // 鍒犻櫎浜у搧缁存姢鐨勯浂浠剁粦瀹�
         List<Product> products = productMapper.selectList(Wrappers.<Product>lambdaQuery()
                 .eq(Product::getObjectId, id));
         List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList());
-        productPartMapper.delete(Wrappers.<ProductPart>lambdaQuery()
-                .in(ProductPart::getProductId, productIds));
-
         // 鍒犻櫎浜у搧缁存姢
-        productMapper.delete(Wrappers.<Product>lambdaQuery()
-                .in(Product::getId, productIds));
-
+        if (productIds.size()>0) {
+            productMapper.delete(Wrappers.<Product>lambdaQuery()
+                    .in(Product::getId, productIds));
+        }
         return structureTestObjectMapper.deleteById(id);
     }
 

--
Gitblit v1.9.3