李宇
2021-01-21 9c9503de4fb1e1b0127f83c8b2b0f645c6ab9e9c
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
125
126
127
128
129
130
131
132
<?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>
        <result property="productSn" column="product_sn"/>
    </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>
    <if test="productSn != null and productSn != ''">
        and sr.product_sn like concat('%',#{productSn},'%')
    </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>
    <insert id="insertOpeWarehouseReserve2" parameterType="com.nanometer.smartlab.entity.OpeWarehouseReserve">
        insert into ope_warehouse_reserve(id, reagent_id, article_number, reserve, valid_flag, update_time,warehouseId,apply_code,order_code)
        values (#{id}, #{reagentId}, #{articleNumber}, #{reserve}, 1, now(),#{warehouseId},#{applyCode},#{orderCode})
    </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>