liding
7 天以前 3728fa293e1faf4bf4f9bf41105b84ddb43dc82e
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
<?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.ruoyi.inspect.mapper.SealUsageLedgerMapper">
 
    <sql id="LedgerColumns">
        ledger.id, ledger.report_id, ledger.report_code, ledger.ins_order_id,
        ledger.use_time, ledger.seal_ids, ledger.seal_names,
        COALESCE(io.sample_view, '') AS project_name, io.sample_date,
        ledger.use_user_id, ledger.use_user_name, ledger.copies, ledger.version,
        ledger.create_user, ledger.create_time, ledger.update_user, ledger.update_time
    </sql>
 
    <sql id="LedgerFilters">
        <if test="query != null">
            <if test="query.reportCode != null and query.reportCode != ''">
                AND ledger.report_code LIKE CONCAT('%', #{query.reportCode}, '%')
            </if>
            <if test="query.sealName != null and query.sealName != ''">
                AND ledger.seal_names LIKE CONCAT('%', #{query.sealName}, '%')
            </if>
            <if test="query.projectName != null and query.projectName != ''">
                AND io.sample_view LIKE CONCAT('%', #{query.projectName}, '%')
            </if>
            <if test="query.useUserName != null and query.useUserName != ''">
                AND ledger.use_user_name LIKE CONCAT('%', #{query.useUserName}, '%')
            </if>
            <if test="query.startDate != null">
                AND ledger.use_time <![CDATA[ >= ]]> #{query.startDate}
            </if>
            <if test="query.endDate != null">
                AND ledger.use_time <![CDATA[ < ]]> DATE_ADD(#{query.endDate}, INTERVAL 1 DAY)
            </if>
        </if>
    </sql>
 
    <select id="selectLedgerPage" resultType="com.ruoyi.inspect.pojo.SealUsageLedger">
        SELECT <include refid="LedgerColumns"/>
        FROM seal_usage_ledger ledger
        LEFT JOIN ins_order io ON io.id = ledger.ins_order_id
        WHERE 1 = 1
        <include refid="LedgerFilters"/>
        ORDER BY (io.sample_date IS NULL) ASC, io.sample_date DESC, io.id DESC, ledger.id DESC
    </select>
 
    <select id="selectForExport" resultType="com.ruoyi.inspect.pojo.SealUsageLedger">
        SELECT <include refid="LedgerColumns"/>
        FROM seal_usage_ledger ledger
        LEFT JOIN ins_order io ON io.id = ledger.ins_order_id
        WHERE 1 = 1
        <if test="ids != null and ids.size() > 0">
            AND ledger.id IN
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
        <include refid="LedgerFilters"/>
        ORDER BY ledger.use_time DESC, ledger.id DESC
    </select>
 
    <select id="selectProjectName" resultType="java.lang.String">
        SELECT io.sample_view
        FROM ins_order io
        WHERE io.id = #{insOrderId}
    </select>
 
    <update id="updateCopies">
        UPDATE seal_usage_ledger
        SET copies = #{copies},
            version = version + 1,
            update_user = #{updateUser},
            update_time = NOW()
        WHERE id = #{id}
          AND version = #{version}
    </update>
</mapper>