From 3ad5b828240db97470c9a08b247b1f6f5cdc0dd7 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期五, 04 八月 2023 11:30:33 +0800
Subject: [PATCH] LIMS管理系统框架-开发8-4

---
 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java                       |    3 +
 inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml                                |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java            |   42 --------------------
 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java |    2 
 standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java               |    2 
 standard-server/src/main/resources/mapper/MaterialMapper.xml                                              |   37 ++++++++++++++++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java             |   14 +-----
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Classify.java                             |    3 +
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java          |   15 -------
 9 files changed, 51 insertions(+), 69 deletions(-)

diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
index 6a21f00..22de441 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkBasicInformationController.java
@@ -48,7 +48,7 @@
         return Result.success(link1);
     }
 
-    @ApiOperation(value = "鍒嗛〉琛ㄦ牸", tags = "123")
+    @ApiOperation(value = "鍒嗛〉琛ㄦ牸")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
index d17384b..7751861 100644
--- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
+++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -4,7 +4,7 @@
 
     <select id="getLinkBasicPage" resultType="map">
         SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, d.`specifications_models`,
-            DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, l.`completion_deadline`, l.`contacts`, d.`date_survey`, d.`inspection_status`
+            DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, DATE_FORMAT(l.`completion_deadline`,'%Y-%m-%d') inspectionTime, l.`contacts`, d.`date_survey`, d.`inspection_status`
         FROM link_basic_information l, link_detection d
         WHERE l.`id` = d.`link_basic_id`
         AND l.`state` = 1
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java
index 6e18c6c..614814b 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/ClassifyController.java
@@ -31,22 +31,14 @@
     @Autowired
     private ClassifyService classifyService;
 
-    @ApiOperation("娣诲姞鍒嗙被锛氬鏋滈�夋嫨浜唍ame鍗虫坊鍔犵殑涓哄瓙鑺傜偣鏁版嵁锛涘鏋滄病鏈夐�夋嫨鍗虫坊鍔犵殑涓虹埗鑺傜偣鏁版嵁锛涘悗鍙板鐞�")
+    @ApiOperation("娣诲姞鍒嗙被")
     @PostMapping("/add")
     public Result<?> addClassifyInformation(@RequestBody Classify classify) {
-        if (ObjectUtils.isEmpty(classify.getSonName())){
-            return Result.fail("璇峰~鍐欏垎绫诲悕绉帮紒");
-        }
         Integer isAddClassifySuccess = classifyService.addClassifyInformation(classify);
         if (isAddClassifySuccess == 1) {
-            if (ObjectUtils.isEmpty(classify.getSonName())){
-                return Result.success("娣诲姞鐖剁骇銆�"+ classify.getFatherName() +"銆戝垎绫绘垚鍔燂紒");
-            }
             return Result.success("娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戞垚鍔燂紒");
-        } else if (isAddClassifySuccess == 2){
-            return Result.fail("鎶辨瓑閲嶅娣诲姞鐖剁骇銆�"+ classify.getFatherName() +"銆戝垎绫伙紝娣诲姞澶辫触锛�");
-        } else if (isAddClassifySuccess == 3) {
-            return Result.fail("鎶辨瓑閲嶅娣诲姞瀛愮骇銆�"+ classify.getSonName() +"銆戯紝娣诲姞澶辫触锛�");
+        } else if (isAddClassifySuccess == 2) {
+            return Result.fail("鎶辨瓑閲嶅娣诲姞鍒嗙被鍚嶇О銆�"+ classify.getSonName() +"銆戯紝娣诲姞澶辫触锛�");
         }
         return Result.fail("娣诲姞鍒嗙被銆�"+ classify.getSonName() +"銆戝け璐ワ紒");
     }
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Classify.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Classify.java
index 8bb4eb1..019c5e4 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Classify.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Classify.java
@@ -11,6 +11,8 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * <p>
  *
@@ -33,6 +35,7 @@
     @ApiModelProperty(value = "鍒嗙被鐖跺悕绉�", example = "娓╁害娴嬮噺浠〃")
     private String fatherName;
 
+    @NotBlank(message = "鍚嶇О涓嶅厑璁镐负绌猴紒")
     @ApiModelProperty(value = "鍒嗙被瀛愬悕绉�", example = "浣撴俯璁�",required = true)
     private String sonName;
 
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java
index f7882e9..66d8c86 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ClassifyServiceImpl.java
@@ -29,19 +29,6 @@
 
     @Override
     public Integer addClassifyInformation(Classify classify) {
-        if (ObjectUtils.isEmpty(classify.getFatherName())){
-            classify.setFatherName(classify.getSonName());
-            classify.setSonName(null);
-            LambdaQueryWrapper<Classify> wrapper = new LambdaQueryWrapper<>();
-            wrapper.eq(Classify::getFatherName, classify.getFatherName());
-            wrapper.isNull(Classify::getSonName);
-            wrapper.eq(Classify::getState, 1);
-            Classify classify1 = classifyMapper.selectOne(wrapper);
-            if (ObjectUtils.isEmpty(classify1)){
-                return classifyMapper.insert(classify);
-            }
-            return 2;
-        }
         LambdaQueryWrapper<Classify> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Classify::getFatherName, classify.getFatherName());
         wrapper.eq(Classify::getSonName, classify.getSonName());
@@ -50,7 +37,7 @@
         if (ObjectUtils.isEmpty(classify1)){
             return classifyMapper.insert(classify);
         } else {
-            return 3;
+            return 2;
         }
     }
 
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
index 853f518..8a89867 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
@@ -53,7 +53,7 @@
         return Result.fail("鍒犻櫎澶辫触锛�");
     }
 
