Commit 99fc1fd7 by jianan

前端对接问题修复74

parent d71c5395
......@@ -84,34 +84,12 @@
</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
COALESCE(SUM(c.amount), 0) as totalPaidAmount,
COALESCE(SUM(e.expected_amount), 0) as expectePaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(SUM(e.expected_amount) - SUM(c.amount), 0) as differenceAmount,
IFNULL(e.expected_amount, 0) as expectePaidAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as pendingPaidAmount,
COALESCE(IFNULL(e.expected_amount, 0) - SUM(c.amount), 0) as differenceAmount,
COUNT(DISTINCT c.policy_no) as totalPolicyCount,
COALESCE(SUM(CAST(c.premium AS DECIMAL(15,2))*p.payment_term), 0) as totalPremium,
COUNT(DISTINCT c.reconciliation_company) as reconciliationCompanyCount,
......@@ -119,10 +97,11 @@
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
FROM commission c
LEFT JOIN commission_expected e ON c.policy_no = e.policy_no
AND c.commission_name = e.commission_name
AND c.commission_period = e.commission_period
-- AND c.currency = e.currency
LEFT JOIN (
SELECT policy_no, SUM(expected_amount) as expected_amount
FROM commission_expected
GROUP BY policy_no
) e ON c.policy_no = e.policy_no
LEFT JOIN policy p ON c.policy_no = p.policy_no
<where>
<if test="commissionIdList != null and commissionIdList.size > 0">
......
......@@ -54,52 +54,25 @@
</sql>
<select id="getFortuneStatistics" resultType="com.yd.csf.service.dto.FortuneStatisticsVO">
<!-- 阶段1:fortune 首行金额指标(无重复) -->
SELECT
f1.amount,
f1.sentAmount,
f1.pendingOutAmount,
f1.availableOutAmount,
IFNULL(c2.totalInAmount, 0) AS totalInAmount,
IFNULL(c2.totalPremium, 0) AS totalPremium,
f1.totalPolicyCount
FROM (
SELECT
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
f.policy_no,
SUM(CASE WHEN f.is_part = '0' THEN f.amount ELSE 0 END) AS amount,
SUM(CASE WHEN f.status = '2' THEN f.current_payment_amount ELSE 0 END) AS sentAmount,
SUM(CASE WHEN f.status = '0' THEN f.current_payment_amount ELSE 0 END) AS pendingOutAmount,
SUM(CASE WHEN f.status = '6' THEN f.current_payment_amount ELSE 0 END) AS availableOutAmount,
COUNT(DISTINCT f.policy_no) AS totalPolicyCount,
MAX(c.amount) AS totalInAmount,
MAX(c.premium) AS totalPremium
FROM fortune f
LEFT JOIN commission c ON f.commission_biz_id = c.commission_biz_id
WHERE 1 = 1
<if test="fortuneIdList != null and fortuneIdList.size() > 0">
AND 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
AND f.id IN
<foreach collection="fortuneIdList" item="fortuneId" open="(" close=")" separator=",">
#{fortuneId}
</foreach>
</if>
)
GROUP BY commission_biz_id
) c2 ON f1.commission_biz_id = c2.commission_biz_id
GROUP BY f.policy_no
</select>
</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