123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?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.iocoder.yudao.module.crm.dal.mysql.statistics.CrmStatisticsPerformanceMapper">
- <select id="selectContractCountPerformance"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceRespVO">
- SELECT
- t.time as time,
- COALESCE(t.currentMonthCount,0) as currentMonthCount,
- COALESCE(y.lastMonthCount,0) as lastMonthCount,
- COALESCE(z.lastYearCount,0) as lastYearCount
- FROM
- (SELECT
- COUNT(1) AS currentMonthCount,
- DATE_FORMAT(order_date, '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- GROUP BY time)t
- LEFT JOIN
- (SELECT
- COUNT(1) AS lastMonthCount,
- DATE_FORMAT(DATE_ADD(order_date,INTERVAL 1 MONTH), '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND (DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- or DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1)
- GROUP BY time)y ON t.time = y.time
- LEFT JOIN
- (SELECT
- COUNT(1) AS lastYearCount,
- DATE_FORMAT(DATE_ADD(order_date,INTERVAL 1 YEAR), '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1
- GROUP BY time)z ON t.time = z.time
- </select>
- <select id="selectContractPricePerformance"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceRespVO">
- SELECT
- t.time as time,
- COALESCE(t.currentMonthCount,0) as currentMonthCount,
- COALESCE(y.lastMonthCount,0) as lastMonthCount,
- COALESCE(z.lastYearCount,0) as lastYearCount
- FROM
- (SELECT
- IFNULL(SUM(total_price), 0) AS currentMonthCount,
- DATE_FORMAT(order_date, '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- GROUP BY time)t
- LEFT JOIN
- (SELECT
- IFNULL(SUM(total_price), 0) AS lastMonthCount,
- DATE_FORMAT(DATE_ADD(order_date,INTERVAL 1 MONTH), '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND (DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- or DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1)
- GROUP BY time)y ON t.time = y.time
- LEFT JOIN
- (SELECT
- IFNULL(SUM(total_price), 0) AS lastYearCount,
- DATE_FORMAT(DATE_ADD(order_date,INTERVAL 1 YEAR), '%Y-%m') AS time
- FROM crm_contract
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(order_date, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1
- GROUP BY time)z ON t.time = z.time
- </select>
- <select id="selectReceivablePricePerformance"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.performance.CrmStatisticsPerformanceRespVO">
- SELECT
- t.time as time,
- COALESCE(t.currentMonthCount,0) as currentMonthCount,
- COALESCE(y.lastMonthCount,0) as lastMonthCount,
- COALESCE(z.lastYearCount,0) as lastYearCount
- FROM
- (SELECT
- IFNULL(SUM(price), 0) AS currentMonthCount,
- DATE_FORMAT(return_time, '%Y-%m') AS time
- FROM crm_receivable
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(return_time, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- GROUP BY time)t
- LEFT JOIN
- (SELECT
- IFNULL(SUM(price), 0) AS lastMonthCount,
- DATE_FORMAT(DATE_ADD(return_time,INTERVAL 1 MONTH), '%Y-%m') AS time
- FROM crm_receivable
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND (DATE_FORMAT(return_time, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')
- or DATE_FORMAT(return_time, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1)
- GROUP BY time)y ON t.time = y.time
- LEFT JOIN
- (SELECT
- IFNULL(SUM(price), 0) AS lastYearCount,
- DATE_FORMAT(DATE_ADD(return_time,INTERVAL 1 YEAR), '%Y-%m') AS time
- FROM crm_receivable
- WHERE deleted = 0
- AND audit_status = 20
- AND owner_user_id in
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND DATE_FORMAT(return_time, '%Y') = DATE_FORMAT(#{times[0],javaType=java.time.LocalDateTime},'%Y')-1
- GROUP BY time)z ON t.time = z.time
- </select>
- </mapper>
|