Merge branch 'release/3.0.0.2311.01' into release/个税版本

This commit is contained in:
钱涛 2023-10-30 10:34:33 +08:00
commit 49f949b673
4 changed files with 23 additions and 17 deletions

View File

@ -827,10 +827,17 @@ public class SalaryStatisticsReportBO {
* @param salaryStatisticsItemList * @param salaryStatisticsItemList
* @return * @return
*/ */
public static List<WeaTableColumnGroup> buildReportColumns(String dimensionName, List<SalaryStatisticsItemPO> salaryStatisticsItemList) { public static List<WeaTableColumnGroup> buildReportColumns(SalaryStatisticsDimensionPO dimensionName, List<SalaryStatisticsItemPO> salaryStatisticsItemList) {
List<WeaTableColumnGroup> result = new ArrayList<>(); List<WeaTableColumnGroup> result = new ArrayList<>();
result.add(new WeaTableColumnGroup("150", dimensionName, "dimension")); result.add(new WeaTableColumnGroup("150", dimensionName.getDimName(), "dimension"));
//人员维度新增部门和工号
if (SalaryStatisticsDimensionConstant.DM_EMPLOYEE.equals(dimensionName.getDimCode())) {
result.add(new WeaTableColumnGroup("150", "部门", "departmentName"));
result.add(new WeaTableColumnGroup("150", "工号", "workcode"));
}
Map<Long, SalaryStatisticsItemPO> itemMap = salaryStatisticsItemList.stream().collect(Collectors.toMap(SalaryStatisticsItemPO::getId, Function.identity())); Map<Long, SalaryStatisticsItemPO> itemMap = salaryStatisticsItemList.stream().collect(Collectors.toMap(SalaryStatisticsItemPO::getId, Function.identity()));
Map<Long, String> itemIdNameMap = salaryStatisticsItemList.stream().collect(LinkedHashMap::new, (map, item) -> map.put(item.getId(), item.getItemName()), LinkedHashMap::putAll); Map<Long, String> itemIdNameMap = salaryStatisticsItemList.stream().collect(LinkedHashMap::new, (map, item) -> map.put(item.getId(), item.getItemName()), LinkedHashMap::putAll);
itemIdNameMap.forEach((k, v) -> { itemIdNameMap.forEach((k, v) -> {

View File

@ -1014,7 +1014,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
Map<Long, List<SalaryAcctEmployeePO>> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); Map<Long, List<SalaryAcctEmployeePO>> employeeListMap = accountDetailPOList.stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId));
Map<Long, List<SalaryAcctEmployeePO>> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); Map<Long, List<SalaryAcctEmployeePO>> lastEmployeeListMap = data.getLastList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId));
Map<Long, List<SalaryAcctEmployeePO>> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId)); Map<Long, List<SalaryAcctEmployeePO>> sameEmployeeListMap = data.getSameList().stream().collect(Collectors.groupingBy(SalaryAcctEmployeePO::getEmployeeId));
Map<Long, String> employeeByIdMap = getSalaryEmployeeService(user).getEmployeeByIds(accountDetailPOList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList())).stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, o -> Util.null2String(o.getUsername()))); Map<Long, DataCollectionEmployee> employeeByIdMap = getSalaryEmployeeService(user).getEmployeeByIdsAll(accountDetailPOList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList())).stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, o -> o));
// List<ExtEmployeePO> extEmployees = extEmployeeService.listByIdsWithDeleted(accountDetailPOList.stream().filter(e -> EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(e.getEmployeeType())).map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()), data.getTenantKey()); // List<ExtEmployeePO> extEmployees = extEmployeeService.listByIdsWithDeleted(accountDetailPOList.stream().filter(e -> EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(e.getEmployeeType())).map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()), data.getTenantKey());
// Map<Long, String> employeeExtByIdMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmployeePO::getId, ExtEmployeePO::getUsername); // Map<Long, String> employeeExtByIdMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmployeePO::getId, ExtEmployeePO::getUsername);
@ -1024,10 +1024,12 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
if (dimensionValue == null) { if (dimensionValue == null) {
Map<String, Object> temp = new HashMap<>(); Map<String, Object> temp = new HashMap<>();
// temp.put(DM, Objects.nonNull(employeeByIdMap.get(k)) ? employeeByIdMap.get(k) : employeeExtByIdMap.get(k)); // temp.put(DM, Objects.nonNull(employeeByIdMap.get(k)) ? employeeByIdMap.get(k) : employeeExtByIdMap.get(k));
temp.put(DM, employeeByIdMap.get(k)); temp.put(DM, employeeByIdMap.get(k).getUsername());
temp.put("departmentName", employeeByIdMap.get(k).getDepartmentName());
temp.put("workcode", employeeByIdMap.get(k).getWorkcode());
temp.putAll(SalaryStatisticsReportBO.calculateItem(v, lastEmployeeListMap.get(k), sameEmployeeListMap.get(k), salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); temp.putAll(SalaryStatisticsReportBO.calculateItem(v, lastEmployeeListMap.get(k), sameEmployeeListMap.get(k), salaryAcctResultValueMap, data.getSalaryStatisticsItemList()));
records.add(temp); records.add(temp);
} else if (StringUtils.equals(dimensionValue, employeeByIdMap.get(k))) { } else if (StringUtils.equals(dimensionValue, employeeByIdMap.get(k).getUsername())) {
data.setListByDimensionValue(v); data.setListByDimensionValue(v);
} }
}); });

