wjli
2024-03-18 84fd23e5e865bd5529441a0c318809a00362f44c
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
@@ -21,7 +21,7 @@
            sum(abnormal_sign) AS abnormalSign,
            sum(not_sign_count) AS notSignCount,
            sum(sign_count )AS signCount,
            CONCAT_WS( '',ROUND(AVG(proportion),0), '%') as proportion,
            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,
@@ -62,21 +62,16 @@
        </if>
    </where>
        GROUP BY
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '1'.toString()">
            DATE(send_date),
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '2'.toString()">
            WEEK(send_date,1),
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '3'.toString()">
            MONTH(send_date),
        </if>
        <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '4'.toString()">
            YEAR(send_date),
        </if>
       send_date,
        car_name,
        line,
        batch
        batch,
        amount,
        abnormal_sign,
        not_sign_count,
        sign_count,
        proportion,
        user_name
        ORDER BY
        line ASC,
        send_date asc
@@ -85,22 +80,78 @@
    <select id="signCount" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
        SELECT
        DATE_FORMAT(send_date,'%Y-%m-%d')  as  sendDate,
        CONCAT_WS('',YEAR(send_date),'年',MONTH(send_date),'月')sendMonth,
        DATE(DATE_FORMAT(send_date,'%Y-%m-%d') ) sendDate,
        car_name,
        batch,
        SUM( amount ) amount,
        SUM( abnormal_sign ) as abnormalSign,
        SUM( not_sign_count ) as  notSignCount,
        SUM( sign_count ) as signCount ,
        CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
        (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,
        user_name as userName,
        line
        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} + ' 23:59:59'
            </if>
        </where>
        GROUP BY
        car_name,
        line,
        send_date,
        batch,
        user_name as userName
        user_name,
        line
        ORDER BY
        line ASC,
        send_date asc
    </select>
    <select id="signCount" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
        SELECT
        CONCAT_WS('',YEAR(send_date),'年',MONTH(send_date),'月')sendMonth,
        DATE(DATE_FORMAT(send_date,'%Y-%m-%d') ) sendDate,
        car_name,
        batch,
        SUM( amount ) amount,
        SUM( abnormal_sign ) as abnormalSign,
        SUM( not_sign_count ) as  notSignCount,
        SUM( sign_count ) as signCount ,
        CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
        (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',
        user_name as userName,
        line
        FROM
        t_sign
        <where>
@@ -128,12 +179,137 @@
            </if>
        </where>
        GROUP BY
          DATE(send_date),
        car_name,
        line,
        batch
        send_date,
        batch,
        user_name,
        line
        ORDER BY
        line ASC,
        send_date asc
    </select>
</mapper>
    <select id="signCountNew" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
        SELECT
        line,
        user_name as userName,
        car_name,SUM(sign_count) as signCount,
        SUM(amount) as amount,
        CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
        (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'
        FROM
        t_sign
        <where>
            1=1 AND
            car_name is not NULL
            <if test="bo.line != null and bo.line != ''" >
                AND  line like  CONCAT ('%', #{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 line,
        user_name,
        car_name,
        batch
    </select>
    <select id="signCount2New" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
        SELECT
        line,
        user_name as userName,
        car_name,SUM(sign_count) as signCount,
        SUM(amount) as amount,
        SUM(not_sign_count) as not_sign_count,
        CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
        (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'
        FROM
        t_sign
        <where>
            1=1 AND
            car_name is not NULL
            <if test="bo.line != null and bo.line != ''" >
                AND  line like  CONCAT ('%', #{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 line,
        user_name,
        car_name,
        batch
    </select>
    <select id="signCountNewTotal" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
    SELECT
    car_name,
    CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion
    FROM
    t_sign
    <where>
        1=1 AND
        car_name is not NULL
        <if test="bo.line != null and bo.line != ''" >
            AND  line like  CONCAT ('%', #{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
    car_name
    </select>
</mapper>