lyfO_o
2021-07-12 ae60dc2d56c553dd4b0ef0a5b0f2f3a676752dbb
src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
@@ -206,12 +206,74 @@
  </select>
   <select id="getOpeReagentStatusListForLab" parameterType="java.util.Map" resultMap="OpeReagentStatus">
      <include refid="queryColumns"/>
      select oa.*,
      sr.*,
      sr.id as reagentId,
      su.name as userName,
      <if test="status != null">
         <choose>
            <when test="status == 1 or status == 2">
               swc.container_code as containerCode,
               sw.name as houseName,
            </when>
         </choose>
      </if>
      ss.name as supplierName
      from ope_reagent_status as oa
      <include refid="queryJoins"/>
      left join sys_reagent sr on oa.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
      <if test="status != null">
         <choose>
            <when test="status == 1">
               left join sys_warehouse as sw on sw.id = oa.house_id
               left join sys_warehouse_container as swc on swc.id = oa.container_id
            </when>
            <when test="status == 2">
               left join sys_laboratory as sw on sw.id = oa.house_id
               left join sys_laboratory_container as swc on swc.id = oa.container_id
            </when>
         </choose>
      </if>
      where oa.valid_flag = 1
      <include refid="queryWhereSqlForLab"/>
      <if test="reagentId != null and reagentId != ''">
         and oa.reagent_id = #{reagentId}
      </if>
      <if test="userId != null and userId != ''">
         and oa.user_id = #{userId}
      </if>
      <if test="department != null and department != ''">
         and sw.department = #{department}
      </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="articleNumber != null and articleNumber != ''">
         and oa.article_number = #{articleNumber}
      </if>
      <if test="editId != null and editId != ''">
         and oa.id != #{editId}
      </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="name != null and name != ''">
         and sr.name like #{name}
      </if>
      <choose>
         <when test="status == 2 and project != null and project != ''">
            and sw.project like concat("%",#{project},"%")
         </when>
            <when test="status == 2 and labName != null and labName != ''">
                and sw.name like concat("%",#{labName},"%")
            </when>
      </choose>
      order by oa.reagent_code asc
      <if test="first != null and pageSize != null">
         limit #{first}, #{pageSize}
@@ -223,7 +285,6 @@
    from ope_reagent_status as oa
   <include refid="queryJoins3"/>
    where oa.valid_flag = 1
         and (oa.status = -1 or oa.status = 0 )
    <include refid="queryWhereSql3"/>
   <if   test="applyPerson != null and applyPerson != ''"  >
      and su.name like concat("%",#{applyPerson},"%")
@@ -252,9 +313,60 @@
   <select id="getOpeReagentStatusTotalCountForLab" parameterType="java.util.Map" resultType="int">
      select count(1)
      from ope_reagent_status as oa
      <include refid="queryJoins"/>
      left join sys_reagent sr on oa.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
      <if test="status != null">
         <choose>
            <when test="status == 1">
               left join sys_warehouse as sw on sw.id = oa.house_id
               left join sys_warehouse_container as swc on swc.id = oa.container_id
            </when>
            <when test="status == 2">
               left join sys_laboratory as sw on sw.id = oa.house_id
               left join sys_laboratory_container as swc on swc.id = oa.container_id
            </when>
         </choose>
      </if>
      where oa.valid_flag = 1
      <include refid="queryWhereSqlForLab"/>
      <if test="reagentId != null and reagentId != ''">
         and oa.reagent_id = #{reagentId}
      </if>
      <if test="userId != null and userId != ''">
         and oa.user_id = #{userId}
      </if>
      <if test="department != null and department != ''">
         and sw.department = #{department}
      </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="articleNumber != null and articleNumber != ''">
         and oa.article_number = #{articleNumber}
      </if>
      <if test="editId != null and editId != ''">
         and oa.id != #{editId}
      </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="name != null and name != ''">
         and sr.name like #{name}
      </if>
      <choose>
         <when test="status == 2 and project != null and project != ''">
            and sw.project like concat("%",#{project},"%")
         </when>
            <when test="status == 2 and labName != null and labName != ''">
                and sw.name like concat("%",#{labName},"%")
            </when>
      </choose>
   </select>
  <select id="getPersonReagentStatusTotalCount" parameterType="java.util.Map" resultType="int">
@@ -263,7 +375,6 @@
   <include refid="queryJoins2"/>
   left  join sys_user su on su.id = oa.user_id
    where oa.valid_flag = 1
          and (oa.status = -1 or oa.status = 0 )
    <include refid="queryWhereSql2"/>
     <if   test="applyPerson != null and applyPerson != ''"  >
        and su.name like concat("%",#{applyPerson},"%")
@@ -427,11 +538,113 @@
   <update id="updateByReId" parameterType="java.util.Map">
        update ope_reagent_status set reagent_id=#{newReId} where reagent_id=#{oldReId}
    </update>
    <update id="updateArticleNumberByRCode">
      update ope_reagent_status set article_number = #{1}
      where reagent_code = #{0}
   </update>
<select id="selectReagentCodesByReId" parameterType="java.lang.String" resultType="java.lang.String">
    <select id="selectReagentCodesByReId" parameterType="java.lang.String" resultType="java.lang.String">
   select reagent_code from ope_reagent_status WHERE
   reagent_id = #{reagentId}
   and valid_flag = 1
   ORDER BY update_time
</select>
    <select id="countReagentByArticleAndWarehouse" resultType="java.lang.Integer">
      select count(*)
      from ope_reagent_status
      WHERE status = 1
      <if test="reagentId != null and reagentId !=''">
         and reagent_id = #{reagentId}
      </if>
      <if test="articleNumber != null and articleNumber !=''">
         and article_number = #{articleNumber}
      </if>
      <if test="warehouseId != null and warehouseId !=''">
         and house_id = #{warehouseId}
      </if>
   </select>
   <select id="selectExportList" resultType="java.util.Map">
      select oa.article_number articleNumber,
      oa.reagent_code reagentCode,
      oa.remainder,
      bm1.meta_value productHome,
      bm2.meta_value reagentFomart,
      sr.name reagentName,
      sr.cas cas,
      <if test="status != null">
         <choose>
            <when test="status == 1 or status == 2">
               swc.container_code as containerCode,
               sw.name as houseName,
            </when>
         </choose>
      </if>
      ss.name as supplierName
      from ope_reagent_status as oa
      left join sys_reagent sr on oa.reagent_id = sr.id
      left join base_meta bm1 on bm1.id = sr.product_home
      left join base_meta bm2 on bm2.id = sr.reagent_format
      left join sys_supplier as ss on sr.supplier_id = ss.id
      left join sys_user as su on oa.user_id = su.id
      <if test="status != null">
         <choose>
            <when test="status == 1">
               left join sys_warehouse as sw on sw.id = oa.house_id
               left join sys_warehouse_container as swc on swc.id = oa.container_id
            </when>
            <when test="status == 2">
               left join sys_laboratory as sw on sw.id = oa.house_id
               left join sys_laboratory_container as swc on swc.id = oa.container_id
            </when>
         </choose>
      </if>
      where oa.valid_flag = 1
      <if test="reagentId != null and reagentId != ''">
         and oa.reagent_id = #{reagentId}
      </if>
      <if test="userId != null and userId != ''">
         and oa.user_id = #{userId}
      </if>
      <if test="department != null and department != ''">
         and sw.department = #{department}
      </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="articleNumber != null and articleNumber != ''">
         and oa.article_number = #{articleNumber}
      </if>
      <if test="editId != null and editId != ''">
         and oa.id != #{editId}
      </if>
      <if test="reagentCode != null and reagentCode != ''">
         and oa.reagent_code like  concat("%",#{reagentCode},"%")
      </if>
      <if test="status != null">
         and oa.status = #{status}
      </if>
      <if test="name != null and name != ''">
         and sr.name like concat("%",#{name},"%")
      </if>
      <choose>
         <when test="status == 2 and project != null and project != ''">
            and sw.project like concat("%",#{project},"%")
         </when>
            <when test="status == 2 and labName != null and labName != ''">
                and sw.name like concat("%",#{labName},"%")
            </when>
      </choose>
      order by oa.reagent_code asc
   </select>
    <select id="getStatus" resultMap="OpeReagentStatus">
        select *
        from ope_reagent_status
        where valid_flag = 1
        and reagent_code = #{reagentCode}
        and reagent_id = #{reagentId}
   </select>
</mapper>