<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.nanometer.smartlab.dao.OpeUseFlowDao">
|
<resultMap id="OpeUseFlow" type="com.nanometer.smartlab.entity.OpeUseFlow">
|
<id property="id" column="id"/>
|
<result property="reagentCode" column="reagent_code"></result>
|
<result property="articleNumber" column="articleNumber"></result>
|
<result property="status" column="status" typeHandler="com.nanometer.smartlab.entity.handler.ArrivalStatusHandler"></result>
|
<result property="houseId" column="house_id"></result>
|
<result property="containerId" column="container_id"></result>
|
<result property="userId" column="user_id"></result>
|
<result property="userName" column="userName"></result>
|
<result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
|
<result property="createTime" column="create_time"></result>
|
<result property="realstatus" column="realstatus"></result>
|
<result property="operateState" column="operatestate"></result>
|
<result property="remainder" column="remainder"></result>
|
<result property="place" column="place"></result>
|
<result property="storeType" column="store_type" typeHandler="com.nanometer.smartlab.entity.handler.StoreTypeHandler"></result>
|
<result column="laboratoryName" jdbcType="VARCHAR" property="laboratoryName" />
|
<result column="warehouseName" jdbcType="VARCHAR" property="warehouseName" />
|
<result column="warehouseContainerName" jdbcType="VARCHAR" property="warehouseContainerName" />
|
<result column="warehouseContainerCode" jdbcType="VARCHAR" property="warehouseContainerCode" />
|
<result column="laboratoryContainerName" jdbcType="VARCHAR" property="laboratoryContainerName" />
|
<result column="laboratoryContainerCode" jdbcType="VARCHAR" property="laboratoryContainerCode" />
|
<result column="operatestateName" jdbcType="VARCHAR" property="operatestateName" />
|
|
<association property="reagent" javaType="com.nanometer.smartlab.entity.SysReagent">
|
<id property="id" column="reagentId"/>
|
<result property="name" column="name"></result>
|
<result property="cas" column="cas"></result>
|
<result property="reagentType" column="reagent_type"></result>
|
<result property="reagentCharacter" column="reagent_character"></result>
|
<result property="supplierId" column="supplier_id"></result>
|
<result property="reagentFormat" column="reagent_format"></result>
|
<result property="mainMetering" column="main_metering"></result>
|
<result property="reagentUnit" column="reagent_unit"></result>
|
<result property="price" column="price"></result>
|
<result property="perBox" column="per_box"></result>
|
<result property="memo" column="memo"></result>
|
<result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
|
<result property="createTime" column="create_time"></result>
|
<result property="updateTime" column="update_time"></result>
|
<result property="supplierName" column="supplierName"></result>
|
</association>
|
</resultMap>
|
|
<update id="updateTimeByCode" parameterType="java.util.Map">
|
update ope_use_flow set create_time=now() where reagent_code=#{code} and status=#{status}
|
</update>
|
<sql id="queryWhereSql">
|
<if test="reagentId != null and reagentId != ''">
|
and ors.reagent_id = #{reagentId}
|
</if>
|
<if test="userId != null and userId != ''">
|
and oa.user_id = #{userId}
|
</if>
|
<if test="departmentUserIds != null">
|
and oa.user_id in
|
<foreach collection="departmentUserIds" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="reagentCode != null and reagentCode != ''">
|
and oa.reagent_code like #{reagentCode}
|
</if>
|
<if test="status != null">
|
and oa.status = #{status}
|
</if>
|
<if test="reagentName != null and reagentName != ''">
|
and sr.name like concat('%',#{reagentName},'%')
|
</if>
|
<if test="houseName != null and houseName != ''">
|
and ( l.name like concat('%',#{houseName},'%') or w.name like concat('%',#{houseName},'%') )
|
</if>
|
<if test="startDate != null and startDate !=''">
|
and oa.create_time >= #{startDate}
|
</if>
|
<if test="endDate != null and endDate !=''">
|
and oa.create_time <= #{endDate}
|
</if>
|
</sql>
|
|
<sql id="queryColumns">
|
select oa.*,
|
sr.*,
|
ors.article_number as articleNumber,
|
sr.id as reagentId,
|
su.name as userName,
|
ss.name as supplierName,
|
l.name as laboratoryName,
|
w.name as warehouseName,
|
lc.name as warehouseContainerName,
|
wc.name as laboratoryContainerName,
|
lc.container_code as warehouseContainerCode,
|
wc.container_code as laboratoryContainerCode,
|
bm1.meta_value as operatestateName
|
</sql>
|
|
<sql id="queryJoins">
|
left join ope_reagent_status ors on ors.reagent_code = oa.reagent_code
|
left join sys_reagent sr on ors.reagent_id = sr.id
|
left join sys_supplier as ss on sr.supplier_id = ss.id
|
left join sys_user as su on oa.user_id = su.id
|
left join sys_warehouse_container wc on wc.id = oa.container_id
|
left join sys_warehouse w on w.id = wc.warehouse_id
|
left join sys_laboratory_container lc on lc.id = oa.container_id
|
left join sys_laboratory l on l.id = lc.laboratory_id
|
left join base_meta bm1 on bm1.id = oa.operatestate
|
</sql>
|
|
<select id="getOpeUseFlowList" parameterType="java.util.Map" resultMap="OpeUseFlow">
|
<include refid="queryColumns"/>
|
from ope_use_flow as oa
|
<include refid="queryJoins"/>
|
where oa.valid_flag = 1
|
<include refid="queryWhereSql"/>
|
order by oa.create_time desc
|
<if test="first != null and pageSize != null">
|
limit #{first}, #{pageSize}
|
</if>
|
</select>
|
|
<select id="getOpeUseFlowTotalCount" parameterType="java.util.Map" resultType="int">
|
select count(1)
|
from ope_use_flow as oa
|
<include refid="queryJoins"/>
|
where oa.valid_flag = 1
|
<include refid="queryWhereSql"/>
|
</select>
|
|
<insert id="insertOpeUseFlow" parameterType="com.nanometer.smartlab.entity.OpeUseFlow">
|
insert into ope_use_flow(id, reagent_code, status, house_id, container_id, user_id, remainder, place, store_type, valid_flag, create_time, realstatus, operatestate)
|
values (#{id}, #{reagentCode}, #{status}, #{houseId}, #{containerId}, #{userId}, #{remainder}, #{place}, #{storeType}, 1, #{createTime}, #{realstatus},#{operateState})
|
</insert>
|
|
|
<delete id="deleteByReagentCode" parameterType="java.lang.String" >
|
delete from ope_use_flow
|
where reagent_code=#{reagentCode}
|
</delete>
|
|
|
<delete id="deleteByReagentCodeAndStatus" parameterType="java.util.Map" >
|
update ope_use_flow
|
set valid_flag = #{validFlag}
|
where reagent_code = #{reagentCode} and status = #{status}
|
</delete>
|
|
|
</mapper>
|