From 934f0bc7c1f73674fbbfd2301425a14087c09eac Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 06 三月 2025 15:58:45 +0800
Subject: [PATCH] 能力范围调整

---
 basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java             |    8 +-
 cnas-personnel/pom.xml                                                                |   45 +++++++++++
 basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java           |   19 ++++
 basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java |   70 +++++++++++++++-
 ruoyi-admin/pom.xml                                                                   |   12 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java  |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java          |    4 +
 basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java     |    7 +
 basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml               |    2 
 cnas-device/pom.xml                                                                   |   27 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java  |   13 +++
 pom.xml                                                                               |   16 ++++
 12 files changed, 213 insertions(+), 13 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
index 2bf8054..e25a8b9 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
@@ -105,8 +105,11 @@
     }
 
     @ApiOperation(value = "閫氳繃妫�楠屾爣鍑嗘煡璇㈡楠岄」鐩�")
-    @GetMapping("/selectStandardProductListByMethodId")
-    public Result selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
+    @PostMapping("/selectStandardProductListByMethodId")
+    public Result selectStandardProductListByMethodId(@RequestBody Map<String,Object> map ) {
+        Integer id =(Integer) map.get("id");
+        String tree = (String)map.get("tree");
+        Integer page = (Integer)map.get("page");
         return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree, page));
     }
 
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
index 8b82e09..ccb59a6 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -30,11 +30,11 @@
 
     List<StandardMethodList> getStandardMethodListBySample(String sampleType);
 
-    List<StandardProductList> selectStandardProductListByTree(String tree, String sample, String model, String trees, String laboratory);
+    List<StandardProductList> selectStandardProductListByTree(@Param("tree") String tree, @Param("sample") String sample, @Param("model") String model, @Param("trees") String trees, @Param("laboratory") String laboratory);
 
-    List<StandardProductList> selectStandardProductListByTree2(String tree, String sample, String model, String trees, String laboratory);
+    List<StandardProductList> selectStandardProductListByTree2(@Param("tree") String tree, @Param("sample") String sample, @Param("model") String model, @Param("trees") String trees, @Param("laboratory") String laboratory);
 
-    List<StandardProductList> selectStandardProductListByTree3(String tree, String sample, String model, String trees, String laboratory);
+    List<StandardProductList> selectStandardProductListByTree3(@Param("tree") String tree, @Param("sample") String sample, @Param("model") String model, @Param("trees") String trees, @Param("laboratory") String laboratory);
 
     List<SampleTypeDto> getStandardTree2();
 
@@ -42,7 +42,7 @@
 
     String getLaboratory(String str);
 
-    Integer getStructureItemParameterId(String sampleType, String item, String itemChild, String inspectionItemClass);
+    Integer getStructureItemParameterId(@Param("sampleType") String sampleType, @Param("item") String item, @Param("itemChild") String itemChild, @Param("inspectionItemClass") String inspectionItemClass);
 
     List<ProductDto> selectPList(String name);
 
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
index 61103cb..223587f 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
@@ -36,6 +36,9 @@
     @ApiModelProperty(value = "妫�楠屽璞�")
     private String sample;
 
+    @TableField(exist = false)
+    private String samples;
+
     @ApiModelProperty(value = "鍗曚环(鍏�)")
     private String price;
 
@@ -69,8 +72,16 @@
     @ApiModelProperty(value = "妫�楠岄」绫诲瀷")
     private String inspectionItemType;
 
+    @ApiModelProperty(value = "妫�楠岄」绫诲瀷")
+    @TableField(exist = false)
+    private String inspectionItemTypeTwo;
+
     @ApiModelProperty(value = "妫�楠屽�肩被鍨�")
     private String inspectionValueType;
+
+    @ApiModelProperty(value = "妫�楠屽�肩被鍨�")
+    @TableField(exist = false)
+    private String inspectionValueTypeTwo;
 
     @ApiModelProperty(value = "妫�楠屾鏁�")
     private Integer checkoutNumber;
@@ -81,9 +92,17 @@
     @ApiModelProperty(value = "鐗规畩鏍囪瘑")
     private String bsm;
 
+    @ApiModelProperty(value = "鐗规畩鏍囪瘑")
+    @TableField(exist = false)
+    private String updateBsm;
+
     @ApiModelProperty(value = "鍘熷璁板綍妯℃澘")
     private Integer templateId;
 
+    @ApiModelProperty(value = "鍘熷璁板綍妯℃澘")
+    @TableField(exist = false)
+    private String templateName;
+
     @ApiModelProperty(value = "鍒涘缓浜篿d")
     @TableField(fill = FieldFill.INSERT)
     private Integer createUser;
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 6bc9025..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,6 +2,7 @@
 
 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;
