package com.engine.salary.entity.salaryarchive.bo; /** * @Description: 薪资档案 * @Author: wangxiangzhong * @Date: 2021-11-03 10:51 */ public class SalaryArchiveBO { @Override public String toString() { return "SalaryArchiveBO{}"; } /** * 添加日期范围 * @param weaSearchCondition * @param employeeId * @param tenantKey */ // public static void addDatePickerRangeOtherParams(WeaSearchCondition weaSearchCondition, String datePickerKey, Long employeeId, String tenantKey) { // WeaSearchConditionItem datePickerItem = weaSearchCondition.getItems().get(datePickerKey); // Map otherParams = Maps.newHashMap(); // otherParams.put("isRange", true); // otherParams.put("type", "day"); // otherParams.put("startPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90648, "开始日期")); // otherParams.put("endPlaceholder", SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90649, "结束日期")); // datePickerItem.setOtherParams(otherParams); // weaSearchCondition.getItems().put(datePickerKey, datePickerItem); // } /** * 构建表格动态列 * @param weaTable * @param salaryItems * @param employeeId * @param tenantKey * @param size */ // public static void buildSalaryArchiveTable(WeaTable weaTable, List salaryItems, Long employeeId, String tenantKey, int size) { // // 表格表头 // List columns = new ArrayList<>(); // columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85429, "姓名"), "username", "100")); // columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人"), "taxAgentName", "100")); // columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86185, "部门"), "departmentName", "100")); // columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86186, "手机号"), "mobile", "100")); // columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86187, "员工状态"), "employeeStatus", "100")); // for (SalaryItemPO salaryItem : salaryItems) { // columns.add(new WeaTableColumn(salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, "150")); // } // weaTable.setColumns(columns); // // List operates = weaTable.getOperates(); // operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90821, "查看"), 0)); // // weaTable.setOperatesPermission(getDefaultOperatesPermission(operates.size(), size)); // weaTable.setCheckBoxPermission(getDefaultCheckBoxPermission(size)); // // weaTable.setTableType(WeaTableTypeEnum.CHECKBOX); // } // // private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { // List> permissionList = Lists.newArrayList(); // for (int i=0; i permissions = Lists.newArrayList(); // for (int j=0; j getDefaultCheckBoxPermission(int recordSize) { // List permissionList = Lists.newArrayList(); // for (int i=0; i buildSalaryArchiveData(List salaryArchiveTaxAgentList, // List salaryArchiveItemDataList, // LocalDateRange localDateRange, // List allEmployeeIds, // boolean isOnlyTaxAgent) { // // 开始日期 // LocalDate start = localDateRange.getFromDate(); // // 结束日期 // LocalDate end = localDateRange.getEndDate(); // // List list = new ArrayList<>(); // allEmployeeIds.forEach(e->{ // // 同一个人的个税扣缴义务人调整历史数据 // List salaryArchiveTaxAgents = salaryArchiveTaxAgentList.stream().filter(f->f.getEmployeeId().equals(e)).collect(Collectors.toList()); // // 同一个人的薪资项目调整历史数据 // List salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d->d.getEmployeeId().equals(e)).collect(Collectors.toList()); // List salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList()); // // SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO(); // salaryArchiveData.setEmployeeId(e); // List taxAgents = new ArrayList<>(); // // 按个税扣缴义务人生效日期时间段切割 // LocalDate endTemp = end; // for (SalaryArchiveTaxAgentPO salaryArchiveTaxAgent : salaryArchiveTaxAgents) { // Date fromDate = salaryArchiveTaxAgent.getEffectiveTime(); // if (fromDate.isAfter(endTemp) || !endTemp.isAfter(start)) { // continue; // } // SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO(); // taxAgent.setTaxAgentId(salaryArchiveTaxAgent.getTaxAgentId()); // taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.isBefore(start)?start:fromDate)).endDate(endTemp).build()); // // // 薪资项目数据按个税扣缴义务人切割 // if (!isOnlyTaxAgent) { // // 开始日期 // LocalDate startItem = taxAgent.getEffectiveDateRange().getFromDate(); // // 结束日期 // LocalDate endItem = taxAgent.getEffectiveDateRange().getEndDate(); // LocalDate endTempItem = endItem; // List salaryItemValues = new ArrayList<>(); // // for (Long salaryArchiveItemId : salaryArchiveItemIds) { // for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) { // if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId())) { // continue; // } // LocalDate fromDateItem = salaryArchiveItem.getEffectiveTime(); // if (fromDateItem.isAfter(endTempItem) || !endTempItem.isAfter(startItem)) { // continue; // } // SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); // salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.isBefore(startItem)?startItem:fromDateItem)).endDate(endTempItem).build()); // salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId()); // salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue()); // salaryItemValues.add(salaryArchiveItemData); // endTempItem = fromDateItem; // } // endTempItem = endItem; // } // // taxAgent.setSalaryItemValues(salaryItemValues); // } // // taxAgents.add(taxAgent); // endTemp = fromDate; // } // salaryArchiveData.setTaxAgents(taxAgents); // list.add(salaryArchiveData); // }); // // return list; // } }