薪酬系统-福利台账,补差福利项列表功能和补差模板导出功能

This commit is contained in:
sy 2022-12-06 11:44:04 +08:00
parent bea06f1d88
commit 3fa017b13a
4 changed files with 73 additions and 1 deletions

View File

@ -140,7 +140,6 @@ public interface SIAccountService {
/**
* tab信息
* @param billMonth
*/
InsuranceAccountTabDTO tabList(AccountParam build);
@ -260,5 +259,9 @@ public interface SIAccountService {
*/
void editAccount(EditAccountDetailParam param);
/**
* 导出福利核算-补差导入模板
*/
XSSFWorkbook exportBalanceImportTemplate(InsuranceAcctDetailImportTemplateParam param);
}

View File

@ -2475,4 +2475,48 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
insuranceAccountDetailPO.setTotal(perSum.add(comSum).toPlainString());
return insuranceAccountDetailPO;
}
/**
* 导出福利核算-补差导入模板
*/
@Override
public XSSFWorkbook exportBalanceImportTemplate(InsuranceAcctDetailImportTemplateParam param) {
ValidUtil.doValidator(param);
// 必须选择导入模板所需的薪资项目(福利项)
if (CollectionUtils.isEmpty(param.getWelfareNames())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99019, "参数错误,请选择导入模板所需的福利项目核算项"));
}
// 模板表头(默认必带"个税扣缴义务人""姓名")
List<Object> headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"),
"部门",
SalaryI18nUtil.getI18nLabel(86186, "手机号"),
SalaryI18nUtil.getI18nLabel(86317, "工号"),
SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人")
);
List<String> dataIndexList = Lists.newArrayList("username", "departmentName", "mobile", "workcode", "taxAgentName");
// 查询福利核算项目
List<String> welfareNames = (List<String>) param.getWelfareNames();
headerList.addAll(welfareNames);
// //查询当前已有的补缴数据
// List<Map<String, Object>> resultMapList = getSupplyDataByBillMonth(param.getBillMonth(), param.getPaymentOrganization());
// // excel导出的数据
// List<List<Object>> rows = Lists.newArrayListWithExpectedSize(resultMapList.size());
// rows.add(headerList);
// for (Map<String, Object> map : resultMapList) {
// List<Object> row = Lists.newArrayListWithExpectedSize(headerList.size());
// for (String dataIndex : dataIndexList) {
// row.add(map.getOrDefault(dataIndex, StringUtils.EMPTY));
// }
// rows.add(row);
// }
List<List<Object>> rows = new ArrayList<>();
rows.add(headerList);
String sheetName = "福利核算-补差导入模板";
return ExcelUtil.genWorkbookV2(rows, sheetName);
}
}

View File

@ -786,4 +786,18 @@ public class SIAccountController {
}
// **********************************调差 end*********************************/
// **********************************补差 start*********************************/
/**
* 福利台账-补差福利项列表
*/
@GET
@Path("/getBalanceWelfareList")
@Produces(MediaType.APPLICATION_JSON)
public String getBalanceWelfareList(@Context HttpServletRequest request, @Context HttpServletResponse response) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<String,List<InsuranceAcctDetailImportFieldDTO>>(user).run(getSalaryFormulaWrapper(user)::balanceWelfareList);
}
// **********************************补差 end*********************************/
}

View File

@ -22,6 +22,7 @@ import weaver.hrm.User;
import weaver.servicefiles.DataSourceXML;
import java.util.*;
import java.util.stream.Collectors;
/**
* 薪资项目
@ -108,4 +109,14 @@ public class SalaryFormulaWrapper extends Service {
return welfareList;
}
/**
* 获取福利台账的补差-福利类项目
*/
public List<InsuranceAcctDetailImportFieldDTO> balanceWelfareList() {
List<InsuranceAcctDetailImportFieldDTO> welfareList = welfareList();
welfareList = welfareList.stream().filter(f -> !f.getSalaryItemName().contains("合计")).collect(Collectors.toList());
return welfareList;
}
}