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/resources/mapper/MaterialMapper.xml |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/standard-server/src/main/resources/mapper/MaterialMapper.xml b/standard-server/src/main/resources/mapper/MaterialMapper.xml
index d3281fd..1903342 100644
--- a/standard-server/src/main/resources/mapper/MaterialMapper.xml
+++ b/standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -2,15 +2,15 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.limslaboratory.mapper.MaterialMapper">
 
-    <select id="selectMaterialLimit" resultType="com.yuanchu.limslaboratory.pojo.Material">
+    <select id="selectMaterialLimit" resultType="Map">
         select id, name
-        from material
+        from lims_laboratory.material
         where state = 1
         and type = #{type}
         order by create_time desc
             limit #{num1},#{num2}
     </select>
-    <select id="selectMaterialById" resultType="java.util.Map">
+    <select id="selectMaterialById" resultType="Map">
         select m.id,
                m.num,
                m.supplier,
@@ -23,10 +23,48 @@
                s.cross_section              crossSection,
                s.number_of_cores            numberOfCores,
                s.instruct
-        from material m,
-             specifications s,
-             serial_number sn
+        from lims_laboratory.material m,
+             lims_laboratory.specifications s,
+             lims_laboratory.serial_number sn
         where m.specifications_id = s.id
           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