From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml | 208 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 127 insertions(+), 81 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml index ee43812..9640c16 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysReagentDao.xml @@ -25,11 +25,11 @@ <result property="controlProducts" column="control_products"></result> <result property="controlProductsName" column="control_products_name"></result> <result property="productHome" column="product_home"></result> - <result property="productHomeName" column="product_home_name"></result> <result property="type" column="type"></result> <result property="unitName" column="unitName"></result> <result property="formatName" column="formatName"></result> <result property="safetynum" column="safetynum"></result> + <result property="density" column="density"></result> </resultMap> <sql id="queryWhereSql"> @@ -62,27 +62,21 @@ left join base_meta d on d.id=a.product_home where a.valid_flag = 1 </select> - <select id="getSysReagent" parameterType="java.lang.String" resultMap="SysReagent" > + <select id="getSysReagent" resultMap="SysReagent" > select * from sys_reagent where id = #{id} and valid_flag = 1 </select> - <select id="getSysReagentDetail" parameterType="java.lang.String" resultType="java.util.Map"> - select sr.name ,sr.main_metering,sr.memo memo,sr.product_sn productCode,bm.meta_value reagentFormat ,sm.meta_value controlProducts,am.meta_value unit + <select id="getSysReagentDetail" resultType="java.util.Map"> + select sr.name ,sr.main_metering,sr.memo memo,sr.product_sn productCode,sr.reagent_format as reagentFormat ,sr.control_products as controlProducts,sr.reagent_unit as unit from sys_reagent sr - left join base_meta bm on bm.id = sr.reagent_format - LEFT JOIN base_meta sm on sr.control_products = sm.id - LEFT JOIN base_meta am on sr.reagent_unit = am.id where sr.id = #{id} and sr.valid_flag = 1 </select> <select id="getSysReagentList" 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,f.id favor,f.create_time favortime + select sr.*, ifnull(w.reserve,0) as reserve,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 (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 @@ -102,20 +96,19 @@ FROM ( SELECT - sr.*, ss.meta_value AS product_home_name, - bm.meta_value AS control_products_name, + sr.*, supplier. NAME AS supplierName, f.id favor, - f.create_time favortime + 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} ,"%") @@ -130,21 +123,20 @@ and sr.product_sn like concat("%", #{productSn} ,"%") </if> UNION ALL - SELECT - sr.*, ss.meta_value AS product_home_name, - bm.meta_value AS control_products_name, + (SELECT + sr.*, supplier.NAME AS supplierName, f.id favor, - f.create_time favortime + 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} ,"%") @@ -161,6 +153,7 @@ <if test="MaxSize != null"> limit #{MaxSize} </if> + ) ) as reagent ORDER BY reagent.favortime DESC,length(reagent.name),price asc <if test="first != null and pageSize != null"> @@ -169,14 +162,44 @@ </select> + <select id="reagentSimpleInfoList" resultMap="SysReagent"> + select sr.id,sr.name,sr.cas,sr.product_sn,sr.create_time,sr.update_time from sys_reagent sr + <where> + and sr.valid_flag = 1 and sr.type=1 + <if test="cas != null and cas != ''"> + and sr.cas like concat("%", #{cas} ,"%") + </if> + <if test="name != null and name != ''"> + and sr.name like concat("%", #{name} ,"%") + </if> + </where> + order by sr.create_time desc + limit #{first},#{pageSize} + </select> + <select id="reagentSimpleInfoCount" resultType="int"> + select count(1) from sys_reagent sr + <where> + and sr.valid_flag = 1 and sr.type=1 + <if test="cas != null and cas != ''"> + and sr.cas like concat("%", #{cas} ,"%") + </if> + <if test="name != null and name != ''"> + and sr.name like concat("%", #{name} ,"%") + </if> + </where> + </select> + <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.*, + 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 @@ -213,11 +236,10 @@ <select id="favorCount" parameterType="java.util.Map" resultType="int"> select count(1) 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 @@ -241,15 +263,12 @@ </select> <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 + select sr.*,ifnull(w.reserve,0) as reserve, 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) <if test="cas != null and cas != ''"> and sr.cas = #{cas} </if> @@ -259,7 +278,7 @@ <if test="name != null and name != ''"> and sr.name like concat("%", #{name} ,"%") </if> - <if test="type != null"> + <if test="type != null and type != ''"> and sr.type = #{type} </if> <if test="productSn != null and productSn != ''"> @@ -274,10 +293,7 @@ <select id="getSysReagentTotalCount" parameterType="java.util.Map" resultType="int"> select count(1) 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 LEFT JOIN favor f on f.reagent_id = sr.id AND f.user_id = #{user} where sr.valid_flag = 1 @@ -290,11 +306,10 @@ <select id="reagentCount" parameterType="java.util.Map" resultType="int"> select count(1) 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) <if test="cas != null and cas != ''"> and sr.cas like concat("%", #{cas} ,"%") </if> @@ -312,9 +327,14 @@ <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) <if test="cas != null and cas != ''"> and sr.cas = #{cas} + </if> + <if test="type != null"> + and sr.type = #{type} </if> <if test="supplierId != null and supplierId != ''"> and sr.supplier_id = #{supplierId} @@ -322,20 +342,15 @@ <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> </select> - <select id="getReagentUnitByReagentId" parameterType="java.lang.String" resultType="java.lang.String"> - SELECT bm.meta_value + <select id="getReagentUnitByReagentId" resultType="java.lang.String"> + SELECT sr.reagent_unit 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> @@ -382,42 +397,25 @@ </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, + sr.*, 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 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 id="insertSysReagent" parameterType="com.nanometer.smartlab.entity.SysReagent" useGeneratedKeys = "true" keyProperty = "id"> + insert into sys_reagent(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,density) + values ( #{name}, #{cas}, #{reagentType}, #{reagentCharacter}, #{supplierId}, #{reagentFormat}, #{mainMetering}, #{reagentUnit}, #{price}, #{perBox}, #{memo}, 1, now(), now(),#{deadline}, #{productSn}, #{dangerousFlag},#{controlProducts},#{productHome},#{type},#{density}) </insert> <update id="updateSysReagent" parameterType="com.nanometer.smartlab.entity.SysReagent"> update sys_reagent set name=#{name}, cas=#{cas}, reagent_type=#{reagentType}, reagent_character=#{reagentCharacter}, supplier_id=#{supplierId}, reagent_format=#{reagentFormat}, main_metering=#{mainMetering}, reagent_unit=#{reagentUnit}, price=#{price}, per_box=#{perBox}, memo=#{memo}, update_time=now(), deadline = #{deadline}, product_sn = #{productSn}, dangerous_flag = #{dangerousFlag}, control_products = #{controlProducts} - ,product_home=#{productHome},type=#{type} + ,product_home=#{productHome},type=#{type},density = #{density} where id=#{id} </update> @@ -469,29 +467,34 @@ set safetynum = #{safetynum} where id = #{id} </update> + <update id="updateSysReagentPriceById"> + update sys_reagent + set price = #{price} + where id = #{reagentId} - <select id="countReagentByDetail" resultMap="SysReagent"> + </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 bm3 on sr.main_metering = bm3.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 sys_supplier supply on sr.supplier_id = supply.id - <where> - <if test="params.reagent_unit != null and params.reagent_unit != ''"> - and UPPER(bm4.meta_value) = UPPER(#{params.reagent_unit}) - </if> - <if test="params.main_metering != null and params.main_metering != ''"> - and UPPER(bm3.meta_value) = UPPER(#{params.main_metering}) + 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} + and sr.product_home = #{params.product_home} </if> <if test="params.reagent_character != null and params.reagent_character != ''"> - and bm2.meta_value = #{params.reagent_character} + and sr.params.reagent_character = #{params.reagent_character} + </if> + <if test="params.reagent_format != null and params.reagent_format != ''"> + and sr.params.reagent_format = #{params.reagent_format} + </if> + <if test="params.reagent_type != null and params.reagent_type != ''"> + and sr.reagent_type = #{params.reagent_type} </if> <if test="params.cas != null and params.cas != ''"> and sr.cas = #{params.cas} @@ -500,7 +503,7 @@ and sr.product_sn = #{params.product_sn} </if> <if test="params.name != null and params.name != ''"> - and sr.name = #{params.name} + and sr.name = #{params.name}; </if> </where> @@ -508,4 +511,47 @@ </select> + <select id="getRowData" resultMap="SysReagent"> + select + a.*, + s.name AS supplierName, + s.valid_flag as supplierFlag + from sys_reagent a + left join sys_supplier s ON s.id = a.supplier_id + where a.id = #{id} + + </select> + <select id="getSysReagentListNewRowData" resultMap="SysReagent"> + select sr.*, ifnull(w.reserve,0) as reserve,supplier.name as supplierName + from sys_reagent as sr + 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.*, + CASE WHEN type = 0 THEN '耗材' WHEN type = 1 THEN '试剂' ELSE '' END AS kind, + supplier.name as supplierName + from sys_reagent as sr + 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