Commit 99fc1fd7 by jianan

前端对接问题修复74

parent d71c5395
...@@ -84,34 +84,12 @@ ...@@ -84,34 +84,12 @@
</select> </select>
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表--> <!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<!-- <select id="getCommissionStatistics" resultType="com.yd.csf.service.vo.CommissionStatisticsVO">-->
<!-- SELECT-->
<!-- COALESCE(SUM(e.amount), 0) as totalAmount,-->
<!-- COALESCE(SUM(c.amount), 0) as totalPaidAmount,-->
<!-- COUNT(DISTINCT c.policy_no) as totalPolicyCount-->
<!-- FROM commission c-->
<!-- LEFT JOIN (-->
<!-- SELECT policy_no, SUM(expected_amount) as amount-->
<!-- FROM commission_expected-->
<!-- GROUP BY policy_no-->
<!-- ) e ON c.policy_no = e.policy_no-->
<!-- <where>-->
<!-- <if test="commissionIdList != null and commissionIdList.size > 0">-->
<!-- c.id IN-->
<!-- <foreach collection="commissionIdList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<!-- 总金额:统计保单预计来佣表 已入账金额:统计来佣表-->
<select id="getCommissionStatistics" resultType="com.yd.csf.service.vo.CommissionStatisticsVO"> <select id="getCommissionStatistics" resultType="com.yd.csf.service.vo.CommissionStatisticsVO">
SELECT SELECT
COALESCE(SUM(c.amount), 0) as totalPaidAmount, COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COALESCE(SUM(e.expected_amount), 0) as expectePaidAmount, IFNULL(e.expected_amount, 0) as expectePaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as pendingPaidAmount, COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as differenceAmount, COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as differenceAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount, COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COALESCE(SUM(CAST(c.premium AS DECIMAL(15,2))*p.payment_term), 0) as totalPremium, COALESCE(SUM(CAST(c.premium AS DECIMAL(15,2))*p.payment_term), 0) as totalPremium,
COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount, COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount,
...@@ -119,10 +97,11 @@ ...@@ -119,10 +97,11 @@
SUM(CASE WHEN c.status = '1' THEN 1 ELSE 0 END) as successCompareCommissionCount, SUM(CASE WHEN c.status = '1' THEN 1 ELSE 0 END) as successCompareCommissionCount,
SUM(CASE WHEN c.status = '2' THEN 1 ELSE 0 END) as failedCompareCommissionCount SUM(CASE WHEN c.status = '2' THEN 1 ELSE 0 END) as failedCompareCommissionCount
FROM commission c FROM commission c
LEFT JOIN commission_expected e ON c.policy_no = e.policy_no LEFT JOIN (
AND c.commission_name = e.commission_name SELECT policy_no, SUM(expected_amount) as expected_amount
AND c.commission_period = e.commission_period FROM commission_expected
-- AND c.currency = e.currency GROUP BY policy_no
) e ON c.policy_no = e.policy_no
LEFT JOIN policy p ON c.policy_no = p.policy_no LEFT JOIN policy p ON c.policy_no = p.policy_no
<where> <where>
<if test="commissionIdList != null and commissionIdList.size > 0"> <if test="commissionIdList != null and commissionIdList.size > 0">
......
...@@ -54,52 +54,25 @@ ...@@ -54,52 +54,25 @@
</sql> </sql>
<select id="getFortuneStatistics" resultType="com.yd.csf.service.dto.FortuneStatisticsVO"> <select id="getFortuneStatistics" resultType="com.yd.csf.service.dto.FortuneStatisticsVO">
<!-- 阶段1:fortune 首行金额指标(无重复) -->
SELECT SELECT
f1.amount, f.policy_no,
f1.sentAmount, SUM(CASE WHEN f.is_part = '0' THEN f.amount ELSE 0 END) AS amount,
f1.pendingOutAmount, SUM(CASE WHEN f.status = '2' THEN f.current_payment_amount ELSE 0 END) AS sentAmount,
f1.availableOutAmount, SUM(CASE WHEN f.status = '0' THEN f.current_payment_amount ELSE 0 END) AS pendingOutAmount,
IFNULL(c2.totalInAmount, 0) AS totalInAmount, SUM(CASE WHEN f.status = '6' THEN f.current_payment_amount ELSE 0 END) AS availableOutAmount,
IFNULL(c2.totalPremium, 0) AS totalPremium, COUNT(DISTINCT f.policy_no) AS totalPolicyCount,
f1.totalPolicyCount MAX(c.amount) AS totalInAmount,
FROM ( MAX(c.premium) AS totalPremium
SELECT FROM fortune f
commission_biz_id, LEFT JOIN commission c ON f.commission_biz_id = c.commission_biz_id
SUM( CASE WHEN is_part = '0' THEN amount ELSE 0 END ) AS amount,
SUM(CASE WHEN status = '2' THEN current_payment_amount ELSE 0 END) AS sentAmount,
SUM(CASE WHEN status = '0' THEN current_payment_amount ELSE 0 END) AS pendingOutAmount,
SUM(CASE WHEN status = '6' THEN current_payment_amount ELSE 0 END) AS availableOutAmount,
COUNT(DISTINCT policy_no) AS totalPolicyCount
FROM fortune
WHERE 1 = 1 WHERE 1 = 1
<if test="fortuneIdList != null and fortuneIdList.size() > 0"> <if test="fortuneIdList != null and fortuneIdList.size() > 0">
AND id IN AND f.id IN
<foreach collection="fortuneIdList" item="fortuneId" open="(" close=")" separator=",">
#{fortuneId}
</foreach>
</if>
GROUP BY commission_biz_id
) f1
LEFT JOIN (
SELECT
commission_biz_id,
MAX(amount) AS totalInAmount,
MAX(premium) AS totalPremium
FROM commission
WHERE commission_biz_id IN (
SELECT DISTINCT commission_biz_id
FROM fortune
WHERE is_part = 0
<if test="fortuneIdList != null and fortuneIdList.size() > 0">
AND id IN
<foreach collection="fortuneIdList" item="fortuneId" open="(" close=")" separator=","> <foreach collection="fortuneIdList" item="fortuneId" open="(" close=")" separator=",">
#{fortuneId} #{fortuneId}
</foreach> </foreach>
</if> </if>
) GROUP BY f.policy_no
GROUP BY commission_biz_id
) c2 ON f1.commission_biz_id = c2.commission_biz_id
</select> </select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment