From 43ee95fbdcb6fe0a9d548d0935c23c232d5ffeaa Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期五, 12 十一月 2021 12:49:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml | 312 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 269 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml index af96f17..661eba9 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml @@ -29,6 +29,7 @@ <result property="type" column="type"></result> <result property="unitName" column="unitName"></result> <result property="formatName" column="formatName"></result> + <result property="safetynum" column="safetynum"></result> </resultMap> <sql id="queryWhereSql"> @@ -96,13 +97,30 @@ </select> <select id="reagentList" parameterType="java.util.Map" resultMap="SysReagent"> - select sr.*, ss.meta_value as product_home_name, bm.meta_value as control_products_name,supplier.name as supplierName,f.id favor,f.create_time favortime - from sys_reagent as sr - left join base_meta as ss on sr.product_home = ss.id - left join base_meta bm on bm.id = sr.control_products - left join sys_supplier supplier on supplier.id = sr.supplier_id - LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} - where sr.valid_flag = 1 + SELECT + * + FROM + ( + SELECT + sr.*, + ss.meta_value AS product_home_name, + ss.order_index, + bm.meta_value AS control_products_name, + supplier. NAME AS supplierName, + f.id favor, + f.create_time favortime, + supplier.valid_flag as supplierFlag + FROM + sys_reagent AS sr + LEFT JOIN base_meta AS ss ON sr.product_home = ss.id + LEFT JOIN base_meta bm ON bm.id = sr.control_products + LEFT JOIN sys_supplier supplier ON supplier.id = sr.supplier_id + LEFT JOIN favor f ON f.reagent_id = sr.id + AND f.user_id= #{user} + WHERE f.id IS NOT NULL + and sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) + and sr.type != 3 <if test="cas != null and cas != ''"> and sr.cas like concat("%", #{cas} ,"%") </if> @@ -115,7 +133,45 @@ <if test="productSn != null and productSn != ''"> and sr.product_sn like concat("%", #{productSn} ,"%") </if> - ORDER BY f.create_time desc,sr.create_time desc + UNION ALL + (SELECT + sr.*, + ss.meta_value AS product_home_name, + ss.order_index, + bm.meta_value AS control_products_name, + supplier.NAME AS supplierName, + f.id favor, + f.create_time favortime, + supplier.valid_flag as supplierFlag + FROM + sys_reagent AS sr + LEFT JOIN base_meta AS ss ON sr.product_home = ss.id + LEFT JOIN base_meta bm ON bm.id = sr.control_products + LEFT JOIN sys_supplier supplier ON supplier.id = sr.supplier_id + LEFT JOIN favor f ON f.reagent_id = sr.id + AND f.user_id = #{user} + AND f.id IS NULL + where sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) + and sr.type != 3 + <if test="cas != null and cas != ''"> + and sr.cas like concat("%", #{cas} ,"%") + </if> + <if test="supplierId != null and supplierId != ''"> + and sr.supplier_id = #{supplierId} + </if> + <if test="name != null and name != ''"> + and sr.name like concat("%", #{name} ,"%") + </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> + <if test="MaxSize != null"> + limit #{MaxSize} + </if> + ) + ) as reagent + ORDER BY reagent.favortime DESC,length(reagent.name),reagent.order_index,price asc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} </if> @@ -123,13 +179,19 @@ <select id="favorList" parameterType="java.util.Map" resultMap="SysReagent"> - select sr.*, ss.meta_value as product_home_name, bm.meta_value as control_products_name,supplier.name as supplierName,f.id favor,f.create_time favortime + select sr.*, ss.meta_value as product_home_name, + bm.meta_value as control_products_name, + supplier.name as supplierName, + f.id favor, + f.create_time favortime, + supplier.valid_flag as supplierFlag from sys_reagent as sr left join base_meta as ss on sr.product_home = ss.id left join base_meta bm on bm.id = sr.control_products left join sys_supplier supplier on supplier.id = sr.supplier_id LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} where sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) <choose> <when test="favorFlag != ''"> and f.id is not null @@ -171,6 +233,7 @@ left join sys_supplier supplier on supplier.id = sr.supplier_id LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} where sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) <choose> <when test="favorFlag != ''"> and f.id is not null @@ -196,13 +259,12 @@ <select id="getSysReagentListNew" parameterType="java.util.Map" resultMap="SysReagent"> select sr.*, ss.meta_value as product_home_name, ifnull(w.reserve,0) as reserve, bm.meta_value as control_products_name,supplier.name as supplierName from sys_reagent as sr - left join base_meta as ss on sr.product_home = ss.id left join base_meta bm on bm.id = sr.control_products left join (select reagent_id, sum(reserve) reserve from ope_warehouse_reserve where valid_flag = 1 group by reagent_id) w on w.reagent_id = sr.id - left join sys_supplier supplier on supplier.id = sr.supplier_id where sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) <if test="cas != null and cas != ''"> and sr.cas = #{cas} </if> @@ -215,7 +277,10 @@ <if test="type != null"> and sr.type = #{type} </if> - ORDER BY sr.create_time desc + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> + ORDER BY length(sr.name),sr.create_time desc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} </if> @@ -227,7 +292,6 @@ left join base_meta as ss on sr.product_home = ss.id left join base_meta bm on bm.id = sr.control_products left join (select reagent_id, sum(reserve) reserve from ope_warehouse_reserve where valid_flag = 1 group by reagent_id) w on w.reagent_id = sr.id - left join sys_supplier supplier on supplier.id = sr.supplier_id LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} where sr.valid_flag = 1 @@ -245,6 +309,7 @@ left join sys_supplier supplier on supplier.id = sr.supplier_id LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} where sr.valid_flag = 1 + and (supplier.valid_flag = 1 or sr.type = 0) <if test="cas != null and cas != ''"> and sr.cas like concat("%", #{cas} ,"%") </if> @@ -262,7 +327,9 @@ <select id="getSysReagentTotalCountNew" parameterType="java.util.Map" resultType="int"> select count(1) from sys_reagent as sr + LEFT JOIN sys_supplier ss on ss.id = sr.supplier_id where sr.valid_flag = 1 + and (ss.valid_flag = 1 or sr.type = 0) <if test="cas != null and cas != ''"> and sr.cas = #{cas} </if> @@ -275,7 +342,18 @@ <if test="type != null"> and sr.type = #{type} </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> + </select> + <select id="getReagentUnitByReagentId" parameterType="java.lang.String" resultType="java.lang.String"> + SELECT bm.meta_value + from sys_reagent sr + LEFT JOIN base_meta bm on bm.id = sr.reagent_unit + where sr.valid_flag =1 + and bm.valid_flag = 1 + and sr.id = #{reagentId} </select> @@ -291,41 +369,64 @@ <select id="getSysReagentByCas" parameterType="com.nanometer.smartlab.entity.SysReagent" resultMap="SysReagent"> select * From sys_reagent where type=1 and valid_flag = 1 - <if test="cas!=null and cas!=''"> - and cas = #{cas} + <if test="productSn!=null and productSn!=''"> + and product_sn = #{productSn} </if> - <if test="cas==null or cas==''"> - and cas is null - </if> - <if test="mainMetering!=null and mainMetering!=''"> - and main_metering = #{mainMetering} - </if> - <if test="mainMetering==null or mainMetering==0"> - and main_metering is null - </if> - <if test="reagentUnit!=null and reagentUnit!=''"> - and reagent_unit=#{reagentUnit} - </if> - <if test="reagentUnit==null or reagentUnit==''"> - and reagent_unit is null - </if> - <if test="reagentFormat!=null and reagentFormat!=''"> - and reagent_format=#{reagentFormat} - </if> - <if test="reagentFormat==null or reagentFormat==''"> - and reagent_format is null - </if> - <if test="productHome!=null and productHome!=''"> - and product_home = #{productHome} - </if> - <if test="productHome==null or productHome==''"> - and product_home is null + <if test="supplierId!=null and supplierId!=''"> + and supplier_id = #{supplierId} </if> </select> + <select id="getReagent" resultMap="SysReagent"> + select * From sys_reagent + where type=3 + and valid_flag = 1 + <if test="name!=null and name!=''"> + and name =#{name} + </if> + <if test="cas!=null and cas!=''"> + and cas =#{cas} + </if> + <if test="packing!=null and packing!=''"> + and reagent_unit =#{packing} + </if> + <if test="factory!=null and factory!=''"> + and product_home =#{factory} + </if> + <if test="specifications!=null and specifications!=''"> + and reagent_format =#{specifications} + </if> + + </select> + <select id="selectReagentSafetyNum" resultMap="SysReagent"> + select + sr.id, + sr.product_sn, + sr.cas, + sr.safetynum, + sr.name, + sr.main_metering, + bm1.meta_value reagent_unit, + bm2.meta_value reagent_type, + bm3.meta_value reagent_format, + bm4.meta_value product_home, + ss.meta_value as product_home_name, + bm.meta_value as control_products_name, + supplier.name as supplierName + from sys_reagent as sr + left join base_meta as ss on sr.product_home = ss.id + left join base_meta bm on bm.id = sr.control_products + left join sys_supplier supplier on supplier.id = sr.supplier_id + left join base_meta bm1 on bm1.id = sr.reagent_unit + left join base_meta bm2 on bm2.id = sr.reagent_type + left join base_meta bm3 on bm3.id = sr.reagent_format + left join base_meta bm4 on bm4.id = sr.product_home + where sr.valid_flag = 1 + and sr.type = 1 + and safetynum > 0 + </select> - - <insert id="insertSysReagent" parameterType="com.nanometer.smartlab.entity.SysReagent"> + <insert id="insertSysReagent" parameterType="com.nanometer.smartlab.entity.SysReagent"> insert into sys_reagent(id, name, cas, reagent_type, reagent_character, supplier_id, reagent_format, main_metering, reagent_unit, price, per_box, memo, valid_flag, create_time, update_time,deadline, product_sn, dangerous_flag,control_products,product_home,type) values (#{id}, #{name}, #{cas}, #{reagentType}, #{reagentCharacter}, #{supplierId}, #{reagentFormat}, #{mainMetering}, #{reagentUnit}, #{price}, #{perBox}, #{memo}, 1, now(), now(),#{deadline}, #{productSn}, #{dangerousFlag},#{controlProducts},#{productHome},#{type}) </insert> @@ -380,4 +481,129 @@ #{item} </foreach> </update> + <update id="updateSafetyNum"> + update sys_reagent + set safetynum = #{safetynum} + where id = #{id} + </update> + + <select id="countReagentByDetail" resultMap="SysReagent"> + select + * + from sys_reagent as sr + left join base_meta bm2 on sr.reagent_character = bm2.id + left join base_meta bm4 on sr.reagent_unit = bm4.id + left join base_meta bm5 on sr.product_home = bm5.id + left join base_meta bm6 on sr.reagent_format = bm6.id + left join base_meta bm7 on sr.reagent_type = bm7.id + left join sys_supplier supply on sr.supplier_id = supply.id + + <where> + sr.valid_flag = 1 + <if test="params.packing != null and params.packing != ''"> + and UPPER(concat(sr.main_metering,bm4.meta_value) ) = UPPER(#{params.packing}) + </if> + <if test="params.product_home != null and params.product_home != ''"> + and bm5.meta_value = #{params.product_home} + </if> + <if test="params.reagent_character != null and params.reagent_character != ''"> + and bm2.meta_value = #{params.reagent_character} + </if> + <if test="params.reagent_format != null and params.reagent_format != ''"> + and bm6.meta_value = #{params.reagent_format} + </if> + <if test="params.reagent_type != null and params.reagent_type != ''"> + and bm7.meta_value = #{params.reagent_type} + </if> + <if test="params.cas != null and params.cas != ''"> + and sr.cas = #{params.cas} + </if> + <if test="params.product_sn != null and params.product_sn != ''"> + and sr.product_sn = #{params.product_sn} + </if> + <if test="params.name != null and params.name != ''"> + and sr.name = #{params.name}; + </if> + </where> + + + + + </select> + <select id="getRowData" resultMap="SysReagent"> + select + a.*, + main_metering, + reagent_unit, + reagent_format, + product_home, + b.meta_value unitName, + c.meta_value formatName, + d.meta_value product_home_name, + e.meta_value control_products_name, + s.name AS supplierName, + s.valid_flag as supplierFlag + from sys_reagent a + left join base_meta b on b.id=a.reagent_unit + left join base_meta c on c.id=a.reagent_format + left join base_meta d on d.id=a.product_home + left join base_meta e on e.id=a.control_products + left join sys_supplier s ON s.id = a.supplier_id + where a.id = #{id} + + </select> + <select id="getSysReagentListNewRowData" resultMap="SysReagent"> + select sr.*, ss.meta_value as product_home_name, ifnull(w.reserve,0) as reserve, bm.meta_value as control_products_name,supplier.name as supplierName + from sys_reagent as sr + + left join base_meta as ss on sr.product_home = ss.id + left join base_meta bm on bm.id = sr.control_products + left join (select reagent_id, sum(reserve) reserve from ope_warehouse_reserve where valid_flag = 1 group by reagent_id) w on w.reagent_id = sr.id + + left join sys_supplier supplier on supplier.id = sr.supplier_id + where sr.id = #{id} + </select> + <select id="selectAll" resultType="java.util.Map"> + select + sr.name, + sr.product_sn as productSn, + sr.cas, + sr.price, + sr.per_box as perBox, + sr.safetynum, + + CASE WHEN type = 0 THEN '耗材' WHEN type = 1 THEN '试剂' ELSE '' END AS kind, + ss.meta_value as productHomeName, + bm.meta_value as control_products_name, + supplier.name as supplierName, + bm1.meta_value as reagentType, + bm2.meta_value as reagentCharacter, + bm3.meta_value as reagentFormat, + CONCAT(sr.main_metering,bm4.meta_value) as reagentUnit + from sys_reagent as sr + left join base_meta as ss on sr.product_home = ss.id + left join base_meta bm on bm.id = sr.control_products + left join base_meta bm1 on bm1.id = sr.reagent_type + left join base_meta bm2 on bm2.id = sr.reagent_character + left join base_meta bm3 on bm3.id = sr.reagent_format + left join base_meta bm4 on bm4.id = sr.reagent_unit + left join sys_supplier supplier on supplier.id = sr.supplier_id + where sr.valid_flag = 1 + <if test="cas != null and cas != ''"> + and sr.cas = #{cas} + </if> + <if test="supplierId != null and supplierId != ''"> + and sr.supplier_id = #{supplierId} + </if> + <if test="name != null and name != ''"> + and sr.name like concat("%", #{name} ,"%") + </if> + <if test="type != null"> + and sr.type = #{type} + </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat("%", #{productSn} ,"%") + </if> + ORDER BY length(sr.name),sr.create_time desc + </select> </mapper> -- Gitblit v1.9.2