李宇
2021-01-12 fce41585f6c4e09c12c7e2a3150d4dfbf1f46bb0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?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.OpeWarehouseReserveDao">
  <resultMap id="OpeWarehouseReserve" type="com.nanometer.smartlab.entity.OpeWarehouseReserve">
    <id property="id" column="id"/>
    <result property="articleNumber" column="article_number"></result>
    <result property="reserve" column="reserve"></result>
    <result property="updateTime" column="update_time"></result>
      <result property="warehouseId" column="warehouseId"></result>
      <result property="warehouseName" column="warehouseName"></result>
    <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
 
    <result property="reagentId" column="reagent_id"></result>
    <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>
        <result property="productHome" column="product_home"></result>
            <result property="productHomeName" column="productHomeName"></result>
    </association>
  </resultMap>
 
  <sql id="queryWhereSql">
    <if test="reagentId != null and reagentId != ''">
      and oa.reagent_id = #{reagentId}
    </if>
    <if test="articleNumber != null and articleNumber != ''">
      and oa.article_number = #{articleNumber}
    </if>
    <if test="supplierId != null and supplierId != ''">
      and ss.id = #{supplierId}
    </if>
    <if test="editId != null and editId != ''">
      and oa.id != #{editId}
    </if>
    <if test="reagentName != null and reagentName != ''">
      and sr.name like concat('%',#{reagentName},'%')
    </if>
      <if test="warehouseId != null and warehouseId != ''">
          and oa.warehouseId=#{warehouseId}
      </if>
  </sql>
 
  <sql id="queryColumns">
        select oa.*,
        sr.*,
        sr.id as reagentId,
        ss.name as supplierName,
        bm.meta_value as productHomeName,
        sw.name warehouseName
    </sql>
 
    <sql id="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 base_meta as bm on sr.product_home = bm.id
        left join sys_warehouse sw on sw.id=oa.warehouseId
    </sql>
 
 
 
  <select id="getOpeWarehouseReserveList" parameterType="java.util.Map" resultMap="OpeWarehouseReserve">
    <include refid="queryColumns"/>
    from ope_warehouse_reserve as oa
   <include refid="queryJoins"/>
    where oa.valid_flag = 1 and oa.reserve > 0
    <include refid="queryWhereSql"/>
 
    order by oa.update_time desc,oa.reserve desc
    <if test="first != null and pageSize != null">
      limit #{first}, #{pageSize}
    </if>
  </select>
 
    <select id="getOpeWarehouseReserve" parameterType="com.nanometer.smartlab.entity.OpeWarehouseReserve" resultMap="OpeWarehouseReserve">
        select * from ope_warehouse_reserve where reagent_id=#{reagentId} and article_number=#{articleNumber} and valid_flag=1
    </select>
 
  <select id="getOpeWarehouseReserveTotalCount" parameterType="java.util.Map" resultType="int">
    select count(1)
    from ope_warehouse_reserve as oa
    <include refid="queryJoins"/>
    where oa.valid_flag = 1 and oa.reserve > 0
    <include refid="queryWhereSql"/>
  </select>
 
    <insert id="insertOpeWarehouseReserve" parameterType="com.nanometer.smartlab.entity.OpeWarehouseReserve">
        insert into ope_warehouse_reserve(id, reagent_id, article_number, reserve, valid_flag, update_time,warehouseId)
        values (#{id}, #{reagentId}, #{articleNumber}, #{reserve}, 1, now(),#{warehouseId})
    </insert>
 
    <update id="updateOpeWarehouseReserve" parameterType="com.nanometer.smartlab.entity.OpeWarehouseReserve">
        update ope_warehouse_reserve set reagent_id=#{reagentId},warehouseId=#{warehouseId}, article_number=#{articleNumber}, reserve=#{reserve}, update_time=now()
        where id=#{id}
    </update>
 
    <select id="selectByReId" resultMap="OpeWarehouseReserve">
        select * from ope_warehouse_reserve where reagent_id=#{id}
    </select>
 
    <update id="updateByReId" parameterType="java.util.Map">
        update ope_warehouse_reserve set reagent_id=#{newReId} where reagent_id=#{oldReId}
    </update>
 
 
    <update id="updateCount" parameterType="java.util.Map">
        update ope_warehouse_reserve set reserve=reserve+1 where reagent_id=#{reagentId} and article_number=#{articleNumber}
    </update>
 
 
</mapper>