Commit 8d06283d by jianan

保单发佣明细报表2.1-加字段及多个团队绩效拆成多行

parent 85e72158
......@@ -960,15 +960,25 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
info.setSubsystemIdList(subsystemIdList);
List<CommissionPayoutStatus> commissionPayoutStatusList = agmsFortuneDalService.commissionPayoutStatusQuery(info);
List<Long> fortuneIdList = new ArrayList<>();
for (CommissionPayoutStatus item : commissionPayoutStatusList) {
fortuneIdList.add(item.getFortuneId());
}
// 查询销售经纪人所属s1,s2,s3的C08,C10记录
List<Long> fortuneIdList1 = agmsFortuneDalService.querySalePractitionerFortune1(fortuneIdList);
List<Long> fortuneIdList0 = agmsFortuneDalService.querySalePractitionerFortune(fortuneIdList);
List<Long> fortuneIdList2 = new ArrayList<>();// 非销售经纪人所属s1,s2,s3的C08,C10记录
for (Long item : fortuneIdList0) {
if (!fortuneIdList1.contains(item)) {
fortuneIdList2.add(item);
}
}
// 导出xlsx
XSSFWorkbook wkb = new XSSFWorkbook();
// 保单发佣清算明细报表Sheet页
generateSheet2(wkb, fortuneIdList);
generateSheet2(wkb, fortuneIdList, fortuneIdList2);
// 设置响应
String fn = "ZHB_SalaryReport_" + System.currentTimeMillis() + ".xlsx";
String headStr = "attachment; filename=\"" + fn + "\"";
......@@ -977,14 +987,14 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
return responseVO;
}
private void generateSheet2(XSSFWorkbook wkb, List<Long> fortuneIdList) {
private void generateSheet2(XSSFWorkbook wkb, List<Long> fortuneIdList, List<Long> fortuneIdList2) {
XSSFSheet sheet2 = wkb.createSheet("保单发佣清算明细报表");
// 1.设置表头
String[] columnName = new String[]{"序号", "对账月", "投保人", "保单号", "保司", "保费", "产品", "承保时间", "年期",
"FYC%", "业绩折标率%", "分佣%", "业绩%", "RYC%", "保单FYC", "佣金FYC", "业绩FYC", "保单RYC", "佣金RYC", "渠道",
"FYC体系", "销售经纪人", "销售经纪人职级", "职级率",
"首年销售佣金", "续年销售佣金", "续期辅导人", "续期辅导奖金率", "续期辅导奖", "经纪人月销售加码奖金%", "经纪人月销售加码奖金",
"推荐人", "个人推荐率", "个人推荐奖¥", "体系推荐率", "体系推荐奖金¥",
"推荐人", "个人推荐率", "个人推荐奖¥", "S1体系推荐率", "S1体系推荐奖金¥",
"一代辅导人", "一代辅导人职级", "一代辅导人职级岗位津贴%", "一代辅导人岗位津贴",
"二代辅导人", "二代辅导人职级", "二代辅导人职级岗位津贴%", "二代辅导人岗位津贴",
"所属 S1分部", "S1团队达标奖金率", "S1团队达标奖金¥(季度)", "S1团队长辅导津贴比率", "S1团队长辅导津贴", "S1续期绩效奖金",
......@@ -993,13 +1003,16 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
"育成人", "育成人职级", "育成奖金率", "育成金额",
"C14直接销售加码佣金率", "C14直接销售加码佣金",
"基本法属性", "S01-首年度销售佣金", "S03-首年度辅导奖金",
"R01-首年度直接销售佣金(旧)", "R02-续年度直接销售拥金(旧)", "R03-续年度辅导佣金(旧)", "R04-续年度绩效奖金(旧)"};
"R01-首年度直接销售佣金(旧)", "R02-续年度直接销售拥金(旧)", "R03-续年度辅导佣金(旧)", "R04-续年度绩效奖金(旧)",
"S1推荐人", "S2推荐人", "S2体系推荐率", "S2体系推荐奖金¥", "S3推荐人", "S3体系推荐率", "S3体系推荐奖金¥",
"S2育成人", "S2育成人职级", "S2育成奖金率", "S2育成金额", "S3育成人", "S3育成人职级", "S3育成奖金率", "S3育成金额",
"其它税前加扣款1", "其它税前加扣款2", "其它税前加扣款3", "其它税前加扣款4", "其它"};
XSSFRow rownum = sheet2.createRow(0);
for (int j = 0; j < columnName.length; j++) {
rownum.createCell(j).setCellValue(columnName[j]);
}
// 2.查询Sheet2数据
List<Map<String, Object>> dataList = agmsFortuneDalService.querySheet2Data(fortuneIdList);
List<Map<String, Object>> dataList = agmsFortuneDalService.querySheet2Data(fortuneIdList, fortuneIdList2);
// 将结果集中的推荐人、体系等id替换为中文
if (CollectionUtils.isNotEmpty(dataList)) {
exportSalaryDetailsSheet2queryOrganization(dataList);
......@@ -1125,18 +1138,22 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
private String processMerge(Object o, Map<Long, AclPractitioner> aclPractitionerMap) {
if (null != o && StringUtils.isNotBlank(o.toString())) {
String[] practitionerId_values = o.toString().split(",");
for (int j = 0; j < practitionerId_values.length; j++) {
String[] split = practitionerId_values[j].split("-");
if (StringUtils.isNotBlank(split[0])) {
Long practitionerId = Long.valueOf(split[0]);
AclPractitioner practitioner = aclPractitionerMap.get(practitionerId);
if (practitioner != null) {
String strNew = practitioner.getName() + "-" + split[1];
practitionerId_values[j] = strNew;
if (practitionerId_values.length > 1) {
for (int j = 0; j < practitionerId_values.length; j++) {
String[] split = practitionerId_values[j].split("-");
if (StringUtils.isNotBlank(split[0])) {
Long practitionerId = Long.valueOf(split[0]);
AclPractitioner practitioner = aclPractitionerMap.get(practitionerId);
if (practitioner != null) {
String strNew = practitioner.getName() + "-" + split[1];
practitionerId_values[j] = strNew;
}
}
}
return Joiner.on(",").join(Arrays.asList(practitionerId_values));
} else {
return o.toString();
}
return Joiner.on(",").join(Arrays.asList(practitionerId_values));
}
return null;
}
......
......@@ -45,5 +45,9 @@ public interface AgmsFortuneMapper {
*/
List<WithdrawLabelInfo> salaryPolicyNoDetails(@Param("item")WithdrawQueryInfo info);
List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList);
List<Map<String, Object>> querySheet2Data(@Param("list1") List<Long> fortuneIdList, @Param("list2") List<Long> fortuneIdList2);
List<Long> querySalePractitionerFortune(List<Long> fortuneIdList);
List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList);
}
......@@ -45,5 +45,9 @@ public interface AgmsFortuneDALService {
*/
List<WithdrawLabelInfo> salaryPolicyNoDetails(WithdrawQueryInfo info);
List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList);
List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList, List<Long> fortuneIdList2);
List<Long> querySalePractitionerFortune(List<Long> fortuneIdList);
List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList);
}
......@@ -74,7 +74,17 @@ public class AgmsFortuneDALServiceImpl implements AgmsFortuneDALService {
}
@Override
public List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList) {
return agmsFortuneMapper.querySheet2Data(fortuneIdList);
public List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList, List<Long> fortuneIdList2) {
return agmsFortuneMapper.querySheet2Data(fortuneIdList, fortuneIdList2);
}
@Override
public List<Long> querySalePractitionerFortune(List<Long> fortuneIdList) {
return agmsFortuneMapper.querySalePractitionerFortune(fortuneIdList);
}
@Override
public List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList) {
return agmsFortuneMapper.querySalePractitionerFortune1(fortuneIdList);
}
}
......@@ -423,7 +423,7 @@
</select>
<select id="querySheet2Data" resultType="java.util.LinkedHashMap">
<sql id="sheet2Data1" >
select
pb.payout_yearmonth '0' /*对账月*/,
(select name from ag_acl_policyholder where order_id = f.order_id and type=2) '1',
......@@ -432,7 +432,7 @@
o.order_price '4' ,
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',
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' /*'业绩折标率%'*/,
......@@ -446,7 +446,7 @@
if(f.commission_period!=1,f.referral_amount,'') '17' /*佣金RYC*/,
(select name from ag_acl_channel where id = f.channel_id) '18' /*渠道*/,
coalesce(l.s1_id,l.s2_id,l.s3_id) '19' /*FYC体系*/,
null as '19' /*FYC体系*/,
pra.name '20' /*销售经纪人*/,
ps.practitioner_level '21' /*经纪人职级*/,
if(f.id=min(f.id),f.grade_commission_rate,'') '22' /*职级率*/,
......@@ -454,15 +454,18 @@
sum(case when drop_option_code ='C02' then f.referral_amount else null end) '24' /*续年销售佣金*/,
(SELECT group_concat(t.practitioner_id) from ag_acl_customer_fortune t
where t.drop_option_code ='R03' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='R03' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '25' /*续期辅导人*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
where t.drop_option_code ='R03' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='R03' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '26' /*续期辅导奖金率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
where t.drop_option_code ='R03' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='R03' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '27' /*续期辅导奖*/,
sum(case when drop_option_code ='C04' then f.calculation_rate else null end) '28' /*'经纪人月销售加码奖金%'*/,
......@@ -472,8 +475,8 @@
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C05' and practitioner_id = l.introducer_id) '31' /*个人推荐率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C05' and practitioner_id = l.introducer_id) '32' /*个人推荐奖¥*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.practitioner_id) '33' /*体系推荐率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.practitioner_id) '34' /*体系推荐奖金¥*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s1_team_introducer_id) '33' /*S1体系推荐率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s1_team_introducer_id) '34' /*S1体系推荐奖金¥*/,
l.mentor_id '35' /*一代辅导人*/,
l.mentor_level '36' /*一代辅导人职级*/,
......@@ -486,142 +489,148 @@
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C07' and practitioner_id = l.in_mentor_id) '42' /*二代辅导人岗位津贴*/,
l.s1_id '43' /*所属S1分部*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
(case when l.s1_team_leader_id is not null then
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S1' and t.sale_practitioner_id=l.practitioner_id
) '44' /*S1团队达标奖金率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s1_team_leader_id
) else null end) '44' /*S1团队达标奖金率*/,
(case when l.s1_team_leader_id is not null then
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S1' and t.sale_practitioner_id=l.practitioner_id
) '45' /*'S1团队达标奖金¥(季度)'*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s1_team_leader_id
) else null end) '45' /*'S1团队达标奖金¥(季度)'*/,
(case when l.s1_team_leader_id is not null then
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S1' and t.sale_practitioner_id=l.practitioner_id
) '46' /*S1团队长辅导津贴比率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s1_team_leader_id
) else null end) '46' /*S1团队长辅导津贴比率*/,
(case when l.s1_team_leader_id is not null then
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S1' and t.sale_practitioner_id=l.practitioner_id
) '47' /*S1团队长辅导津贴*/,
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s1_team_leader_id
) else null end) '47' /*S1团队长辅导津贴*/,
if(f.commission_period!=1,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S1' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s1_team_leader_id
),
null) as '48' /*S1续期绩效奖金*/,
l.s2_id '49' /*所属S2体系*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S2' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s2_team_leader_id
) '50' /*S2团队达标奖金率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S2' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s2_team_leader_id
) '51' /*'S2团队达标奖金¥(季度)'*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S2' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s2_team_leader_id
) '52' /*S2团队长辅导津贴比率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S2' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s2_team_leader_id
) '53' /*S2团队长辅导津贴*/,
if(f.commission_period!=1,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S2' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s2_team_leader_id
),
null) as '54' /*S2续期绩效奖金*/,
l.s3_id '55' /*所属S3纵队*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S3' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s3_team_leader_id
) '56' /*S3团队达标奖金率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C08' and order_id=f.order_id and op1.drop_option_code='S3' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C08' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s3_team_leader_id
) '57' /*'S3团队达标奖金¥(季度)'*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, calculation_rate))
(SELECT calculation_rate
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S3' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s3_team_leader_id
) '58' /*S3团队长辅导津贴比率*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
(SELECT referral_amount
from ag_acl_customer_fortune t
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 ='C10' and order_id=f.order_id and op1.drop_option_code='S3' and t.sale_practitioner_id=l.practitioner_id
where t.drop_option_code ='C10' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and a.id=l.s3_team_leader_id
) '59' /*S3团队长辅导津贴*/,
(SELECT group_concat(sale_practitioner_id) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '60' /*育成人*/,
(SELECT group_concat(sale_practitioner_id) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '60' /*S1育成人*/,
(SELECT group_concat(op1.drop_option_name)
from ag_acl_customer_fortune t
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
) '61' /*育成人职级*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '62' /*育成奖金率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '63' /*育成金额*/,
) '61' /*S1育成人职级*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '62' /*S1育成奖金率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.practitioner_id) '63' /*S1育成金额*/,
sum(case when drop_option_code ='C14' then f.calculation_rate else null end) '64' /*C14直接销售加码佣金率*/,
sum(case when drop_option_code ='C14' then f.referral_amount else null end) '65' /*C14直接销售加码佣金*/,
if(o.settlement_rule_type=1,'简单基本法','标准基本法') '66' /*基本法属性*/,
sum(case when drop_option_code ='S01' then f.referral_amount else null end) '67' /*S01-首年度销售佣金*/,
sum(case when drop_option_code ='S03' then f.referral_amount else null end) '68' /*S03-首年度辅导奖金*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='S03' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '68' /*S03-首年度辅导奖金*/,
sum(case when drop_option_code ='C95' then f.referral_amount else null end) '69' /*R01-首年度直接销售佣金(旧)*/,
null as '69' /*R01-首年度直接销售佣金(旧)*/,
sum(case when drop_option_code ='R02' then f.referral_amount else null end) '70' /*R02-续年度直接销售拥金(旧)*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
where t.drop_option_code ='R03' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='R03' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '71' /*R03-续年度辅导佣金(旧)*/,
(SELECT group_concat(CONCAT_WS('-', t.practitioner_id, referral_amount))
from ag_acl_customer_fortune t
where t.drop_option_code ='R04' and order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id
LEFT JOIN ag_po_order_commission c on c.id = t.commission_id
where t.drop_option_code ='R04' and t.order_id=f.order_id and t.sale_practitioner_id=l.practitioner_id and c.commission_status='2'
) '72' /*R04-续年度绩效奖金(旧)*/,
l.s1_team_introducer_id '73' /*S1推荐人*/,
l.s2_team_introducer_id '74' /*S2推荐人*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s2_team_introducer_id) '74' /*S2体系推荐率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s2_team_introducer_id) '75' /*S2体系推荐奖金¥*/,
l.s3_team_introducer_id '77' /*S3推荐人*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s3_team_introducer_id) '78' /*S3体系推荐率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where order_id=f.order_id and drop_option_code ='C15' and sale_practitioner_id = l.s3_team_introducer_id) '79' /*S3体系推荐奖金¥*/,
(SELECT group_concat(sale_practitioner_id) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s2_raise_id) '80' /*S2育成人*/,
l.s2_raise_level '81' /*S2育成人职级*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s2_raise_id) '82' /*S2育成奖金率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s2_raise_id) '83' /*S2育成金额*/,
(SELECT group_concat(sale_practitioner_id) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s3_raise_id) '84' /*S3育成人*/,
l.s3_raise_level '85' /*S3育成人职级*/,
(SELECT group_concat(calculation_rate) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s3_raise_id) '86' /*S3育成奖金率*/,
(SELECT group_concat(referral_amount) from ag_acl_customer_fortune where drop_option_code ='C09' and order_id=f.order_id and sale_practitioner_id = l.s3_raise_id) '87' /*S3育成金额*/,
sum(case when drop_option_code ='C95' then f.referral_amount else null end) as '88' /*其它税前加扣款1*/,
sum(case when drop_option_code ='C96' then f.referral_amount else null end) as '89' /*其它税前加扣款2*/,
sum(case when drop_option_code ='C97' then f.referral_amount else null end) as '90' /*其它税前加扣款3*/,
sum(case when drop_option_code ='C98' then f.referral_amount else null end) as '91' /*其它税前加扣款4*/,
sum(case when drop_option_code ='C99' then f.referral_amount else null end) as '92' /*其它*/,
f.order_id,
l.customer_id
......@@ -635,10 +644,189 @@
LEFT JOIN ag_product p on p.id = o.product_id
WHERE
f.id in
<foreach collection="list" item="item" open="(" separator="," close=")">
<foreach collection="list1" item="item" open="(" separator="," close=")">
#{item,jdbcType=BIGINT}
</foreach>
GROUP BY f.order_id, l.customer_id
</sql>
<select id="querySheet2Data" resultType="java.util.LinkedHashMap">
<include refid="sheet2Data1"/>
<if test="list2.size() > 0">
UNION ALL
select
pb.payout_yearmonth '0' /*对账月*/,
(select name from ag_acl_policyholder where order_id = f.order_id and type=2) '1',
o.policy_no '2',
i.name '3' /*保司*/,
o.order_price '4' ,
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',
ifnull(f.fyc_rate,'') '8' /*'FYC%'*/,
if(f.order_id!=null, IFNULL(p.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%'*/,
ifnull( f.fyc_amount,'') '13'/*保单FYC*/,
ifnull( f.referral_amount,'') '14' /*佣金FYC*/,
ifnull( f.achievements,'') '15' /*业绩FYC*/,
if(f.commission_period!=1,f.fyc_amount,'') '16' /*保单RYC*/,
if(f.commission_period!=1,f.referral_amount,'') '17' /*佣金RYC*/,
(select name from ag_acl_channel where id = f.channel_id) '18' /*渠道*/,
null as '19' /*FYC体系*/,
(select name from ag_acl_practitioner where id = f.sale_practitioner_id) '20' /*销售经纪人*/,
(SELECT b.practitioner_level
from ag_acl_practitioner a
LEFT JOIN ag_acl_practitioner_setting b on b.practitioner_id = a.id
where a.id = f.sale_practitioner_id
) '21' /*经纪人职级*/,
ifnull(f.grade_commission_rate,'') '22' /*职级率*/,
null as '23' /*首年销售佣金*/,
null as '24' /*续年销售佣金*/,
null as '25' /*续期辅导人*/,
null as '26' /*续期辅导奖金率*/,
null as '27' /*续期辅导奖*/,
null as '28' /*'经纪人月销售加码奖金%'*/,
null as '29' /*经纪人月销售加码奖金*/,
null as '30' /*推荐人*/,
null as '31' /*个人推荐率*/,
null as '32' /*个人推荐奖¥*/,
null as '33' /*体系推荐率*/,
null as '34' /*体系推荐奖金¥*/,
null as '35' /*一代辅导人*/,
null as '36' /*一代辅导人职级*/,
null as '37' /*'一代辅导人职级岗位津贴%'*/,
null as '38' /*一代辅导人岗位津贴*/,
null as '39' /*二代辅导人*/,
null as '40' /*二代辅导人职级*/,
null as '41' /*'二代辅导人职级岗位津贴%'*/,
null as '42' /*二代辅导人岗位津贴*/,
(case when op1.drop_option_code='S1' then pra.subordinate_system_id else null end) as '43' /*所属S1分部*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S1' then f.calculation_rate else null end) '44' /*S1团队达标奖金率*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S1' then f.referral_amount else null end) '45' /*'S1团队达标奖金¥(季度)'*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S1' then f.calculation_rate else null end) '46' /*S1团队长辅导津贴比率*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S1' then f.referral_amount else null end) '47' /*S1团队长辅导津贴*/,
if(f.commission_period!=1,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S1' then f.referral_amount else null end),
null) as '48' /*S1续期绩效奖金*/,
(case when op1.drop_option_code='S2' then pra.subordinate_system_id else null end) as '49' /*所属S2体系*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S2' then f.calculation_rate else null end) '50' /*S2团队达标奖金率*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S2' then f.referral_amount else null end) '51' /*'S2团队达标奖金¥(季度)'*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S2' then f.calculation_rate else null end) '52' /*S2团队长辅导津贴比率*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S2' then f.referral_amount else null end) '53' /*S2团队长辅导津贴*/,
if(f.commission_period!=1,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S2' then f.referral_amount else null end),
null) as '54' /*S2续期绩效奖金*/,
(case when op1.drop_option_code='S3' then pra.subordinate_system_id else null end) as '55' /*所属S3纵队*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S3' then f.calculation_rate else null end) '56' /*S3团队达标奖金率*/,
(case when f.drop_option_code ='C08' and op1.drop_option_code='S3' then f.referral_amount else null end) '57' /*'S3团队达标奖金¥(季度)'*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S3' then f.calculation_rate else null end) '58' /*S3团队长辅导津贴比率*/,
(case when f.drop_option_code ='C10' and op1.drop_option_code='S3' then f.referral_amount else null end) '59' /*S3团队长辅导津贴*/,
null as '60' /*育成人*/,
null as '61' /*育成人职级*/,
null as '62' /*育成奖金率*/,
null as '63' /*育成金额*/,
null as '64' /*C14直接销售加码佣金率*/,
null as '65' /*C14直接销售加码佣金*/,
if(o.settlement_rule_type=1,'简单基本法','标准基本法') '66' /*基本法属性*/,
null as '67' /*S01-首年度销售佣金*/,
null as '68' /*S03-首年度辅导奖金*/,
null as '69' /*R01-首年度直接销售佣金(旧)*/,
null as '70' /*R02-续年度直接销售拥金(旧)*/,
null as '71' /*R03-续年度辅导佣金(旧)*/,
null as '72' /*R04-续年度绩效奖金(旧)*/,
null as '73' /*S1推荐人*/,
null as '74' /*S2推荐人*/,
null as '75' /*S2体系推荐率*/,
null as '76' /*S2体系推荐奖金¥*/,
null as '77' /*S3推荐人*/,
null as '78' /*S3体系推荐率*/,
null as '79' /*S3体系推荐奖金¥*/,
null as '80' /*S2育成人*/,
null as '81' /*S2育成人职级*/,
null as '82' /*S2育成奖金率*/,
null as '83' /*S2育成金额*/,
null as '84' /*S3育成人*/,
null as '85' /*S3育成人职级*/,
null as '86' /*S3育成奖金率*/,
null as '87' /*S3育成金额*/,
null as '88' /*其它税前加扣款1*/,
null as '89' /*其它税前加扣款2*/,
null as '90' /*其它税前加扣款3*/,
null as '91' /*其它税前加扣款4*/,
null as '92' /*其它*/,
f.order_id,
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
LEFT JOIN ag_po_order o on o.id = f.order_id
LEFT JOIN ag_acl_insurer i on i.id = o.insurer_id
LEFT JOIN ag_product p on p.id = o.product_id
WHERE
f.id in
<foreach collection="list2" item="item" open="(" separator="," close=")">
#{item,jdbcType=BIGINT}
</foreach>
</if>
ORDER BY '2'
</select>
<select id="querySalePractitionerFortune1" parameterType="list" resultType="Long">
SELECT f.id
FROM ag_acl_customer_fortune f
LEFT JOIN ag_acl_practitioner pra on pra.customer_id = f.customer_id
WHERE 1=1
and f.id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and f.drop_option_code in ('C08', 'C10')
and pra.id in
(SELECT l.s1_team_leader_id
from ag_acl_life_insurance_practitioner l
where l.order_id = f.order_id
union all
SELECT l.s2_team_leader_id
from ag_acl_life_insurance_practitioner l
where l.order_id = f.order_id
union all
SELECT l.s3_team_leader_id
from ag_acl_life_insurance_practitioner l
where l.order_id = f.order_id
)
</select>
<select id="querySalePractitionerFortune" parameterType="list" resultType="Long">
SELECT f.id
FROM ag_acl_customer_fortune f
LEFT JOIN ag_acl_practitioner pra on pra.customer_id = f.customer_id
WHERE 1=1
and f.id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and f.drop_option_code in ('C08', 'C10')
</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