@@ -12,15 +13,24 @@
 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;
 
@@ -47,9 +59,32 @@
 
     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
@@ -67,7 +102,29 @@
     }
 
     @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);
     }
 
@@ -82,20 +139,19 @@
         if(count.compareTo(0L) > 0){
             throw new BaseException("妫�楠屽璞′笉鑳介噸澶�");
         }
-
         return structureTestObjectMapper.insert(testObject);
     }
 
     @Override
     public int delTestObject(Integer id) {
-        // 鍒犻櫎浜у搧缁存姢鐨勯浂浠剁粦瀹�
         List<Product> products = productMapper.selectList(Wrappers.<Product>lambdaQuery()
                 .eq(Product::getObjectId, id));
         List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList());
         // 鍒犻櫎浜у搧缁存姢
-        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);
     }
 
diff --git a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index f52ee2b..d355e72 100644
--- a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -10,6 +10,7 @@
     </delete>
     <select id="selectItemParameterList" resultType="com.ruoyi.basic.pojo.StructureItemParameter">
         select * from (select A.id,
+        st.name as template_name,
         inspection_item,
         inspection_item_en,
         inspection_item_subclass,
@@ -50,6 +51,7 @@
         END AS samples
         from structure_item_parameter) A
         left join structure_test_object sto on samples = specimen_name
+        LEFT JOIN  standard_template st ON  template_id = st.id
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>)B
diff --git a/cnas-device/pom.xml b/cnas-device/pom.xml
new file mode 100644
index 0000000..ec0af39
--- /dev/null
+++ b/cnas-device/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ruoyi</artifactId>
+        <groupId>com.ruoyi</groupId>
+        <version>3.8.9</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cnas-device</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <!--涓氬姟妯″潡-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>inspect-server</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/cnas-personnel/pom.xml b/cnas-personnel/pom.xml
new file mode 100644
index 0000000..6b94b71
--- /dev/null
+++ b/cnas-personnel/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ruoyi</artifactId>
+        <groupId>com.ruoyi</groupId>
+        <version>3.8.9</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cnas-personnel</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <!-- 閫氱敤宸ュ叿-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common</artifactId>
+        </dependency>
+
+        <!-- 鏍稿績妯″潡-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-framework</artifactId>
+        </dependency>
+
+        <!-- 绯荤粺妯″潡-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-system</artifactId>
+        </dependency>
+
+        <!-- 绯荤粺妯″潡-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>inspect-server</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/pom.xml b/pom.xml
index 567835a..4ec5445 100644
--- a/pom.xml
+++ b/pom.xml
@@ -277,6 +277,20 @@
                 <version>${ruoyi.version}</version>
             </dependency>
 
+            <!--cnas璁惧绠$悊-->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>cnas-device</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+
+            <!--cnas浜哄憳-->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>cnas-personnel</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
+
 
             <!-- minio -->
             <dependency>
@@ -393,6 +407,8 @@
         <module>cnas-manage</module>
         <module>cnas-process</module>
         <module>cnas-require</module>
+        <module>cnas-device</module>
+        <module>cnas-personnel</module>
     </modules>
     <packaging>pom</packaging>
 
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 0fbb1aa..19e1f1d 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -104,6 +104,18 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>cnas-require</artifactId>
         </dependency>
+
+        <!--cnas璁惧绠$悊-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>cnas-device</artifactId>
+        </dependency>
+
+        <!--cnas浜哄憳-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>cnas-personnel</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
index 7e3a519..f61208e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
@@ -2,6 +2,9 @@
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
index 10e27a8..909260d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysDictType;
 
@@ -103,4 +105,6 @@
      * @return 缁撴灉
      */
     public boolean checkDictTypeUnique(SysDictType dictType);
+
+    Map<String, List<SysDictData>> selectEnumListByCategory(List<String> asList);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
index 05c999f..61c9d56 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -235,4 +236,16 @@
         }
         return UserConstants.UNIQUE;
     }
+
+    @Override
+    public Map<String, List<SysDictData>> selectEnumListByCategory(List<String> categoryList) {
+        Map<String,List<SysDictData>> resultList = new HashMap<>();
+        if(!categoryList.isEmpty()){
+            for (String category : categoryList) {
+                List<SysDictData> enums = selectDictDataByName(category);
+                resultList.put(category,enums);
+            }
+        }
+        return resultList;
+    }
 }

--
Gitblit v1.9.3