kongdeqiang
2023-02-10 421e01bc2af7515bb67df5f7f81652710b403067
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
133
134
135
136
137
138
139
140
<?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="cn.exrick.xboot.your.mapper.SignCountMapper">
    <select id="signCounts" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
 
        SELECT
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '1'.toString()">
            DATE(DATE_FORMAT(send_date,'%Y-%m-%d') ) sendDate,
            amount,
            abnormal_sign as abnormalSign,
            not_sign_count as  notSignCount,
            sign_count as signCount ,
            CONCAT_WS( '',ROUND(proportion,0), '%') as proportion,
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '2'.toString()">
            WEEK(DATE_FORMAT(DATE_SUB(send_date,INTERVAL 1 DAY),'%Y-%m-%d')) sendDate,
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '3'.toString()">
            CONCAT_WS('',YEAR(send_date),'年',MONTH(DATE_FORMAT(send_date,'%Y-%m-%d')),'月')sendDate,
            sum(amount),
            sum(abnormal_sign) AS abnormalSign,
            sum(not_sign_count) AS notSignCount,
            sum(sign_count )AS signCount,
            ROUND(AVG(proportion),0) as proportionInt,
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '4'.toString()">
            YEAR(DATE_FORMAT(DATE_SUB(send_date,INTERVAL 1 DAY),'%Y-%m-%d')) sendDate,
        </if>
        car_name,
        (CASE `batch` WHEN '01段' THEN batch ELSE 0 END) as 'oneBatch',
        (CASE `batch` WHEN '02段' THEN batch ELSE 0 END) as 'twoBatch',
        (CASE `batch` WHEN '03段' THEN batch ELSE 0 END) as 'threeBatch',
        (CASE `batch` WHEN '04段' THEN batch ELSE 0 END) as 'fourBatch',
        (CASE `batch` WHEN '05段' THEN batch ELSE 0 END) as 'fiveBatch',
        line,
        batch,
        user_name as userName
        FROM
        t_sign
    <where>
        1=1
        <if test="bo.line != null and bo.line != ''" >
            AND  line = #{bo.line}
        </if>
        <if test="bo.carName != null and bo.carName != ''" >
            AND car_name like  CONCAT ('%',#{bo.carName},'%')
        </if>
        <if test="bo.batch != null and bo.batch != ''" >
            AND  batch = #{bo.batch}
        </if>
        <if test="bo.userName != null and bo.userName != ''" >
            AND  user_name = #{bo.userName}
        </if>
        <if test="bo.sendDate != null and bo.sendDate != ''">
            AND  DATE_FORMAT(send_date,'%Y-%m-%d') = #{bo.sendDate}
        </if>
        <if test="bo.sendDateStart != null and bo.sendDateStart != ''">
            AND send_date >= #{bo.sendDateStart}
        </if>
        <if test="bo.sendDateEnd != null and bo.sendDateEnd != ''">
            AND send_date &lt;= #{bo.sendDateEnd}
        </if>
    </where>
        GROUP BY
       send_date,
        car_name,
        line,
        batch,
        amount,
        abnormal_sign,
        not_sign_count,
        sign_count,
        proportion,
        user_name
        ORDER BY
        line ASC,
        send_date asc
    </select>
 
    <select id="signCount" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
 
        SELECT
        DATE_FORMAT(send_date,'%Y-%m-%d')  as  sendDate,
        (CASE `batch` WHEN '01段' THEN batch ELSE 0 END) as 'oneBatch',
        (CASE `batch` WHEN '02段' THEN batch ELSE 0 END) as 'twoBatch',
        (CASE `batch` WHEN '03段' THEN batch ELSE 0 END) as 'threeBatch',
        (CASE `batch` WHEN '04段' THEN batch ELSE 0 END) as 'fourBatch',
        (CASE `batch` WHEN '05段' THEN batch ELSE 0 END) as 'fiveBatch',
        CONCAT_WS('',YEAR(send_date),'年',MONTH(send_date),'月')sendMonth,
        amount,
        abnormal_sign as abnormalSign,
        not_sign_count as  notSignCount,
        sign_count as signCount ,
        CONCAT_WS( '',ROUND(proportion,0), '%') as proportion,
        car_name,
        line,
        batch,
        user_name as userName
        FROM
        t_sign
        <where>
            1=1
            <if test="bo.line != null and bo.line != ''" >
                AND  line = #{bo.line}
            </if>
            <if test="bo.carName != null and bo.carName != ''" >
                AND car_name like  CONCAT ('%',#{bo.carName},'%')
            </if>
            <if test="bo.batch != null and bo.batch != ''" >
                AND  batch = #{bo.batch}
            </if>
            <if test="bo.userName != null and bo.userName != ''" >
                AND  user_name = #{bo.userName}
            </if>
            <if test="bo.sendDate != null and bo.sendDate != ''">
                AND  DATE_FORMAT(send_date,'%Y-%m-%d') = #{bo.sendDate}
            </if>
            <if test="bo.sendDateStart != null and bo.sendDateStart != ''">
                AND send_date >= #{bo.sendDateStart}
            </if>
            <if test="bo.sendDateEnd != null and bo.sendDateEnd != ''">
                AND send_date &lt;= #{bo.sendDateEnd}
            </if>
        </where>
        GROUP BY
         send_date,
        car_name,
        line,
        batch,
        amount,
        abnormal_sign,
        not_sign_count,
        sign_count,
        proportion,
        user_name
        ORDER BY
        line ASC,
        send_date asc
    </select>
</mapper>