Commit 8d06283d by jianan

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

parent 85e72158
...@@ -960,15 +960,25 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService { ...@@ -960,15 +960,25 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
info.setSubsystemIdList(subsystemIdList); info.setSubsystemIdList(subsystemIdList);
List<CommissionPayoutStatus> commissionPayoutStatusList = agmsFortuneDalService.commissionPayoutStatusQuery(info); List<CommissionPayoutStatus> commissionPayoutStatusList = agmsFortuneDalService.commissionPayoutStatusQuery(info);
List<Long> fortuneIdList = new ArrayList<>(); List<Long> fortuneIdList = new ArrayList<>();
for (CommissionPayoutStatus item : commissionPayoutStatusList) { for (CommissionPayoutStatus item : commissionPayoutStatusList) {
fortuneIdList.add(item.getFortuneId()); 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 // 导出xlsx
XSSFWorkbook wkb = new XSSFWorkbook(); XSSFWorkbook wkb = new XSSFWorkbook();
// 保单发佣清算明细报表Sheet页 // 保单发佣清算明细报表Sheet页
generateSheet2(wkb, fortuneIdList); generateSheet2(wkb, fortuneIdList, fortuneIdList2);
// 设置响应 // 设置响应
String fn = "ZHB_SalaryReport_" + System.currentTimeMillis() + ".xlsx"; String fn = "ZHB_SalaryReport_" + System.currentTimeMillis() + ".xlsx";
String headStr = "attachment; filename=\"" + fn + "\""; String headStr = "attachment; filename=\"" + fn + "\"";
...@@ -977,14 +987,14 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService { ...@@ -977,14 +987,14 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
return responseVO; 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("保单发佣清算明细报表"); XSSFSheet sheet2 = wkb.createSheet("保单发佣清算明细报表");
// 1.设置表头 // 1.设置表头
String[] columnName = new String[]{"序号", "对账月", "投保人", "保单号", "保司", "保费", "产品", "承保时间", "年期", String[] columnName = new String[]{"序号", "对账月", "投保人", "保单号", "保司", "保费", "产品", "承保时间", "年期",
"FYC%", "业绩折标率%", "分佣%", "业绩%", "RYC%", "保单FYC", "佣金FYC", "业绩FYC", "保单RYC", "佣金RYC", "渠道", "FYC%", "业绩折标率%", "分佣%", "业绩%", "RYC%", "保单FYC", "佣金FYC", "业绩FYC", "保单RYC", "佣金RYC", "渠道",
"FYC体系", "销售经纪人", "销售经纪人职级", "职级率", "FYC体系", "销售经纪人", "销售经纪人职级", "职级率",
"首年销售佣金", "续年销售佣金", "续期辅导人", "续期辅导奖金率", "续期辅导奖", "经纪人月销售加码奖金%", "经纪人月销售加码奖金", "首年销售佣金", "续年销售佣金", "续期辅导人", "续期辅导奖金率", "续期辅导奖", "经纪人月销售加码奖金%", "经纪人月销售加码奖金",
"推荐人", "个人推荐率", "个人推荐奖¥", "体系推荐率", "体系推荐奖金¥", "推荐人", "个人推荐率", "个人推荐奖¥", "S1体系推荐率", "S1体系推荐奖金¥",
"一代辅导人", "一代辅导人职级", "一代辅导人职级岗位津贴%", "一代辅导人岗位津贴", "一代辅导人", "一代辅导人职级", "一代辅导人职级岗位津贴%", "一代辅导人岗位津贴",
"二代辅导人", "二代辅导人职级", "二代辅导人职级岗位津贴%", "二代辅导人岗位津贴", "二代辅导人", "二代辅导人职级", "二代辅导人职级岗位津贴%", "二代辅导人岗位津贴",
"所属 S1分部", "S1团队达标奖金率", "S1团队达标奖金¥(季度)", "S1团队长辅导津贴比率", "S1团队长辅导津贴", "S1续期绩效奖金", "所属 S1分部", "S1团队达标奖金率", "S1团队达标奖金¥(季度)", "S1团队长辅导津贴比率", "S1团队长辅导津贴", "S1续期绩效奖金",
...@@ -993,13 +1003,16 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService { ...@@ -993,13 +1003,16 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
"育成人", "育成人职级", "育成奖金率", "育成金额", "育成人", "育成人职级", "育成奖金率", "育成金额",
"C14直接销售加码佣金率", "C14直接销售加码佣金", "C14直接销售加码佣金率", "C14直接销售加码佣金",
"基本法属性", "S01-首年度销售佣金", "S03-首年度辅导奖金", "基本法属性", "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); XSSFRow rownum = sheet2.createRow(0);
for (int j = 0; j < columnName.length; j++) { for (int j = 0; j < columnName.length; j++) {
rownum.createCell(j).setCellValue(columnName[j]); rownum.createCell(j).setCellValue(columnName[j]);
} }
// 2.查询Sheet2数据 // 2.查询Sheet2数据
List<Map<String, Object>> dataList = agmsFortuneDalService.querySheet2Data(fortuneIdList); List<Map<String, Object>> dataList = agmsFortuneDalService.querySheet2Data(fortuneIdList, fortuneIdList2);
// 将结果集中的推荐人、体系等id替换为中文 // 将结果集中的推荐人、体系等id替换为中文
if (CollectionUtils.isNotEmpty(dataList)) { if (CollectionUtils.isNotEmpty(dataList)) {
exportSalaryDetailsSheet2queryOrganization(dataList); exportSalaryDetailsSheet2queryOrganization(dataList);
...@@ -1125,18 +1138,22 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService { ...@@ -1125,18 +1138,22 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
private String processMerge(Object o, Map<Long, AclPractitioner> aclPractitionerMap) { private String processMerge(Object o, Map<Long, AclPractitioner> aclPractitionerMap) {
if (null != o && StringUtils.isNotBlank(o.toString())) { if (null != o && StringUtils.isNotBlank(o.toString())) {
String[] practitionerId_values = o.toString().split(","); String[] practitionerId_values = o.toString().split(",");
for (int j = 0; j < practitionerId_values.length; j++) { if (practitionerId_values.length > 1) {
String[] split = practitionerId_values[j].split("-"); for (int j = 0; j < practitionerId_values.length; j++) {
if (StringUtils.isNotBlank(split[0])) { String[] split = practitionerId_values[j].split("-");
Long practitionerId = Long.valueOf(split[0]); if (StringUtils.isNotBlank(split[0])) {
AclPractitioner practitioner = aclPractitionerMap.get(practitionerId); Long practitionerId = Long.valueOf(split[0]);
if (practitioner != null) { AclPractitioner practitioner = aclPractitionerMap.get(practitionerId);
String strNew = practitioner.getName() + "-" + split[1]; if (practitioner != null) {
practitionerId_values[j] = strNew; 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; return null;
} }
......
...@@ -45,5 +45,9 @@ public interface AgmsFortuneMapper { ...@@ -45,5 +45,9 @@ public interface AgmsFortuneMapper {
*/ */
List<WithdrawLabelInfo> salaryPolicyNoDetails(@Param("item")WithdrawQueryInfo info); 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 { ...@@ -45,5 +45,9 @@ public interface AgmsFortuneDALService {
*/ */
List<WithdrawLabelInfo> salaryPolicyNoDetails(WithdrawQueryInfo info); 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 { ...@@ -74,7 +74,17 @@ public class AgmsFortuneDALServiceImpl implements AgmsFortuneDALService {
} }
@Override @Override
public List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList) { public List<Map<String, Object>> querySheet2Data(List<Long> fortuneIdList, List<Long> fortuneIdList2) {
return agmsFortuneMapper.querySheet2Data(fortuneIdList); 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);
} }
} }
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