View File

@ -321,7 +321,7 @@ public class SalaryStatisticsReportWrapper extends Service {
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, (long) user.getUID()); Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList, (long) user.getUID());
// 列表columns // 列表columns
List<WeaTableColumnGroup> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList); List<WeaTableColumnGroup> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension, salaryStatisticsItemList);
Map<String, Object> resultMap = Maps.newHashMap(); Map<String, Object> resultMap = Maps.newHashMap();
resultMap.putAll(JsonUtil.parseMap(weaTable, Object.class)); resultMap.putAll(JsonUtil.parseMap(weaTable, Object.class));
@ -377,7 +377,7 @@ public class SalaryStatisticsReportWrapper extends Service {
List<Map<String, String>> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList()); List<Map<String, String>> records = list.stream().map(m -> m.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() + StringUtils.EMPTY))).collect(Collectors.toList());
// 获取列头 // 获取列头
List<WeaTableColumnGroup> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension.getDimName(), salaryStatisticsItemList); List<WeaTableColumnGroup> weaTableColumns = SalaryStatisticsReportBO.buildReportColumns(dimension, salaryStatisticsItemList);
// 组装导出参数 // 组装导出参数
// ExportCommonParam exportParam = SalaryStatisticsReportBO.buildExportParam(dimension.getDimName(), weaTableColumns, records); // ExportCommonParam exportParam = SalaryStatisticsReportBO.buildExportParam(dimension.getDimName(), weaTableColumns, records);

View File

@ -624,32 +624,29 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
List<Long> subCompanyIds = param.getSubCompany(); List<Long> subCompanyIds = param.getSubCompany();
if (CollectionUtils.isNotEmpty(subCompanyIds)) { if (CollectionUtils.isNotEmpty(subCompanyIds)) {
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
StringBuilder allSubcompanyIds = new StringBuilder(); List<String> allSubcompanyIds = new ArrayList<>();
for (Long subCompanyId : subCompanyIds) { for (Long subCompanyId : subCompanyIds) {
String organizationIds = Util.null2String(subCompanyId); String organizationIds = Util.null2String(subCompanyId);
String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds); String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds);
allSubcompanyIds.append(allChildSubcompanyId); allSubcompanyIds.addAll(Arrays.asList(allChildSubcompanyId.split(",")));
} }
List<String> finalAllSubcompanyIds = Arrays.asList(allSubcompanyIds.toString().split(",")); employeeList = employeeList.stream().filter(emp -> allSubcompanyIds.contains(emp.getSubcompanyid().toString())).collect(Collectors.toList());
employeeList = employeeList.stream().filter(emp -> finalAllSubcompanyIds.contains(emp.getSubcompanyid().toString())).collect(Collectors.toList());
} }
// 部门过滤 // 部门过滤
List<Long> depart = param.getDepart(); List<Long> depart = param.getDepart();
if (CollectionUtils.isNotEmpty(depart)) { if (CollectionUtils.isNotEmpty(depart)) {
StringBuilder allDepartIds = new StringBuilder(); List<String> allDepartIds = new ArrayList<>();
for (Long subDepartId : depart) { for (Long subDepartId : depart) {
String ids = Util.null2String(subDepartId); String ids = Util.null2String(subDepartId);
String allDepartId = "";
try { try {
allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids); String allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids);
allDepartIds.addAll(Arrays.asList(allDepartId.toString().split(",")));
} catch (Exception e) { } catch (Exception e) {
log.error("获取子部门失败", e); log.error("获取子部门失败", e);
} }
allDepartIds.append(allDepartId);
} }
List<String> finalAllDepartIds = Arrays.asList(allDepartIds.toString().split(",")); employeeList = employeeList.stream().filter(emp -> allDepartIds.contains(emp.getDepartmentId().toString())).collect(Collectors.toList());
employeeList = employeeList.stream().filter(emp -> finalAllDepartIds.contains(emp.getDepartmentId().toString())).collect(Collectors.toList());
} }
// 职级过滤 // 职级过滤
// if (CollectionUtils.isNotEmpty(param.getGrade())) { // if (CollectionUtils.isNotEmpty(param.getGrade())) {