Commit 6daca43e by zhangxingmin

push

parent ce3760c4
...@@ -69,111 +69,111 @@ ...@@ -69,111 +69,111 @@
</select> </select>
<select id="receivableReportPage" resultType="com.yd.csf.service.vo.ReceivableReportVO"> <select id="receivableReportPage" resultType="com.yd.csf.service.vo.ReceivableReportVO">
-- 关联保单应收单 R -- 关联保单应收单 R
SELECT SELECT
NULL AS receivableNo, NULL AS receivableNo,
ce.policy_no AS policyNo, ce.policy_no AS policyNo,
COALESCE(pp.name, '') AS policyHolder, COALESCE(pp.name, '') AS policyHolder,
COALESCE(pp.name_en, '') AS policyHolderEn, COALESCE(pp.name_en, '') AS policyHolderEn,
COALESCE(pi.name, '') AS insured, COALESCE(pi.name, '') AS insured,
COALESCE(pi.name_en, '') AS insuredEn, COALESCE(pi.name_en, '') AS insuredEn,
MAX(ce.manual_remark) AS manualRemark, MAX(ce.manual_remark) AS manualRemark,
MAX(ce.reconciliation_company) AS reconciliationCompany, MAX(ce.reconciliation_company) AS reconciliationCompany,
MAX(ce.reconciliation_company_biz_id) AS reconciliationCompanyBizId, MAX(ce.reconciliation_company_biz_id) AS reconciliationCompanyBizId,
ce.commission_period AS commissionPeriod, ce.commission_period AS commissionPeriod,
MAX(ce.total_period) AS totalPeriod, MAX(ce.total_period) AS totalPeriod,
MAX(ce.commission_date) AS commissionDate, MAX(ce.commission_date) AS commissionDate,
IFNULL(SUM(ce.commission_ratio), 0) AS commissionRatio, IFNULL(SUM(ce.commission_ratio), 0) AS commissionRatio,
IFNULL(SUM(ce.paid_ratio), 0) AS paid, IFNULL(SUM(ce.paid_ratio), 0) AS paid,
IFNULL(SUM(ce.amount), 0) AS amount, IFNULL(SUM(ce.amount), 0) AS amount,
MAX(ce.currency) AS currency, MAX(ce.currency) AS currency,
IFNULL(SUM(ce.expected_amount), 0) AS hkdAmount, IFNULL(SUM(ce.expected_amount), 0) AS hkdAmount,
IFNULL(SUM(ce.paid_amount), 0) AS paidAmount, IFNULL(SUM(ce.paid_amount), 0) AS paidAmount,
IFNULL(SUM(ce.expected_amount) - SUM(ce.paid_amount), 0) AS unpaidAmount, IFNULL(SUM(ce.expected_amount) - SUM(ce.paid_amount), 0) AS unpaidAmount,
CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0 CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0
THEN ROUND(IFNULL(SUM(ce.paid_amount), 0) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2) THEN ROUND(IFNULL(SUM(ce.paid_amount), 0) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2)
ELSE 0 ELSE 0
END AS paidRatio, END AS paidRatio,
CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0 CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0
THEN ROUND((IFNULL(SUM(ce.expected_amount), 0) - IFNULL(SUM(ce.paid_amount), 0)) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2) THEN ROUND((IFNULL(SUM(ce.expected_amount), 0) - IFNULL(SUM(ce.paid_amount), 0)) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2)
ELSE 0 ELSE 0
END AS unpaidRatio, END AS unpaidRatio,
MAX(ce.default_exchange_rate) AS exchangeRate, MAX(ce.default_exchange_rate) AS exchangeRate,
MAX(p.insurance_company) AS insuranceCompany, MAX(p.insurance_company) AS insuranceCompany,
MAX(p.product_name) AS productName, MAX(p.product_name) AS productName,
IFNULL(AVG(ce.premium), 0) AS premium, IFNULL(AVG(ce.premium), 0) AS premium,
MAX(p.currency) AS policyCurrency MAX(p.currency) AS policyCurrency
FROM commission_expected ce FROM commission_expected ce
LEFT JOIN policy p ON ce.policy_no = p.policy_no LEFT JOIN policy p ON ce.policy_no = p.policy_no
LEFT JOIN ( LEFT JOIN (
SELECT policy_biz_id, name, name_en, SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_policyholder FROM policy_policyholder
WHERE is_deleted = 0 WHERE is_deleted = 0
) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1 ) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1
LEFT JOIN ( LEFT JOIN (
SELECT policy_biz_id, name, name_en, SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_insurant FROM policy_insurant
WHERE is_deleted = 0 WHERE is_deleted = 0
) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1 ) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1
WHERE ce.commission_biz_type = 'R' WHERE ce.commission_biz_type = 'R'
AND ce.is_deleted = 0 AND ce.is_deleted = 0
${ew.customSqlSegment} ${ew.customSqlSegment}
GROUP BY ce.policy_no, ce.commission_period GROUP BY ce.policy_no, ce.commission_period
UNION ALL UNION ALL
-- 非关联保单应收单 U -- 非关联保单应收单 U
SELECT SELECT
ce.receivable_no AS receivableNo, ce.receivable_no AS receivableNo,
ce.policy_no AS policyNo, ce.policy_no AS policyNo,
COALESCE(pp.name, '') AS policyHolder, COALESCE(pp.name, '') AS policyHolder,
COALESCE(pp.name_en, '') AS policyHolderEn, COALESCE(pp.name_en, '') AS policyHolderEn,
COALESCE(pi.name, '') AS insured, COALESCE(pi.name, '') AS insured,
COALESCE(pi.name_en, '') AS insuredEn, COALESCE(pi.name_en, '') AS insuredEn,
ce.manual_remark AS manualRemark, ce.manual_remark AS manualRemark,
ce.reconciliation_company AS reconciliationCompany, ce.reconciliation_company AS reconciliationCompany,
ce.reconciliation_company_biz_id AS reconciliationCompanyBizId, ce.reconciliation_company_biz_id AS reconciliationCompanyBizId,
ce.commission_period AS commissionPeriod, ce.commission_period AS commissionPeriod,
ce.total_period AS totalPeriod, ce.total_period AS totalPeriod,
ce.commission_date AS commissionDate, ce.commission_date AS commissionDate,
NULL AS commissionRatio, NULL AS commissionRatio,
NULL AS paid, NULL AS paid,
IFNULL(ce.amount, 0) AS amount, IFNULL(ce.amount, 0) AS amount,
ce.currency AS currency, ce.currency AS currency,
IFNULL(ce.expected_amount, 0) AS hkdAmount, IFNULL(ce.expected_amount, 0) AS hkdAmount,
IFNULL(ce.paid_amount, 0) AS paidAmount, IFNULL(ce.paid_amount, 0) AS paidAmount,
IFNULL(ce.expected_amount - ce.paid_amount, 0) AS unpaidAmount, IFNULL(ce.expected_amount - ce.paid_amount, 0) AS unpaidAmount,
CASE WHEN IFNULL(ce.expected_amount, 0) > 0 CASE WHEN IFNULL(ce.expected_amount, 0) > 0
THEN ROUND(IFNULL(ce.paid_amount, 0) / IFNULL(ce.expected_amount, 0) * 100, 2) THEN ROUND(IFNULL(ce.paid_amount, 0) / IFNULL(ce.expected_amount, 0) * 100, 2)
ELSE 0 ELSE 0
END AS paidRatio, END AS paidRatio,
CASE WHEN IFNULL(ce.expected_amount, 0) > 0 CASE WHEN IFNULL(ce.expected_amount, 0) > 0
THEN ROUND((IFNULL(ce.expected_amount, 0) - IFNULL(ce.paid_amount, 0)) / IFNULL(ce.expected_amount, 0) * 100, 2) THEN ROUND((IFNULL(ce.expected_amount, 0) - IFNULL(ce.paid_amount, 0)) / IFNULL(ce.expected_amount, 0) * 100, 2)
ELSE 0 ELSE 0
END AS unpaidRatio, END AS unpaidRatio,
ce.default_exchange_rate AS exchangeRate, ce.default_exchange_rate AS exchangeRate,
p.insurance_company AS insuranceCompany, p.insurance_company AS insuranceCompany,
p.product_name AS productName, p.product_name AS productName,
IFNULL(ce.premium, 0) AS premium, IFNULL(ce.premium, 0) AS premium,
NULL AS policyCurrency NULL AS policyCurrency
FROM commission_expected ce FROM commission_expected ce
LEFT JOIN policy p ON ce.policy_no = p.policy_no LEFT JOIN policy p ON ce.policy_no = p.policy_no
LEFT JOIN ( LEFT JOIN (
SELECT policy_biz_id, name, name_en, SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_policyholder FROM policy_policyholder
WHERE is_deleted = 0 WHERE is_deleted = 0
) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1 ) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1
LEFT JOIN ( LEFT JOIN (
SELECT policy_biz_id, name, name_en, SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_insurant FROM policy_insurant
WHERE is_deleted = 0 WHERE is_deleted = 0
) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1 ) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1
WHERE ce.commission_biz_type = 'U' WHERE ce.commission_biz_type = 'U'
AND ce.is_deleted = 0 AND ce.is_deleted = 0
${ew.customSqlSegment} ${ew.customSqlSegment}
</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