报表快照搜索
This commit is contained in:
parent
93d2980ad8
commit
b4050e4ee8
|
|
@ -54,6 +54,8 @@ import weaver.wechat.util.Utils;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE;
|
||||
|
||||
/**
|
||||
* 薪酬统计报表
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
|
|
@ -71,6 +73,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
public static final String LAST_INFO = "lastInfoList";
|
||||
public static final String SAME_INFO = "sameInfoList";
|
||||
|
||||
private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE));
|
||||
|
||||
private SalaryStatisticsReportMapper getSalaryStatisticsReportMapper() {
|
||||
return MapperProxyFactory.getProxy(SalaryStatisticsReportMapper.class);
|
||||
|
|
@ -197,16 +200,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
this.getSalaryStatisticsReportMapper().updateIgnoreNull(poNew);
|
||||
|
||||
// 记录日志
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(poNew.getId()));
|
||||
loggerContext.setTargetName(poNew.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "更新报表"));
|
||||
loggerContext.setOldValues(po);
|
||||
loggerContext.setNewValues(poNew);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(poNew.getId()));
|
||||
loggerContext.setTargetName(poNew.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表"));
|
||||
loggerContext.setOldValues(po);
|
||||
loggerContext.setNewValues(poNew);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
} else {
|
||||
List<SalaryStatisticsReportPO> list = listByName(saveParam.getReportName());
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
|
|
@ -217,15 +220,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
getSalaryStatisticsReportMapper().insertIgnoreNull(poNew);
|
||||
|
||||
// 记录日志
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(poNew.getId()));
|
||||
loggerContext.setTargetName(poNew.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表"));
|
||||
loggerContext.setNewValues(poNew);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(poNew.getId()));
|
||||
loggerContext.setTargetName(poNew.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表"));
|
||||
loggerContext.setNewValues(poNew);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
}
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
|
@ -305,16 +308,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
getSalaryStatisticsItemService(user).saveOrUpdateBatch(salaryStatisticsItemList);
|
||||
|
||||
//记录日志
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(po.getId()));
|
||||
loggerContext.setTargetName(po.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表"));
|
||||
loggerContext.setOldValues(oldPO);
|
||||
loggerContext.setNewValues(po);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(po.getId()));
|
||||
loggerContext.setTargetName(po.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表"));
|
||||
loggerContext.setOldValues(oldPO);
|
||||
loggerContext.setNewValues(po);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
|
|
@ -333,17 +336,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
getSalaryStatisticsReportMapper().deleteByIds(deleteIds);
|
||||
//删除薪资项
|
||||
getSalaryStatisticsItemService(user).deleteByReportIds(deleteIds);
|
||||
list.forEach(e -> {
|
||||
// 记录日志
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(e.getId()));
|
||||
loggerContext.setTargetName(e.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "删除报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "删除报表") + e.getReportName());
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
});
|
||||
list.forEach(e -> {
|
||||
// 记录日志
|
||||
LoggerContext<SalaryStatisticsReportPO> loggerContext = new LoggerContext<>();
|
||||
loggerContext.setUser(user);
|
||||
loggerContext.setTargetId(String.valueOf(e.getId()));
|
||||
loggerContext.setTargetName(e.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除报表") + e.getReportName());
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
});
|
||||
}
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>(2);
|
||||
|
|
@ -396,8 +399,8 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
loggerContext.setTargetId(String.valueOf(po.getId()));
|
||||
loggerContext.setTargetName(po.getReportName());
|
||||
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表"));
|
||||
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表"));
|
||||
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表"));
|
||||
loggerContext.setNewValues(po);
|
||||
SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext);
|
||||
}
|
||||
|
|
@ -479,7 +482,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
List<SalaryAcctEmployeePO> salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(queryParam);
|
||||
|
||||
// 设置dimensionValue为维度值
|
||||
SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder().list(salaryAcctEmployeeList).lastList(Collections.emptyList()).sameList(Collections.emptyList()).salaryStatisticsItemList(salaryStatisticsItemPOS).employeeId((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).dimensionValue(param.getDimensionValue()).build();
|
||||
SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder()
|
||||
.list(salaryAcctEmployeeList)
|
||||
.lastList(Collections.emptyList())
|
||||
.sameList(Collections.emptyList())
|
||||
.salaryStatisticsItemList(salaryStatisticsItemPOS)
|
||||
.employeeId((long) user.getUID())
|
||||
.dimensionValue(param.getDimensionValue())
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
|
||||
Map<Long, Map<String, String>> resultMap = new HashMap<>();
|
||||
List<Long> salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
|
||||
|
|
@ -848,44 +859,78 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
Map<Long, Long> lastEmpIdDepartIdMap = new HashMap<>();
|
||||
Map<Long, Long> sameEmpIdDepartIdMap = new HashMap<>();
|
||||
Map<Long, String> departIdNameMap = new HashMap<>();
|
||||
simpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName());
|
||||
departIds.add(employee.getDepartmentId());
|
||||
empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
lastSimpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
sameSimpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
if (isRealOrg) {
|
||||
simpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName());
|
||||
departIds.add(employee.getDepartmentId());
|
||||
empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
lastSimpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
sameSimpleEmployeeList.forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
data.getList().forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName());
|
||||
departIds.add(employee.getDepartmentId());
|
||||
empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
data.getLastList().forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
data.getSameList().forEach(employee -> {
|
||||
if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) {
|
||||
sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
String dimensionValue = data.getDimensionValue();
|
||||
departIds.forEach(departId -> {
|
||||
if (dimensionValue == null) {
|
||||
List<SalaryAcctEmployeePO> departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
}
|
||||
Map<String, Object> temp = new HashMap<>();
|
||||
temp.put(DM, departIdNameMap.get(departId));
|
||||
temp.putAll(SalaryStatisticsReportBO.calculateItem(departEmployeePOS, lastDepartEmployeePOS, sameDepartEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList()));
|
||||
records.add(temp);
|
||||
} else if (StringUtils.equals(dimensionValue, departIdNameMap.get(departId))) {
|
||||
List<SalaryAcctEmployeePO> departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList());
|
||||
}
|
||||
data.setListByDimensionValue(departEmployeePOS);
|
||||
}
|
||||
});
|
||||
|
||||
if (dimensionValue == null) {
|
||||
List<SalaryAcctEmployeePO> noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> lastNoGroupingList = data.getLastList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> sameNoGroupingList = data.getSameList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(noGroupingList)) {
|
||||
Map<String, Object> noGrouping = new HashMap<>();
|
||||
noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "无分组"));
|
||||
|
|
@ -893,7 +938,10 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
|
|||
records.add(noGrouping);
|
||||
}
|
||||
} else if (StringUtils.equals(dimensionValue, "无分组")) {
|
||||
List<SalaryAcctEmployeePO> noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
List<SalaryAcctEmployeePO> noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList());
|
||||
if(isRealOrg){
|
||||
noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList());
|
||||
}
|
||||
data.setListByDimensionValue(noGroupingList);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service {
|
|||
if (empDimensionOptional.isPresent()) {
|
||||
empDimensionId = empDimensionOptional.get();
|
||||
}
|
||||
if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) {
|
||||
//报表中缓存的条件
|
||||
salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id));
|
||||
if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) {
|
||||
Map<String, Object> result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
|
||||
if (param.getDimensionId().equals(empDimensionId)) {
|
||||
// 人员维度需要分页
|
||||
Map<String, Object> finalResultMap = new HashMap<>();
|
||||
PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>) result.get("pageInfo");
|
||||
PageInfo<Map<String, Object>> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
|
||||
finalPageInfo.setTotal(pageInfo.getList().size());
|
||||
finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList()));
|
||||
finalResultMap.put("pageInfo", finalPageInfo);
|
||||
finalResultMap.put("columns", result.get("columns"));
|
||||
finalResultMap.put("countResult", result.get("countResult"));
|
||||
finalResultMap.put("reportId", id);
|
||||
return finalResultMap;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) {
|
||||
// //报表中缓存的条件
|
||||
// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id));
|
||||
// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) {
|
||||
// Map<String, Object> result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
|
||||
// if (param.getDimensionId().equals(empDimensionId)) {
|
||||
// // 人员维度需要分页
|
||||
// Map<String, Object> finalResultMap = new HashMap<>();
|
||||
// PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>) result.get("pageInfo");
|
||||
// PageInfo<Map<String, Object>> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
|
||||
// finalPageInfo.setTotal(pageInfo.getList().size());
|
||||
// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList()));
|
||||
// finalResultMap.put("pageInfo", finalPageInfo);
|
||||
// finalResultMap.put("columns", result.get("columns"));
|
||||
// finalResultMap.put("countResult", result.get("countResult"));
|
||||
// finalResultMap.put("reportId", id);
|
||||
// return finalResultMap;
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// 列表data
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ import weaver.hrm.User;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE;
|
||||
|
||||
/**
|
||||
* 薪资核算人员
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
|
|
@ -102,6 +104,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryCacheService getSalaryCacheService(User user) {
|
||||
return ServiceUtil.getService(SalaryCacheServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE));
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctEmployeeCountDTO> countBySalaryAcctRecordId(Collection<Long> salaryAcctRecordIds) {
|
||||
|
|
@ -656,11 +663,6 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
lambdaQueryChainWrapper.setSalaryMonths(yearMonths);
|
||||
}
|
||||
|
||||
// 收入所得项目
|
||||
// if (CollectionUtils.isNotEmpty(param.getIncomeCategory())) {
|
||||
// lambdaQueryChainWrapper.in(SalaryAcctEmployeePO::getIncomeCategory, param.getIncomeCategory().stream().map(Object::toString).collect(Collectors.toList()));
|
||||
// }
|
||||
|
||||
//排除未归档数据
|
||||
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listAll();
|
||||
List<Long> salaryAcctRecordIds = salaryAcctRecordPOS.stream()
|
||||
|
|
@ -690,70 +692,47 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
// 获取分部信息
|
||||
List<Long> subCompanyIds = param.getSubCompany();
|
||||
if (CollectionUtils.isNotEmpty(subCompanyIds)) {
|
||||
// SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||
// List<String> allSubcompanyIds = new ArrayList<>();
|
||||
// for (Long subCompanyId : subCompanyIds) {
|
||||
// String organizationIds = Util.null2String(subCompanyId);
|
||||
// String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds);
|
||||
// allSubcompanyIds.addAll(Arrays.asList(allChildSubcompanyId.split(",")));
|
||||
// }
|
||||
employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList());
|
||||
} else {
|
||||
list.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyId())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
// 部门过滤
|
||||
List<Long> depart = param.getDepart();
|
||||
if (CollectionUtils.isNotEmpty(depart)) {
|
||||
// List<String> allDepartIds = new ArrayList<>();
|
||||
// for (Long subDepartId : depart) {
|
||||
// String ids = Util.null2String(subDepartId);
|
||||
// try {
|
||||
// String allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids);
|
||||
// allDepartIds.addAll(Arrays.asList(allDepartId.toString().split(",")));
|
||||
// } catch (Exception e) {
|
||||
// log.error("获取子部门失败", e);
|
||||
// }
|
||||
// }
|
||||
employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList());
|
||||
} else {
|
||||
list = list.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
// 职级过滤
|
||||
// if (CollectionUtils.isNotEmpty(param.getGrade())) {
|
||||
// Set<Long> employeeIdsByGradeFilter = new HashSet<>();
|
||||
// simpleEmployeeList.forEach(simpleEmployee -> {
|
||||
// if (simpleEmployee.getGrade() != null && param.getGrade().contains(simpleEmployee.getGrade().getId())) {
|
||||
// employeeIdsByGradeFilter.add(simpleEmployee.getEmployeeId());
|
||||
// }
|
||||
// });
|
||||
// if (CollectionUtils.isEmpty(employeeIdsByGradeFilter)) {
|
||||
// return Lists.newArrayList();
|
||||
// }
|
||||
// list = list.stream().filter(po -> employeeIdsByGradeFilter.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
// }
|
||||
// 岗位过滤
|
||||
List<Long> position = param.getPosition();
|
||||
if (CollectionUtils.isNotEmpty(position)) {
|
||||
// Set<Long> employeeIdsByPostionFilter = new HashSet<>();
|
||||
// simpleEmployeeList.forEach(simpleEmployee -> {
|
||||
// if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) {
|
||||
// employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId());
|
||||
// }
|
||||
// });
|
||||
// if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) {
|
||||
// return Lists.newArrayList();
|
||||
// }
|
||||
employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList());
|
||||
if (isRealOrg) {
|
||||
employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList());
|
||||
} else {
|
||||
list = list.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
// 人事状态过滤
|
||||
if (CollectionUtils.isNotEmpty(param.getStatus())) {
|
||||
Set<Long> employeeIdsByStatus = new HashSet<>();
|
||||
employeeList.forEach(simpleEmployee -> {
|
||||
if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) {
|
||||
employeeIdsByStatus.add(simpleEmployee.getEmployeeId());
|
||||
if (isRealOrg) {
|
||||
Set<Long> employeeIdsByStatus = new HashSet<>();
|
||||
employeeList.forEach(simpleEmployee -> {
|
||||
if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) {
|
||||
employeeIdsByStatus.add(simpleEmployee.getEmployeeId());
|
||||
}
|
||||
});
|
||||
if (CollectionUtils.isEmpty(employeeIdsByStatus)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
});
|
||||
if (CollectionUtils.isEmpty(employeeIdsByStatus)) {
|
||||
return Lists.newArrayList();
|
||||
list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
} else {
|
||||
list = list.stream().filter(po -> po.getStatus() != null && param.getStatus().contains(po.getStatus())).collect(Collectors.toList());
|
||||
}
|
||||
list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
}
|
||||
// 入职日期
|
||||
if (CollectionUtils.isNotEmpty(param.getHiredate())) {
|
||||
|
|
@ -769,27 +748,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
}
|
||||
list = list.stream().filter(po -> employeeIdsByHiredate.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
}
|
||||
// // 离职日期 todo
|
||||
// if (CollectionUtils.isNotEmpty(param.getLeavedate())) {
|
||||
// Set<Long> employeeIdsByLeavedate = new HashSet<>();
|
||||
// simpleEmployeeList.forEach(simpleEmployee -> {
|
||||
//
|
||||
// if (simpleEmployee.get() != null && ) {
|
||||
// employeeIdsByLeavedate.add(simpleEmployee.getEmployeeId());
|
||||
// }
|
||||
// });
|
||||
// if (CollectionUtils.isEmpty(employeeIdsByLeavedate)) {
|
||||
// return Lists.newArrayList();
|
||||
// }
|
||||
// list = list.stream().filter(po -> employeeIdsByLeavedate.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
// }
|
||||
// 人员
|
||||
if (CollectionUtils.isNotEmpty(param.getEmployee())) {
|
||||
list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Set<Long> empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId);
|
||||
list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
if(isRealOrg){
|
||||
Set<Long> empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId);
|
||||
list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,4 +145,15 @@ public class SalarySysConstant {
|
|||
* 我的薪资福利工资单个税扣缴义务人显示状态
|
||||
*/
|
||||
public static final String TAX_AGENT_SHOW_STATUS = "taxAgentShowStatus";
|
||||
|
||||
|
||||
/**
|
||||
* 报表是否开启缓存,0:关闭 1:开启
|
||||
*/
|
||||
public static final String REPORT_CACHE = "REPORT_CACHE";
|
||||
|
||||
/**
|
||||
* 报表组织类型,null/0 :核算快照信息 1:实时组织信息
|
||||
*/
|
||||
public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE";
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue