Commit e1c82c82 by jianan

【线上来佣比对】

查询全部
parent b030474a
...@@ -5,92 +5,75 @@ ...@@ -5,92 +5,75 @@
<select id="queryComeCommissionList" parameterType="com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO" <select id="queryComeCommissionList" parameterType="com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO"
resultType="com.yd.api.commission.vo.lifecommission.ComeCommissionVO"> resultType="com.yd.api.commission.vo.lifecommission.ComeCommissionVO">
select select
o.id orderId, t.*,
c.check_yearmonth checkDate, ib.insurer_name insurerName,
IFNULL(i.name_abbre,i.name) insurerName, ib.branch_name insurerBrachName,
IFNULL(a.name,p.name) planName, c.check_yearmonth checkDate,
o.policy_no policyNo, IFNULL(a.name,p.name) planName,
o.order_price orderPrice,
o.commissionRate,
o.commissionAmount,
o.commissionCheckStatus,
o.order_date orderDate,
o.commission_no commissionNo,
o.commissionId,
o.amount ,
date_format(o.commissionYear, '%Y-%m-%d') commissionYear,
o.commissionCheckStatus commissionStatus,
o.commission_time commissionTime,
o.commission_period commissionPeriod,
o.commission_type commissionType,
o.commission_item commissionItem,
b.branch_name insurerBranchName, f.name,
f.practitioner_type_id practitionerTypeId,
(case when o.cover_term in ('1','2','3') then o.coverageTerm else e.coverageTerm END) coverageTerm, (case t.config_level when 2 then p2.pName2 else p3.pName3 END) categoryName,
IFNULL(o.payTerm,e.payTerm) payTerm, (case t.config_level when 2 then p2.cName2 else p3.cName3 END) planCategoryName
f.name, from (SELECT o.id orderId,
f.practitioner_type_id practitionerTypeId, IFNULL(o.plan_id,b.plan_id) plan_id,
(case o.config_level when 2 then p2.pName2 else p3.pName3 END) categoryName, IFNULL(o.product_id,b.product_id) product_id,
(case o.config_level when 2 then p2.cName2 else p3.cName3 END) planCategoryName IFNULL(o.config_level,b.config_level) config_level,
from (SELECT o.*, IFNULL(o.insurer_id,oc.insurer_id) insurer_id,
IFNULL(o.insurer_id,orderCommission.insurer_id) insurerId, oc.insurer_branch_id,
orderCommission.insurer_branch_id insurerBranchId, oc.commission_check_id,
policyNo, commission_no, amount, commission_time, rate, commission_check_id, commissionId,
commission_year commissionYear, oc.policy_no policyNo,
commission_status commissionCheckStatus, o.order_price orderPrice,
amount commissionAmount, oc.rate commissionRate,
rate commissionRate, oc.amount commissionAmount,
commission_category, oc.commission_status commissionCheckStatus,
commission_type, o.order_date orderDate,
commission_item, oc.commission_no commissionNo,
commission_period oc.id commissionId,
from
(SELECT id, policy_no, order_price, product_id, commission_rate, commission_amount, commission_check_status, date_format(oc.commission_year, '%Y-%m-%d') commissionYear,
plan_id, insurer_id, order_date, commission_check_at, config_level, cover_term, oc.commission_status commissionStatus,
CONCAT(payment_term, (case payment_term_unit when 'Y' then '年' when 'M' then '月' when 'D' then '日' else '年' END)) payTerm, oc.commission_time commissionTime,
cover_term_type coverageTerm oc.commission_period commissionPeriod,
from ag_po_order t oc.commission_type commissionType,
where t.status in (3,4) and policy_no is not null oc.commission_item commissionItem,
and (t.plan_id not in (424,453,464) or t.plan_id is null) oc.practitioner_id practitionerId,
) o o.ydBranchId,
RIGHT JOIN
(SELECT id commissionId, policy_no policyNo, commission_no, commission_year, amount, commission_status, commission_time, commission_check_id, o.cover_term_type coverageTerm,
t.commission_type, t.commission_item, insurer_id, CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '日' END)) payTerm
commission_period, rate, order_id, commission_category,t.insurer_branch_id from ag_po_order_commission oc
from ag_po_order_commission t left join
) orderCommission (SELECT id, order_price, product_id,
ON o.id = orderCommission.order_id plan_id, insurer_id, order_date, config_level, cover_term, insurer_branch_id ydBranchId,
WHERE 1=1 payment_term, payment_term_unit,
<if test="startDate != null "> cover_term_type
and date_format(commission_year, '%Y-%m') &gt;= #{startDate} from ag_po_order t
</if> where t.status in (3,4) and t.policy_no is not null
<if test="endDate != null "> and (t.plan_id not in (424,453,464) or t.plan_id is null)
and date_format(commission_year, '%Y-%m') &lt;= #{endDate} ) o ON o.id = oc.order_id
</if> left join ag_product_life_commission_base b on oc.commission_base_id = b.id
<if test="policyNo != null"> ) t
and policyNo like concat(concat('%',#{policyNo,jdbcType=VARCHAR}),'%') left join ag_acl_insurer_branch ib on t.insurer_branch_id = ib.id
</if> left join ag_po_order_commission_check c on t.commission_check_id = c.id
) o left join ag_product_plan a on t.plan_id = a.id
left join ag_po_order_commission_check c on o.commission_check_id = c.id left join ag_product p on t.product_id = p.id
left join ag_product_plan a on o.plan_id = a.id
left join ag_product p on o.product_id = p.id
left join ag_acl_insurer_branch b on o.insurerBranchId = b.id
left join (select plcl.config_level, plcl.product_id, plc.name cName2, pc.name pName2 left join (select plcl.config_level, plcl.product_id, plc.name cName2, pc.name pName2
from ag_plan_category_list plcl from ag_plan_category_list plcl
left join ag_plan_category plc on plcl.plan_category_id = plc.id left join ag_plan_category plc on plcl.plan_category_id = plc.id
left join ag_product_category pc on plc.product_category_id = pc.id left join ag_product_category pc on plc.product_category_id = pc.id
where plcl.config_level = 2 where plcl.config_level = 2
) p2 ) p2
on o.config_level = p2.config_level and o.product_id = p2.product_id on t.config_level = p2.config_level and t.product_id = p2.product_id
left join (select plcl.config_level, plcl.plan_id, plc.name cName3, pc.name pName3 left join (select plcl.config_level, plcl.plan_id, plc.name cName3, pc.name pName3
from ag_plan_category_list plcl from ag_plan_category_list plcl
left join ag_plan_category plc on plcl.plan_category_id = plc.id left join ag_plan_category plc on plcl.plan_category_id = plc.id
left join ag_product_category pc on plc.product_category_id = pc.id left join ag_product_category pc on plc.product_category_id = pc.id
where plcl.config_level = 3 where plcl.config_level = 3
) p3 ) p3
on o.config_level = p3.config_level and o.plan_id = p3.plan_id on t.config_level = p3.config_level and t.plan_id = p3.plan_id
left join ag_acl_insurer i on o.insurerId = i.id
left join (SELECT order_id, name, practitioner_type_id, f.customer_id left join (SELECT order_id, name, practitioner_type_id, f.customer_id
from ( from (
select * select *
...@@ -99,31 +82,34 @@ ...@@ -99,31 +82,34 @@
) f ) f
left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
) f on f.order_id = o.id ) f on f.order_id = t.orderId
left join (SELECT
order_id,
MAX(CASE WHEN factor_code = 'f_coverage_term' THEN element_text END) coverageTerm,
MAX(CASE WHEN factor_code = 'f_pay_term' THEN element_text END) payTerm
FROM ag_po_order_life_product_elements t
GROUP BY order_id
) e on e.order_id = o.id
where 1=1 where 1=1
<if test="startDate != null ">
and date_format(t.commissionYear, '%Y-%m') &gt;= #{startDate}
</if>
<if test="endDate != null ">
and date_format(t.commissionYear, '%Y-%m') &lt;= #{endDate}
</if>
<if test="policyNo != null">
and policyNo like concat(concat('%',#{policyNo,jdbcType=VARCHAR}),'%')
</if>
<if test="insurerId != null"> <if test="insurerId != null">
and o.insurerId = #{insurerId} and t.insurer_id = #{insurerId}
</if> </if>
<if test="insurerBranchId != null"> <if test="insurerBranchId != null">
and o.insurerBranchId = #{insurerBranchId,jdbcType=BIGINT} and t.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT}
</if> </if>
<if test="practitionerTypeId != null"> <if test="practitionerTypeId != null">
and f.practitioner_type_id = #{practitionerTypeId} and f.practitioner_type_id = #{practitionerTypeId}
</if> </if>
<if test="commissionCheckStatus != null"> <if test="commissionCheckStatus != null">
and o.commissionCheckStatus = #{commissionCheckStatus} and t.commissionCheckStatus = #{commissionCheckStatus}
</if> </if>
<if test="commissionType != null"> <if test="commissionType != null">
and o.commission_type = #{commissionType} and t.commissionType = #{commissionType}
<if test="commissionItem != null"> <if test="commissionItem != null">
and o.commission_item = #{commissionItem} and t.commissionItem = #{commissionItem}
</if> </if>
</if> </if>
<choose> <choose>
...@@ -131,7 +117,7 @@ ...@@ -131,7 +117,7 @@
and c.check_yearmonth = #{historyDate} and c.check_yearmonth = #{historyDate}
</when> </when>
</choose> </choose>
order by o.order_date desc order by t.orderDate desc
</select> </select>
...@@ -174,59 +160,60 @@ ...@@ -174,59 +160,60 @@
<select id="getSummaries" resultType="java.util.Map"> <select id="getSummaries" resultType="java.util.Map">
select select
count(1) totalSingular, count(1) totalSingular,
IFNULL(sum(CASE WHEN o.commissionCheckStatus = '1' THEN 1 ELSE 0 END),0) totalDaiLaiYong, IFNULL(sum(CASE WHEN t.commissionCheckStatus = '1' THEN 1 ELSE 0 END),0) totalDaiLaiYong,
IFNULL(sum(CASE WHEN o.commissionCheckStatus = '2' THEN 1 ELSE 0 END),0) totalYiBiDui, IFNULL(sum(CASE WHEN t.commissionCheckStatus = '2' THEN 1 ELSE 0 END),0) totalYiBiDui,
IFNULL(sum(CASE WHEN o.commissionCheckStatus = '3' THEN 1 ELSE 0 END),0) totalYiTuiBao, IFNULL(sum(CASE WHEN t.commissionCheckStatus = '3' THEN 1 ELSE 0 END),0) totalYiTuiBao,
IFNULL(sum(o.order_price),0) totalOrderPrice, IFNULL(sum(t.orderPrice),0) totalOrderPrice,
IFNULL(sum(o.commissionAmount),0) totalCommission IFNULL(sum(t.commissionAmount),0) totalCommission
from <include refid="queryLifecommissionList"/> from <include refid="queryLifecommissionList"/>
</select> </select>
<sql id="queryLifecommissionList"> <sql id="queryLifecommissionList">
(SELECT o.*, (SELECT o.id orderId,
IFNULL(o.insurer_id,orderCommission.insurer_id) insurerId, IFNULL(o.plan_id,b.plan_id) plan_id,
orderCommission.insurer_branch_id insurerBranchId, IFNULL(o.product_id,b.product_id) product_id,
policyNo, commission_no, amount, commission_time, rate, commission_check_id, IFNULL(o.config_level,b.config_level) config_level,
commission_year commissionYear, IFNULL(o.insurer_id,oc.insurer_id) insurer_id,
commission_status commissionCheckStatus, oc.insurer_branch_id,
amount commissionAmount, oc.commission_check_id,
rate commissionRate,
commission_category, oc.policy_no policyNo,
commission_type, o.order_price orderPrice,
commission_item, oc.rate commissionRate,
commission_period oc.amount commissionAmount,
from oc.commission_status commissionCheckStatus,
(SELECT id, policy_no, order_price, commission_rate, commission_amount, commission_check_status, product_id, o.order_date orderDate,
plan_id, insurer_id, order_date, commission_check_at, config_level, oc.commission_no commissionNo,
CONCAT(payment_term, (case payment_term_unit when 'Y' then '年' when 'M' then '月' else '日' END)) payTerm, oc.id commissionId,
CONCAT(cover_term, cover_term_type) coverageTerm
from ag_po_order t date_format(oc.commission_year, '%Y-%m-%d') commissionYear,
where t.status in (3,4) and policy_no is not null oc.commission_status commissionStatus,
and (t.plan_id not in (424,453,464) or t.plan_id is null) oc.commission_time commissionTime,
) o oc.commission_period commissionPeriod,
RIGHT JOIN oc.commission_type commissionType,
(SELECT policy_no policyNo, commission_no, commission_year, amount, commission_status, commission_time, rate, commission_check_id, oc.commission_item commissionItem,
t.commission_type,t.commission_item, insurer_id, oc.practitioner_id practitionerId,
commission_period, order_id, commission_category,insurer_branch_id o.ydBranchId,
from ag_po_order_commission t
) orderCommission o.cover_term_type coverageTerm,
ON o.id = orderCommission.order_id CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '日' END)) payTerm
WHERE 1=1 from ag_po_order_commission oc
<if test="startDate != null "> left join
and date_format(commission_year, '%Y-%m') &gt;= #{startDate} (SELECT id, order_price, product_id,
</if> plan_id, insurer_id, order_date, config_level, cover_term, insurer_branch_id ydBranchId,
<if test="endDate != null "> payment_term, payment_term_unit,
and date_format(commission_year, '%Y-%m') &lt;= #{endDate} cover_term_type
</if> from ag_po_order t
<if test="policyNo != null"> where t.status in (3,4) and t.policy_no is not null
and policyNo like concat(concat('%',#{policyNo,jdbcType=VARCHAR}),'%') and (t.plan_id not in (424,453,464) or t.plan_id is null)
</if> ) o ON o.id = oc.order_id
) o left join ag_product_life_commission_base b on oc.commission_base_id = b.id
left join ag_po_order_commission_check c on o.commission_check_id = c.id ) t
left join ag_acl_insurer i on o.insurerId = i.id left join ag_acl_insurer_branch ib on t.insurer_branch_id = ib.id
left join ag_product_plan a on o.plan_id = a.id left join ag_po_order_commission_check c on t.commission_check_id = c.id
left join ag_product p on o.product_id = p.id left join ag_product_plan a on t.plan_id = a.id
left join ag_product p on t.product_id = p.id
left join (SELECT order_id, name, practitioner_type_id, f.customer_id left join (SELECT order_id, name, practitioner_type_id, f.customer_id
from ( from (
select * select *
...@@ -235,24 +222,34 @@ ...@@ -235,24 +222,34 @@
) f ) f
left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
) f on f.order_id = o.id ) f on f.order_id = t.orderId
where 1=1 where 1=1
<if test="startDate != null ">
and date_format(t.commissionYear, '%Y-%m') &gt;= #{startDate}
</if>
<if test="endDate != null ">
and date_format(t.commissionYear, '%Y-%m') &lt;= #{endDate}
</if>
<if test="policyNo != null">
and policyNo like concat(concat('%',#{policyNo,jdbcType=VARCHAR}),'%')
</if>
<if test="insurerId != null"> <if test="insurerId != null">
and o.insurerId = #{insurerId} and t.insurer_id = #{insurerId}
</if> </if>
<if test="insurerBranchId != null"> <if test="insurerBranchId != null">
and o.insurerBranchId = #{insurerBranchId,jdbcType=BIGINT} and t.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT}
</if> </if>
<if test="practitionerTypeId != null"> <if test="practitionerTypeId != null">
and f.practitioner_type_id = #{practitionerTypeId} and f.practitioner_type_id = #{practitionerTypeId}
</if> </if>
<if test="commissionCheckStatus != null"> <if test="commissionCheckStatus != null">
and o.commissionCheckStatus = #{commissionCheckStatus} and t.commissionCheckStatus = #{commissionCheckStatus}
</if> </if>
<if test="commissionType != null"> <if test="commissionType != null">
and o.commission_type = #{commissionType} and t.commissionType = #{commissionType}
<if test="commissionItem != null"> <if test="commissionItem != null">
and o.commission_item = #{commissionItem} and t.commissionItem = #{commissionItem}
</if> </if>
</if> </if>
<choose> <choose>
...@@ -284,7 +281,6 @@ ...@@ -284,7 +281,6 @@
o.policy_no policyNo, o.policy_no policyNo,
o.premium orderPrice, o.premium orderPrice,
ib.branch_name insurerBranchName,
o.commission_status commissionCheckStatus, o.commission_status commissionCheckStatus,
o.amount commissionAmount, o.amount commissionAmount,
...@@ -307,7 +303,7 @@ ...@@ -307,7 +303,7 @@
(case o.config_level when 2 then p2.cName2 else p3.cName3 END) planCategoryName (case o.config_level when 2 then p2.cName2 else p3.cName3 END) planCategoryName
from from
(SELECT t.id commissionId, policy_no, commission_no, commission_year, amount, commission_status, commission_time, commission_check_id,premium,t.insurer_id, (SELECT t.id commissionId, policy_no, commission_no, commission_year, amount, commission_status, commission_time, commission_check_id,premium,t.insurer_id,
t.commission_type,t.commission_item,t.insurer_branch_id, t.commission_type,t.commission_item,
commission_period, rate, order_id, commission_category, t.created_at, b.product_id, b.plan_id, b.config_level commission_period, rate, order_id, commission_category, t.created_at, b.product_id, b.plan_id, b.config_level
from ag_po_order_commission t left join ag_product_life_commission_base b on t.commission_base_id = b.id from ag_po_order_commission t left join ag_product_life_commission_base b on t.commission_base_id = b.id
WHERE 1=1 WHERE 1=1
...@@ -324,7 +320,6 @@ ...@@ -324,7 +320,6 @@
left join ag_po_order_commission_check c on o.commission_check_id = c.id left join ag_po_order_commission_check c on o.commission_check_id = c.id
left join ag_product_plan a on o.plan_id = a.id left join ag_product_plan a on o.plan_id = a.id
left join ag_product p on o.product_id = p.id left join ag_product p on o.product_id = p.id
left join ag_acl_insurer_branch ib on o.insurer_branch_id = ib.id
left join (select plcl.config_level, plcl.product_id, plc.name cName2, pc.name pName2 left join (select plcl.config_level, plcl.product_id, plc.name cName2, pc.name pName2
from ag_plan_category_list plcl from ag_plan_category_list plcl
left join ag_plan_category plc on plcl.plan_category_id = plc.id left join ag_plan_category plc on plcl.plan_category_id = plc.id
...@@ -345,7 +340,7 @@ ...@@ -345,7 +340,7 @@
and o.insurer_id = #{insurerId} and o.insurer_id = #{insurerId}
</if> </if>
<if test="insurerBranchId != null"> <if test="insurerBranchId != null">
and o.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT} and p.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT}
</if> </if>
<if test="commissionType != null"> <if test="commissionType != null">
and o.commission_type = #{commissionType} and o.commission_type = #{commissionType}
...@@ -361,6 +356,5 @@ ...@@ -361,6 +356,5 @@
and c.check_yearmonth = #{historyDate} and c.check_yearmonth = #{historyDate}
</when> </when>
</choose> </choose>
order by o.created_at desc
</select> </select>
</mapper> </mapper>
\ No newline at end of file
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