Commit 6ba707b6 by jianan

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

parent 043f2dd2
......@@ -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);
}
}
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