|
@@ -0,0 +1,187 @@
|
|
|
|
|
+<?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.jzg.console.mapper.ReportReceivableDataMapper">
|
|
|
|
|
+
|
|
|
|
|
+ <resultMap id="ReceivableStatisticsResultMap" type="com.jzg.commons.entity.report.dto.ReportReceivableDataDto">
|
|
|
|
|
+ <result column="year_and_month_time" property="yearAndMonthTime"/>
|
|
|
|
|
+ <result column="total_receivable" property="accountsReceivableMoney"/>
|
|
|
|
|
+ <result column="uninvoiced_money" property="uninvoicedMoney"/>
|
|
|
|
|
+ <result column="invoiced_money" property="invoicedMoney"/>
|
|
|
|
|
+ <result column="settled_money" property="settledMoney"/>
|
|
|
|
|
+ <result column="unsettled_money" property="unsettledMoney"/>
|
|
|
|
|
+ </resultMap>
|
|
|
|
|
+
|
|
|
|
|
+ <resultMap id="ReceivableDetailResultMap" type="com.jzg.commons.entity.report.dto.ReportReceivableDetailDto">
|
|
|
|
|
+ <result column="company_id" property="companyId"/>
|
|
|
|
|
+ <result column="company_name" property="companyName"/>
|
|
|
|
|
+ <result column="receivable_commission_fee" property="receivable.commissionFee"/>
|
|
|
|
|
+ <result column="receivable_follow_fee" property="receivable.followFee"/>
|
|
|
|
|
+ <result column="receivable_platform" property="receivable.platformReceivable"/>
|
|
|
|
|
+ <result column="receivable_total" property="receivable.totalAmount"/>
|
|
|
|
|
+ <result column="uninvoiced_commission_fee" property="uninvoiced.commissionFee"/>
|
|
|
|
|
+ <result column="uninvoiced_follow_fee" property="uninvoiced.followFee"/>
|
|
|
|
|
+ <result column="uninvoiced_platform" property="uninvoiced.platformReceivable"/>
|
|
|
|
|
+ <result column="uninvoiced_total" property="uninvoiced.totalAmount"/>
|
|
|
|
|
+ <result column="invoiced_commission_fee" property="invoiced.commissionFee"/>
|
|
|
|
|
+ <result column="invoiced_follow_fee" property="invoiced.followFee"/>
|
|
|
|
|
+ <result column="invoiced_platform" property="invoiced.platformReceivable"/>
|
|
|
|
|
+ <result column="invoiced_total" property="invoiced.totalAmount"/>
|
|
|
|
|
+ <result column="unsettled_commission_fee" property="unsettled.commissionFee"/>
|
|
|
|
|
+ <result column="unsettled_follow_fee" property="unsettled.followFee"/>
|
|
|
|
|
+ <result column="unsettled_platform" property="unsettled.platformReceivable"/>
|
|
|
|
|
+ <result column="unsettled_total" property="unsettled.totalAmount"/>
|
|
|
|
|
+ <result column="settled_commission_fee" property="settled.commissionFee"/>
|
|
|
|
|
+ <result column="settled_follow_fee" property="settled.followFee"/>
|
|
|
|
|
+ <result column="settled_platform" property="settled.platformReceivable"/>
|
|
|
|
|
+ <result column="settled_total" property="settled.totalAmount"/>
|
|
|
|
|
+ </resultMap>
|
|
|
|
|
+
|
|
|
|
|
+ <select id="getReceivableStatisticsByMonth" resultMap="ReceivableStatisticsResultMap">
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ r.year_and_month_time,
|
|
|
|
|
+ r.total_receivable,
|
|
|
|
|
+ (r.private_receivable - COALESCE(i.invoiced_money, 0)) AS uninvoiced_money,
|
|
|
|
|
+ COALESCE(i.invoiced_money, 0) AS invoiced_money,
|
|
|
|
|
+ COALESCE(s.settled_money, 0) AS settled_money,
|
|
|
|
|
+ (r.total_receivable - COALESCE(s.settled_money, 0)) AS unsettled_money
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ CONCAT(YEAR(ipi.signing_time), '-', LPAD(MONTH(ipi.signing_time), 2, '0')) AS year_and_month_time,
|
|
|
|
|
+ SUM(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0)) AS total_receivable,
|
|
|
|
|
+ SUM(
|
|
|
|
|
+ COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) +
|
|
|
|
|
+ COALESCE(ipi.jy_supervise_costs_premiums, 0) +
|
|
|
|
|
+ COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) +
|
|
|
|
|
+ COALESCE(ipi.jy_other_costs_premiums, 0)
|
|
|
|
|
+ ) AS private_receivable
|
|
|
|
|
+ FROM ins_ply_income ipi
|
|
|
|
|
+ WHERE ipi.is_delete = 0
|
|
|
|
|
+ AND ipi.system_code = #{systemCode}
|
|
|
|
|
+ AND YEAR(ipi.signing_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY CONCAT(YEAR(ipi.signing_time), '-', LPAD(MONTH(ipi.signing_time), 2, '0'))
|
|
|
|
|
+ ) r
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ CONCAT(YEAR(ipii.create_time), '-', LPAD(MONTH(ipii.create_time), 2, '0')) AS year_and_month_time,
|
|
|
|
|
+ SUM(COALESCE(ipii.receivable_supervise_premium, 0)) AS invoiced_money
|
|
|
|
|
+ FROM ins_ply_income_invoice ipii
|
|
|
|
|
+ WHERE ipii.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ AND ipii.invoice_type IN ('1','2','3','4')
|
|
|
|
|
+ AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY CONCAT(YEAR(ipii.create_time), '-', LPAD(MONTH(ipii.create_time), 2, '0'))
|
|
|
|
|
+ ) i ON r.year_and_month_time = i.year_and_month_time
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ CONCAT(YEAR(ipiis.create_time), '-', LPAD(MONTH(ipiis.create_time), 2, '0')) AS year_and_month_time,
|
|
|
|
|
+ SUM(COALESCE(ipiis.actual_received_amount, 0)) AS settled_money
|
|
|
|
|
+ FROM ins_ply_income_invoice_settlement ipiis
|
|
|
|
|
+ LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id AND ipii.is_delete = 0
|
|
|
|
|
+ WHERE ipiis.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ AND ipii.invoice_type IN ('1','2','3','4','5','6')
|
|
|
|
|
+ AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY CONCAT(YEAR(ipiis.create_time), '-', LPAD(MONTH(ipiis.create_time), 2, '0'))
|
|
|
|
|
+ ) s ON r.year_and_month_time = s.year_and_month_time
|
|
|
|
|
+ ORDER BY r.year_and_month_time ASC
|
|
|
|
|
+ </select>
|
|
|
|
|
+
|
|
|
|
|
+ <select id="getReceivableStatisticsDetail" resultMap="ReceivableDetailResultMap">
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ rc.company_id,
|
|
|
|
|
+ (SELECT NAME FROM esm_ins_company WHERE id = rc.company_id) AS company_name,
|
|
|
|
|
+ COALESCE(rc.receivable_commission, 0) AS receivable_commission_fee,
|
|
|
|
|
+ COALESCE(rc.receivable_follow, 0) AS receivable_follow_fee,
|
|
|
|
|
+ COALESCE(rc.receivable_platform, 0) AS receivable_platform,
|
|
|
|
|
+ (COALESCE(rc.receivable_commission, 0) + COALESCE(rc.receivable_follow, 0) + COALESCE(rc.receivable_platform, 0)) AS receivable_total,
|
|
|
|
|
+ (COALESCE(rc.receivable_commission, 0) - COALESCE(i.invoiced_commission, 0)) AS uninvoiced_commission_fee,
|
|
|
|
|
+ (COALESCE(rc.receivable_follow, 0) - COALESCE(i.invoiced_follow, 0)) AS uninvoiced_follow_fee,
|
|
|
|
|
+ 0 AS uninvoiced_platform,
|
|
|
|
|
+ (COALESCE(rc.receivable_commission, 0) + COALESCE(rc.receivable_follow, 0) - COALESCE(i.invoiced_commission, 0) - COALESCE(i.invoiced_follow, 0)) AS uninvoiced_total,
|
|
|
|
|
+ COALESCE(i.invoiced_commission, 0) AS invoiced_commission_fee,
|
|
|
|
|
+ COALESCE(i.invoiced_follow, 0) AS invoiced_follow_fee,
|
|
|
|
|
+ 0 AS invoiced_platform,
|
|
|
|
|
+ (COALESCE(i.invoiced_commission, 0) + COALESCE(i.invoiced_follow, 0)) AS invoiced_total,
|
|
|
|
|
+ COALESCE(us.unsettled_commission, 0) AS unsettled_commission_fee,
|
|
|
|
|
+ COALESCE(us.unsettled_follow, 0) AS unsettled_follow_fee,
|
|
|
|
|
+ COALESCE(us.unsettled_platform, 0) AS unsettled_platform,
|
|
|
|
|
+ (COALESCE(us.unsettled_commission, 0) + COALESCE(us.unsettled_follow, 0) + COALESCE(us.unsettled_platform, 0)) AS unsettled_total,
|
|
|
|
|
+ COALESCE(s.settled_commission, 0) AS settled_commission_fee,
|
|
|
|
|
+ COALESCE(s.settled_follow, 0) AS settled_follow_fee,
|
|
|
|
|
+ COALESCE(s.settled_platform, 0) AS settled_platform,
|
|
|
|
|
+ COALESCE(s.settled_commission, 0) + COALESCE(s.settled_follow, 0) + COALESCE(s.settled_platform, 0) AS settled_total
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ ipi.company_id AS company_id,
|
|
|
|
|
+ SUM(COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0)) AS receivable_commission,
|
|
|
|
|
+ SUM(COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums, 0)) AS receivable_follow,
|
|
|
|
|
+ SUM(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0)) -
|
|
|
|
|
+ SUM(COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0) +
|
|
|
|
|
+ COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums, 0)) AS receivable_platform
|
|
|
|
|
+ FROM ins_ply_income ipi
|
|
|
|
|
+ WHERE ipi.is_delete = 0
|
|
|
|
|
+ AND ipi.system_code = #{systemCode}
|
|
|
|
|
+ AND YEAR(ipi.signing_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY ipi.company_id, ipi.company_name
|
|
|
|
|
+ ) rc
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ ipii.company_id AS company_id,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('1','3') THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS invoiced_commission,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('2','4') THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS invoiced_follow
|
|
|
|
|
+ FROM ins_ply_income_invoice ipii
|
|
|
|
|
+ WHERE ipii.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ AND ipii.invoice_type IN ('1','2','3','4')
|
|
|
|
|
+ AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY ipii.company_id
|
|
|
|
|
+ ) i ON rc.company_id = i.company_id
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ t.company_id,
|
|
|
|
|
+ t.settled_commission,
|
|
|
|
|
+ t.settled_follow,
|
|
|
|
|
+ t.settled_platform + plat.plat_amount AS settled_platform
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ ipii.company_id AS company_id,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('1','3') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_commission,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('2','4') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_follow,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('5','6') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_platform
|
|
|
|
|
+ FROM ins_ply_income_invoice_settlement ipiis
|
|
|
|
|
+ LEFT JOIN ins_ply_income_invoice ipii
|
|
|
|
|
+ ON ipii.id = ipiis.invoice_id
|
|
|
|
|
+ AND ipii.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ WHERE ipiis.is_delete = 0
|
|
|
|
|
+ AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ AND ipii.company_id IS NOT NULL
|
|
|
|
|
+ GROUP BY ipii.company_id
|
|
|
|
|
+ ) t
|
|
|
|
|
+ CROSS JOIN (
|
|
|
|
|
+ SELECT SUM(COALESCE(ipiis.actual_received_amount,0)) AS plat_amount
|
|
|
|
|
+ FROM ins_ply_income_invoice_settlement ipiis
|
|
|
|
|
+ LEFT JOIN ins_ply_income_invoice ipii
|
|
|
|
|
+ ON ipii.id = ipiis.invoice_id
|
|
|
|
|
+ AND ipii.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ WHERE ipiis.is_delete = 0
|
|
|
|
|
+ AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ AND ipii.company_id IS NULL
|
|
|
|
|
+ ) plat
|
|
|
|
|
+ ) s ON rc.company_id = s.company_id
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ ipii.company_id AS company_id,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('1','3') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_commission,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('2','4') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_follow,
|
|
|
|
|
+ SUM(CASE WHEN ipii.invoice_type IN ('5','6') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_platform
|
|
|
|
|
+ FROM ins_ply_income_invoice ipii
|
|
|
|
|
+ WHERE ipii.is_delete = 0
|
|
|
|
|
+ AND ipii.system_code = #{systemCode}
|
|
|
|
|
+ AND ipii.invoice_type IN ('1','2','3','4','5','6')
|
|
|
|
|
+ AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
|
|
|
|
|
+ GROUP BY ipii.company_id
|
|
|
|
|
+ ) us ON rc.company_id = us.company_id
|
|
|
|
|
+ </select>
|
|
|
|
|
+</mapper>
|