-    @ApiOperation("渚ц竟鏍忓洓绾у睍寮�")
+    @ApiOperation(value = "鏍囧噯搴�-->鐗╂枡-->渚ц竟鏍忓洓绾у睍寮�", tags = "猸愨瓙猸愬悗绔皟鏁�")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(value = "鍨嬪彿/鍨嬪彿鍚嶇О", name = "specificationName", dataTypeClass = String.class)
     })
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
index 6df4b19..0408808 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -21,4 +21,7 @@
 
     //鏍规嵁鐗╂枡id鏌ヨ鐗╂枡淇℃伅
     Map selectMaterialById(String materialId);
+
+    // 鍥涚骇鏍�
+    List<Map<String, Object>> FourTree(String specificationsName);
 }
diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
index 83e6236..62db781 100644
--- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
+++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -102,46 +102,6 @@
 
     @Override
     public List<Map<String, Object>> getFourLevelInformation(String specificationName) {
-        LambdaQueryWrapper<Material> typeWrapper = new LambdaQueryWrapper<>();
-        typeWrapper.groupBy(Material::getType);
-        typeWrapper.select(Material::getType);
-        List<Map<String, Object>> typeMaps = materialMapper.selectMaps(typeWrapper);
-        for (Map<String, Object> typeMap : typeMaps){
-            LambdaQueryWrapper<Material> materialWrapper = new LambdaQueryWrapper<>();
-            materialWrapper.eq(Material::getType, typeMap.get("type"));
-            materialWrapper.select(Material::getId, Material::getName);
-            List<Map<String, Object>> materialMaps = materialMapper.selectMaps(materialWrapper);
-            if (!ObjectUtils.isEmpty(materialMaps)){
-                for (Map<String, Object> materialMap : materialMaps){
-                    LambdaQueryWrapper<Standard> wrapper = new LambdaQueryWrapper<>();
-                    wrapper.eq(Standard::getMaterialId, materialMap.get("id"));
-                    wrapper.select(Standard::getId, Standard::getName);
-                    List<Map<String, Object>> standardMaps = standardService.listMaps(wrapper);
-                    if (!ObjectUtils.isEmpty(standardMaps)){
-                        for (Map<String, Object> standardMap : standardMaps){
-                            LambdaQueryWrapper<Specifications> specificationWrapper = new LambdaQueryWrapper<>();
-                            specificationWrapper.eq(Specifications::getStandardId, standardMap.get("id"));
-                            if (!ObjectUtils.isEmpty(specificationName)){
-                                specificationWrapper.eq(Specifications::getName, specificationName);
-                            }
-                            specificationWrapper.select(Specifications::getId, Specifications::getName);
-                            List<Map<String, Object>> specificationsMaps = specificationsService.listMaps(specificationWrapper);
-                            if (!ObjectUtils.isEmpty(specificationsMaps)){
-                                standardMap.put("children", specificationsMaps);
-                            } else {
-                                standardMap.put("children", null);
-                            }
-                        }
-                        materialMap.put("children", standardMaps);
-                    } else {
-                        materialMap.put("children", null);
-                    }
-                }
-                typeMap.put("children", materialMaps);
-            } else {
-                typeMap.put("children", null);
-            }
-        }
-        return typeMaps;
+        return materialMapper.FourTree(specificationName);
     }
 }
diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index 8853a62..1903342 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -30,4 +30,41 @@
           and s.serial_id = sn.id
         and m.id=#{materialId}
     </select>
+
+    <resultMap id="OneLevelTreeMap" type="Map">
+        <id property="id" column="materialId"/>
+        <result property="name" column="materialName"/>
+        <collection property="children" resultMap="TwoLevelTreeMap" javaType="List"/>
+    </resultMap>
+
+    <resultMap id="TwoLevelTreeMap" type="Map">
+        <id property="id" column="standardId"/>
+        <result property="name" column="standardName"/>
+        <collection property="children" resultMap="ThreeLevelTreeMap" javaType="List"/>
+    </resultMap>
+
+    <resultMap id="ThreeLevelTreeMap" type="Map">
+        <id property="id" column="specificationsId"/>
+        <result property="name" column="specificationsName"/>
+        <collection property="children" resultMap="FourLevelTreeMap" javaType="List"/>
+    </resultMap>
+
+    <resultMap id="FourLevelTreeMap" type="Map">
+        <id property="id" column="productId"/>
+        <result property="name" column="productName"/>
+    </resultMap>
+
+    <select id="FourTree" resultMap="OneLevelTreeMap">
+        SELECT m.`id` materialId, m.`name` materialName, s.`id` standardId, s.`name` standardName,
+               f.`id` specificationsId, f.`name` specificationsName, p.`id` productId, p.`name` productName
+        FROM material m
+                 LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s ON m.id = s.`material_id`
+                 LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1
+                                                                                             <if test="specificationsName != null and specificationsName != ''">
+                                                                                                 AND f.`name` = #{specificationsName}
+                                                                                             </if>
+                                                                                           ) f ON s.`id` = f.`standard_id`
+                 LEFT JOIN (SELECT p.`id`, p.`name`, p.`specifications_id` FROM product p WHERE p.`state` = 1) p ON f.`id` = p.`specifications_id`
+        WHERE m.`state` = 1
+    </select>
 </mapper>

--
Gitblit v1.9.3