薪酬系统-福利台账,正常缴纳线下对比模板下载功能
This commit is contained in:
parent
0a900905bd
commit
314dc8803c
|
|
@ -227,5 +227,10 @@ public interface SIAccountService {
|
|||
* 导出“福利核算-补缴导入模板”
|
||||
*/
|
||||
XSSFWorkbook exportSupplyImportTemplate(InsuranceAcctDetailImportTemplateParam param);
|
||||
|
||||
/**
|
||||
* 导出“福利核算-线下对比导入模板”
|
||||
*/
|
||||
XSSFWorkbook exportComparisonWelfareTemplate(InsuranceAcctDetailImportTemplateParam param);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1303,6 +1303,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
|
|||
return ExcelUtil.genWorkbookV2(rows, sheetName);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取福利台账中的补缴数据
|
||||
* @param billMonth 账单月份
|
||||
|
|
@ -1557,4 +1558,88 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出“福利核算-线下对比导入模板”
|
||||
*/
|
||||
@Override
|
||||
public XSSFWorkbook exportComparisonWelfareTemplate(InsuranceAcctDetailImportTemplateParam param) {
|
||||
|
||||
List<ICategoryPO> listAll = MapperProxyFactory.getProxy(ICategoryMapper.class).listAll();
|
||||
List<ICategoryPO> socialWelfareList = listAll.stream().filter(e -> e.getWelfareType() == 1).collect(Collectors.toList());
|
||||
List<ICategoryPO> fundWelfareList = listAll.stream().filter(e -> e.getWelfareType() == 2).collect(Collectors.toList());
|
||||
List<ICategoryPO> otherWelfareList = listAll.stream().filter(e -> e.getWelfareType() == 3).collect(Collectors.toList());
|
||||
List<Object> headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"),
|
||||
SalaryI18nUtil.getI18nLabel(86185, "部门"),
|
||||
SalaryI18nUtil.getI18nLabel(86186, "手机号"),
|
||||
// SalaryI18nUtil.getI18nLabel(86317, "工号"),
|
||||
SalaryI18nUtil.getI18nLabel(86187, "员工状态"),
|
||||
SalaryI18nUtil.getI18nLabel(100377, "数据来源"),
|
||||
SalaryI18nUtil.getI18nLabel(91325, "个税扣缴义务人"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91324, "社保账号"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91323, "社保方案名称"));
|
||||
// "失业保险申报基数"
|
||||
// "生育保险申报基数"
|
||||
// "养老保险申报基数"
|
||||
// "医疗保险申报基数"
|
||||
// "工伤保险申报基数"
|
||||
for (ICategoryPO po : socialWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "申报基数");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91486, "公积金账号"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91485, "公积金方案名称"));
|
||||
//组装公积金基数
|
||||
for (ICategoryPO po : fundWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "申报基数");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91487, "补充公积金账号"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(91496, "其他福利方案名称"));
|
||||
//组装其他福利基数
|
||||
for (ICategoryPO po : otherWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "申报基数");
|
||||
}
|
||||
//社保个人(生育保险个人、工伤保险个人、失业保险个人、养老保险个人、医疗保险个人)
|
||||
for (ICategoryPO po : socialWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "个人");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100388, "社保个人合计"));
|
||||
//住房公积金个人、补充住房公积金个人
|
||||
for (ICategoryPO po : fundWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "个人");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100390, "公积金个人合计"));
|
||||
//其他个人(比如企业年金个人)
|
||||
for (ICategoryPO po : otherWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "个人");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100392, "其他福利个人合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100393, "个人合计"));
|
||||
//社保单位(生育保险单位、工伤保险单位、失业保险单位、养老保险单位、医疗保险单位)
|
||||
for (ICategoryPO po : socialWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "单位");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100394, "社保单位合计"));
|
||||
//住房公积金单位、补充住房公积金单位
|
||||
for (ICategoryPO po : fundWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "单位");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100395, "公积金单位合计"));
|
||||
//其他单位(比如企业年金单位)
|
||||
for (ICategoryPO po : otherWelfareList) {
|
||||
headerList.add(po.getInsuranceName() + "单位");
|
||||
}
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100396, "其他福利单位合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100397, "单位合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100398, "社保合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100399, "公积金合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(100400, "其他福利合计"));
|
||||
headerList.add(SalaryI18nUtil.getI18nLabel(93278, "合计"));
|
||||
|
||||
List<List<Object>> rows = new ArrayList<>();
|
||||
rows.add(headerList);
|
||||
String sheetName = "福利核算-线下对比导入模板";
|
||||
|
||||
return ExcelUtil.genWorkbookV2(rows, sheetName);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -503,5 +503,44 @@ public class SIAccountController {
|
|||
|
||||
}
|
||||
|
||||
// **********************************线下对比 start*********************************/
|
||||
/**
|
||||
* 导出“福利核算导入”模板
|
||||
*/
|
||||
@GET
|
||||
@Path("/comparisonwelfare/importtemplate/export")
|
||||
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
||||
public Response exportComparisonWelfareTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
try {
|
||||
InsuranceAcctDetailImportTemplateParam param = new InsuranceAcctDetailImportTemplateParam();
|
||||
|
||||
// String welfareNames = request.getParameter("welfareNames");
|
||||
// if (StringUtils.isNotBlank(welfareNames)) {
|
||||
// param.setWelfareNames(Arrays.stream(welfareNames.split(",")).map(String::valueOf).collect(Collectors.toList()));
|
||||
// }
|
||||
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
XSSFWorkbook workbook = getService(user).exportComparisonWelfareTemplate(param);
|
||||
String time = LocalDate.now().toString();
|
||||
String fileName = "福利核算-线下对比导入模板" + time;
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
StreamingOutput output = outputStream -> {
|
||||
workbook.write(outputStream);
|
||||
outputStream.flush();
|
||||
};
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("福利核算-线下对比导入模板导出异常", e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// **********************************线下对比 end*********************************/
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue