kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
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
<?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.OpeOrderDao">
  <resultMap id="OpeOrder" type="com.nanometer.smartlab.entity.OpeOrder">
    <id property="id" column="id"/>
    <result property="orderCode" column="order_code"></result>
    <result property="orderName" column="order_name"></result>
    <result property="status" column="status" typeHandler="com.nanometer.smartlab.entity.handler.ApplyStatusHandler"></result>
    <result property="createTime" column="create_time"></result>
    <result property="updateTime" column="update_time"></result>
    <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
    <result property="memo" column="memo"></result>
    <result property="consigneeUserId" column="consignee_user_id"></result>
    <result property="orderUserId" column="order_user_id"></result>
    <result property="arrivalTime" column="arrival_time"></result>
    <result property="orderUserName" column="orderUserName"></result>
    <result property="consigneeUserName" column="consigneeUserName"></result>
    <result property="supplierId" column="supplier_id"></result>
    <result property="supplierName" column="supplier_name"></result>
  </resultMap>
 
  <sql id="queryWhereSql">
    <if test="orderCode != null and orderCode != ''">
      and oo.order_code like #{orderCode}
    </if>
    <if test="orderName != null and orderName != ''">
      and oo.order_name like #{orderName}
    </if>
    <if test="startTime!= null">
      and oo.create_time >= #{startTime}
    </if>
    <if test="endTime != null">
      and #{endTime} >= oo.create_time
    </if>
    <if test="status != null">
      and oo.status = #{status}
    </if>
    <if test="orderUserName != null and orderUserName != ''">
      and su.name like #{orderUserName}
    </if>
    <if test="editId != null and editId != ''">
      and oo.id != #{editId}
    </if>
    <if test="supplierId != null and supplierId != ''">
      and oo.supplier_id != #{supplierId}
    </if>
  </sql>
 
  <select id="getOpeOrder"   resultMap="OpeOrder" >
    select oo.*, su.name as orderUserName, su2.name as consigneeUserName
    from ope_order as oo
    left join sys_user as su on oo.order_user_id = su.id
    left join sys_user as su2 on oo.consignee_user_id = su2.id
    where oo.id = #{id} and oo.valid_flag = 1
  </select>
 
  <select id="getOpeOrderList" parameterType="java.util.Map" resultMap="OpeOrder">
    select oo.*, su.name as orderUserName, su2.name as consigneeUserName
    from ope_order as oo
    left join sys_user as su on oo.order_user_id = su.id
    left join sys_user as su2 on oo.consignee_user_id = su2.id
    where oo.valid_flag = 1
    <include refid="queryWhereSql"/>
    order by oo.create_time desc
    <if test="first != null and pageSize != null">
      limit #{first}, #{pageSize}
    </if>
  </select>
 
  <select id="getOpeOrderTotalCount" parameterType="java.util.Map" resultType="int">
    select count(1)
    from ope_order as oo
    left join sys_user as su on oo.order_user_id = su.id
    where oo.valid_flag = 1
    <include refid="queryWhereSql"/>
  </select>
 
  <insert id="insertOpeOrder" parameterType="com.nanometer.smartlab.entity.OpeOrder" useGeneratedKeys = "true" keyProperty = "id">
    insert into ope_order( order_code, order_name, status, memo, consignee_user_id, order_user_id, arrival_time, valid_flag, create_time, update_time, supplier_id, supplier_name)
    values ( #{orderCode}, #{orderName}, #{status}, #{memo}, #{consigneeUserId}, #{orderUserId}, #{arrivalTime}, 1, now(), now(),#{supplierId},#{supplierName})
  </insert>
 
  <update id="updateOpeOrder" parameterType="com.nanometer.smartlab.entity.OpeOrder">
    update ope_order
    <set>
      <if test="orderCode != null">order_code=#{orderCode},</if>
      <if test="orderName != null">order_name=#{orderName},</if>
      <if test="status != null">status=#{status},</if>
      <if test="memo != null">memo=#{memo},</if>
      <if test="consigneeUserId != null">consignee_user_id=#{consigneeUserId},</if>
      <if test="orderUserId != null">order_user_id=#{orderUserId},</if>
      <if test="arrivalTime != null">arrival_time=#{arrivalTime},</if>
      <if test="supplierId != null">supplier_id=#{supplierId},</if>
      <if test="supplierName != null">supplier_name=#{supplierName},</if>
      update_time=now()
    </set>
    where id=#{id}
  </update>
 
  <update id="deleteOpeOrder" parameterType="java.util.List">
    update ope_order set valid_flag=0, update_time=now()
    where id in
    <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
      #{item}
    </foreach>
  </update>
  <update id="updateOpeOrderStatus" parameterType="com.nanometer.smartlab.entity.OpeOrder">
    update ope_order
    set status = #{status},
    arrival_time = #{arrivalTime},
    consignee_user_id = #{consigneeUserId}
    where id = #{id}
  </update>
 
  <select id="selectParentOrder" resultType="com.nanometer.smartlab.entity.OpeOrder">
        select
        oo.id,
        oo.status,
        oo.order_code orderCode,
        oo.order_name orderName,
        oo.order_user_id  orderUserId,
        oo.consignee_user_id
        from    ope_apply_order oao
        left join  ope_order oo on oo.id = oao.ope_order_id
        where oo.valid_flag = 1
        and oao.ope_apply_id = #{0}
 
    </select>
</mapper>