ReportFeeAuditSummaryMapper.xml 1.9 KB

1234567891011121314151617181920212223242526272829303132
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.jzg.console.mapper.ReportFeeAuditSummaryMapper">
  4. <!-- 按保险公司分组统计费用审核汇总数据 -->
  5. <select id="getFeeAuditSummaryPage" resultType="com.jzg.commons.entity.report.dto.FeeAuditSummaryVo">
  6. SELECT
  7. io.company_id AS companyId,
  8. io.company_name AS companyName,
  9. -- 待审核:audit_status = 0 AND is_problem = 0
  10. COUNT(CASE WHEN ifa.audit_status = 0 AND (ifa.is_problem IS NULL OR ifa.is_problem = 0) THEN 1 END) AS pendingReviewNum,
  11. -- 已审核:audit_status = 1 AND (is_problem IS NULL OR is_problem = 0)
  12. COUNT(CASE WHEN ifa.audit_status = 1 AND (ifa.is_problem IS NULL OR ifa.is_problem = 0) THEN 1 END) AS approvedNum,
  13. -- 审核不通过:audit_status = 2 AND (is_problem IS NULL OR is_problem = 0)
  14. COUNT(CASE WHEN ifa.audit_status = 2 AND (ifa.is_problem IS NULL OR ifa.is_problem = 0) THEN 1 END) AS rejectedNum,
  15. -- 疑问订单:is_problem = 1
  16. COUNT(CASE WHEN ifa.is_problem = 1 THEN 1 END) AS problemOrderNum,
  17. -- 平均审核时长(秒):audit_time - receive_time
  18. COALESCE(ROUND(AVG(TIMESTAMPDIFF(SECOND, ifa.receive_time, ifa.audit_time)), 0), 0) AS avgAuditDuration
  19. FROM ins_fee_audit ifa
  20. LEFT JOIN ins_orders io ON ifa.order_no = io.id AND io.is_delete = 0
  21. <where>
  22. ifa.is_delete = 0
  23. <if test="param.checkTime != null and param.checkTime.size() > 0">
  24. AND (ifa.audit_time BETWEEN #{param.checkTime[0]} AND #{param.checkTime[1]} OR ifa.audit_time IS NULL)
  25. </if>
  26. </where>
  27. GROUP BY io.company_id, io.company_name
  28. ORDER BY approvedNum DESC, pendingReviewNum DESC
  29. </select>
  30. </mapper>