Commit 10e0273d by wenyang Committed by jianan

发佣检核保单报表优化-3

parent 5e6bb24e
......@@ -988,7 +988,7 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
}
private void generateSheet2(XSSFWorkbook wkb, List<Long> fortuneIdList, List<Long> fortuneIdList2) {
XSSFSheet sheet2 = wkb.createSheet("保单发佣清算明细报表");
XSSFSheet sheet2 = wkb.createSheet("保单清算明细报表");
// 1.设置表头
String[] columnName = new String[]{"序号", "对账月", "投保人", "保单号", "保司", "保费", "产品", "承保时间", "年期",
"FYC%", "业绩折标率%", "分佣%", "业绩%", "RYC%", "保单FYC", "佣金FYC", "业绩FYC", "保单RYC", "佣金RYC", "渠道",
......@@ -1052,8 +1052,6 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
AclPractitioner practitioner = null;
//所属体系
AclPractitionerSubordinateSystem subordinateSystem = null;
//数据字典
MdDropOptions dropOptions = null;
Map<String, Object> item = null;
for (int i = 0; i < list.size(); i++) {
......@@ -1063,11 +1061,7 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("19").toString()));
item.put("19", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//经纪人职级 [21]
if (null != item.get("21") && StringUtils.isNotBlank(item.get("21").toString())) {
dropOptions = systemConfigService.getDropOptionInfo("practitioner_level", item.get("21").toString(), "practitioner_level");
item.put("21", dropOptions != null ? dropOptions.getDropOptionName() : null);
}
//续期辅导人 [25]
if (null != item.get("25") && StringUtils.isNotBlank(item.get("25").toString())) {
String[] ids = item.get("25").toString().split(",");
......
......@@ -141,7 +141,7 @@
<if test="item.commissionPayoutYearmonth != null">
and (c.check_yearmonth = #{item.commissionPayoutYearmonth,jdbcType=VARCHAR}
or (t.drop_option_code in(select distinct t.commission_type FROM ag_settlement_rule_base t where t.calculation_method='3' and t.is_active=1)
and QUARTER(CONCAT(c.check_yearmonth,'-01'))=QUARTER(CONCAT(#{item.commissionPayoutYearmonth,jdbcType=VARCHAR},'-01'))))
and QUARTER(DATE_SUB(STR_TO_DATE(CONCAT(c.check_yearmonth,'-01'), "%Y-%m-%d"),INTERVAL 1 MONTH))=QUARTER(DATE_SUB(STR_TO_DATE(CONCAT(#{item.commissionPayoutYearmonth,jdbcType=VARCHAR},'-01'), "%Y-%m-%d"),INTERVAL 1 MONTH))))
</if>
<if test="item.predictMonthPeriod != null">
and DATE_FORMAT(t.predict_month_period, '%Y-%m') = #{item.predictMonthPeriod,jdbcType=VARCHAR}
......@@ -427,7 +427,7 @@
<sql id="sheet2Data1" >
select
pb.payout_yearmonth '0' /*对账月*/,
(SELECT t.commission_time FROM ag_po_order_commission t WHERE t.id= f.commission_id) '0' /*对账月*/,
(select name from ag_acl_policyholder where order_id = f.order_id and type=2) '1',
o.policy_no '2',
i.name '3' /*保司*/,
......@@ -435,15 +435,14 @@
p.name '5' /*产品*/,
o.underwriting_date '6',
CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '年' END)) '7',
if(f.commission_period=1,f.fyc_rate,'') '8' /*'FYC%'*/,
if(f.order_id!=null, IFNULL(p.is_achievement_statistic,'100'), '') '9' /*'业绩折标率%'*/,
if(share_rate!=null,f.share_rate,'') '10' /*'分佣%'*/,
if(f.achievements_rate!=null,f.achievements_rate,'') '11' /*'业绩%'*/,
if(o.fyc_rate,o.fyc_rate,'') '8' /*'FYC%'*/,
if(f.order_id is not null, o.is_achievement_statistic, '100') '9' /*'业绩折标率%'*/,
if(l.commission_rate is not null,l.commission_rate,'') '10' /*'分佣%'*/,
if(l.achievements_rate is not null,l.achievements_rate,'') '11' /*'业绩%'*/,
if(f.commission_period!=1,f.fyc_rate,'') '12' /*'RYC%'*/,
f.fyc_amount '13'/*保单FYC*/,
<!-- if(f.id=min(f.id),f.referral_amount,'') '14' /*佣金FYC*/, -->
if(f.referral_amount!=null,f.referral_amount,'') '14' /*佣金FYC*/,
if(f.achievements!=null,f.achievements,'') '15' /*业绩FYC*/,
o.fyc_amount '13'/*保单FYC*/,
o.fyc_amount*l.commission_rate/100*IF(f.grade_commission_rate IS NOT NULL,f.grade_commission_rate,'100')/100 '14' /*佣金FYC*/,
o.fyc_amount*l.achievements_rate/100*IF(f.grade_commission_rate IS NOT NULL,f.grade_commission_rate,'100')/100 '15' /*业绩FYC*/,
if(f.commission_period!=1,f.fyc_amount,'') '16' /*保单RYC*/,
if(f.commission_period!=1,f.referral_amount,'') '17' /*佣金RYC*/,
......@@ -451,7 +450,7 @@
coalesce(l.s1_id,l.s2_id,l.s3_id) as '19' /*FYC体系*/,
l.practitioner_name '20' /*销售经纪人*/,
l.practitioner_level '21' /*经纪人职级*/,
if(f.grade_commission_rate!=null,f.grade_commission_rate,'') '22' /*职级率*/,
if(f.grade_commission_rate is not null,f.grade_commission_rate,'100') '22' /*职级率*/,
sum(case when drop_option_code ='C01' then f.referral_amount else null end) '23' /*首年销售佣金*/,
sum(case when drop_option_code ='C02' then f.referral_amount else null end) '24' /*续年销售佣金*/,
......@@ -664,7 +663,7 @@
(SELECT group_concat(a.name)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id and t.segment_vlaue='S1'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '60' /*S1育成人*/,
(SELECT group_concat(op1.drop_option_name)
......@@ -672,19 +671,19 @@
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
LEFT JOIN ag_acl_practitioner_setting b on b.practitioner_id = a.id
LEFT JOIN ag_md_drop_options op1 ON op1.id = b.practitioner_level
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id and t.segment_vlaue='S1'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '61' /*S1育成人职级*/,
(SELECT group_concat(calculation_rate)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id and t.segment_vlaue='S1'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '62' /*S1育成奖金率*/,
(SELECT group_concat(referral_amount)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s1_raise_id and t.segment_vlaue='S1'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '63' /*S1育成金额*/,
......@@ -761,7 +760,7 @@
(SELECT group_concat(a.name)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id and t.segment_vlaue='S2'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '80' /*S2育成人*/,
(SELECT group_concat(op1.drop_option_name)
......@@ -769,26 +768,26 @@
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
LEFT JOIN ag_acl_practitioner_setting b on b.practitioner_id = a.id
LEFT JOIN ag_md_drop_options op1 ON op1.id = b.practitioner_level
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id and t.segment_vlaue='S2'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '81' /*S2育成人职级*/,
(SELECT group_concat(calculation_rate)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id and t.segment_vlaue='S2'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '82' /*S2育成奖金率*/,
(SELECT group_concat(referral_amount)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s2_raise_id and t.segment_vlaue='S2'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '83' /*S2育成金额*/,
(SELECT group_concat(a.name)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id and t.segment_vlaue='S3'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '84' /*S3育成人*/,
(SELECT group_concat(op1.drop_option_name)
......@@ -796,19 +795,19 @@
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
LEFT JOIN ag_acl_practitioner_setting b on b.practitioner_id = a.id
LEFT JOIN ag_md_drop_options op1 ON op1.id = b.practitioner_level
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id
where t.drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id and t.segment_vlaue='S3'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '85' /*S3育成人职级*/,
(SELECT group_concat(calculation_rate)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id and t.segment_vlaue='S3'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '86' /*S3育成奖金率*/,
(SELECT group_concat(referral_amount)
from ag_acl_customer_fortune t
LEFT JOIN ag_acl_practitioner a on a.customer_id = t.customer_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id
where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id and a.id=l.s3_raise_id and t.segment_vlaue='S3'
and t.id in <foreach collection="list1" item="item" open="(" separator="," close=")">#{item,jdbcType=BIGINT}</foreach>
) '87' /*S3育成金额*/,
sum(case when drop_option_code ='C95' then f.referral_amount else null end) as '88' /*其它税前加扣款1*/,
......@@ -820,7 +819,6 @@
l.customer_id
FROM ag_acl_customer_fortune f
INNER JOIN ag_acl_life_insurance_practitioner l on l.order_id = f.order_id and l.practitioner_id = f.sale_practitioner_id
LEFT JOIN ag_acl_customer_fortune_payout_batch pb on pb.id = f.payout_batch_id
LEFT JOIN ag_acl_practitioner pra on pra.customer_id = f.customer_id
LEFT JOIN ag_acl_practitioner_setting ps on ps.practitioner_id = pra.id
LEFT JOIN ag_po_order o on o.id = f.order_id
......@@ -836,7 +834,7 @@
<if test="list2.size() > 0">
UNION ALL
select
pb.payout_yearmonth '0' /*对账月*/,
(SELECT t.commission_time FROM ag_po_order_commission t WHERE t.id= f.commission_id) '0' /*对账月*/,
(select name from ag_acl_policyholder where order_id = f.order_id and type=2) '1',
o.policy_no '2',
i.name '3' /*保司*/,
......@@ -846,7 +844,7 @@
CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '年' END)) '7',
ifnull(f.fyc_rate,'') '8' /*'FYC%'*/,
if(f.order_id!=null, IFNULL(p.is_achievement_statistic,'100'), '') '9' /*'业绩折标率%'*/,
if(f.order_id is not null, o.is_achievement_statistic, '100') '9' /*'业绩折标率%'*/,
ifnull( f.share_rate,'') '10' /*'分佣%'*/,
ifnull( f.achievements_rate,'') '11' /*'业绩%'*/,
if(f.commission_period!=1,f.fyc_rate,'') '12' /*'RYC%'*/,
......@@ -958,7 +956,6 @@
f.customer_id
FROM ag_acl_customer_fortune f
LEFT JOIN ag_acl_customer_fortune_payout_batch pb on pb.id = f.payout_batch_id
LEFT JOIN ag_acl_practitioner pra on pra.customer_id = f.customer_id
LEFT JOIN ag_acl_practitioner_setting ps on ps.practitioner_id = pra.id
LEFT JOIN ag_md_drop_options op1 ON op1.id = ps.practitioner_level
......
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