艾志二开优化

This commit is contained in:
Harryxzy 2025-04-11 13:57:08 +08:00
parent 2c5e4a9d34
commit fe9fb5c07c
8 changed files with 277 additions and 4 deletions

View File

@ -71,6 +71,17 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam {
private Set<Date> salaryMonths;
// 艾志提交状态
private String submitStatus;
// 艾志审批状态
private String approveStatus;
// 艾志合同签署类型编号
private List<String> htqslxList;
// 艾志人事代理公司编号
private List<String> rsdlgsList;
private Collection<Long> salaryAcctRecordIds;
private Collection<Long> salarySobIds;

View File

@ -34,6 +34,8 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
//人员姓名
private String employeeName;
private List<Long> employeeIds;
//个税扣缴义务人
private Long taxAgentId;
@ -73,6 +75,18 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
//其他条件
private List<OtherCondition> otherConditions;
// 艾志提交状态
private String submitStatus;
// 艾志审批状态
private String approveStatus;
// 艾志合同签署类型编号
private List<String> htqslxList;
// 艾志人事代理公司编号
private List<String> rsdlgsList;
@Data
@NoArgsConstructor

View File

@ -71,7 +71,7 @@ public interface SalaryAcctResultService {
* @param queryParam 列表查询条件
* @return
*/
PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam);
PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam, Map<String, Object> pageSumMap);
/**
* 合计行

View File

@ -15,6 +15,7 @@ import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO;
import com.engine.salary.entity.salaryacct.param.*;
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
@ -45,7 +46,10 @@ import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.BeanUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.hrm.company.DepartmentComInfo;
@ -223,6 +227,25 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
// 分页参数
// 查询薪资核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeMapper().listPage(queryParam);
if (StringUtils.isNotBlank(queryParam.getSubmitStatus())) {
if (queryParam.getSubmitStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_SUBMITTED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzSubmittedStatus()) || po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzSubmittedStatus()) && po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
}
}
if (StringUtils.isNotBlank(queryParam.getApproveStatus())) {
if (queryParam.getApproveStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_APPROVED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzApprovalStatus()) || po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzApprovalStatus()) && po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
}
}
//艾志二开增加当前登录人拥有的的部门查看权限包含的人员档案列表
List<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents(Long.valueOf(user.getUID())).stream().map(TaxAgentPO::getId).collect(Collectors.toList());
@ -250,6 +273,32 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
}
salaryAcctEmployeePOS = needAuthPage;
BaseBean baseBean = new BaseBean();
// 艾志 合同签署类型
if (CollectionUtils.isNotEmpty(queryParam.getHtqslxList())) {
Long htqslxItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "htqslx_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "htqslx_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(htqslxItemId));
List<Long> acctEmpId = list.stream().filter(result -> queryParam.getHtqslxList().contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
// 艾志 人事代理公司
if (CollectionUtils.isNotEmpty(queryParam.getRsdlgsList())) {
// 获取人事代理公司编号对应的名称
String sql = "select rsdlgs from uf_rsdlgs where bh in("+ StringUtils.join(queryParam.getRsdlgsList(), ",") + ")";
RecordSet rs = new RecordSet();
rs.execute(sql);
ArrayList<String> rsdlgsNames = new ArrayList<>();
while (rs.next()) {
rsdlgsNames.add(rs.getString(1));
}
Long rsdlgsItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "rsdlgs_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "rsdlgs_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(rsdlgsItemId));
List<Long> acctEmpId = list.stream().filter(result -> rsdlgsNames.contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
salaryAcctEmployeePOS, SalaryAcctEmployeePO.class);
}
@ -297,6 +346,51 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
salaryAcctEmployeePOS = listByParam(salaryAcctEmployeeQueryParam);
}
if (StringUtils.isNotBlank(queryParam.getSubmitStatus())) {
if (queryParam.getSubmitStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_SUBMITTED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzSubmittedStatus()) || po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzSubmittedStatus()) && po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
}
}
if (StringUtils.isNotBlank(queryParam.getApproveStatus())) {
if (queryParam.getApproveStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_APPROVED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzApprovalStatus()) || po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzApprovalStatus()) && po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
}
}
BaseBean baseBean = new BaseBean();
// 艾志 合同签署类型
if (CollectionUtils.isNotEmpty(queryParam.getHtqslxList())) {
Long htqslxItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "htqslx_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "htqslx_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(htqslxItemId));
List<Long> acctEmpId = list.stream().filter(result -> queryParam.getHtqslxList().contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
// 艾志 人事代理公司
if (CollectionUtils.isNotEmpty(queryParam.getRsdlgsList())) {
// 获取人事代理公司编号对应的名称
String sql = "select rsdlgs from uf_rsdlgs where bh in("+ StringUtils.join(queryParam.getRsdlgsList(), ",") + ")";
RecordSet rs = new RecordSet();
rs.execute(sql);
ArrayList<String> rsdlgsNames = new ArrayList<>();
while (rs.next()) {
rsdlgsNames.add(rs.getString(1));
}
Long rsdlgsItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "rsdlgs_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "rsdlgs_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(rsdlgsItemId));
List<Long> acctEmpId = list.stream().filter(result -> rsdlgsNames.contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
//艾志二开增加当前登录人拥有的的部门查看权限包含的人员档案列表
List<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents(Long.valueOf(user.getUID())).stream().map(TaxAgentPO::getId).collect(Collectors.toList());
List<SalaryAcctEmployeePO> needAuthPage = salaryAcctEmployeePOS.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList());
@ -481,6 +575,25 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
salaryAcctEmployeePOS = getSalaryAcctEmployeeMapper().listPage4ConsolidatedTax(otherSalaryAcctRecordIds, queryParam);
}
if (StringUtils.isNotBlank(queryParam.getSubmitStatus())) {
if (queryParam.getSubmitStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_SUBMITTED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzSubmittedStatus()) || po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzSubmittedStatus()) && po.getAzSubmittedStatus().equals(queryParam.getSubmitStatus())).collect(Collectors.toList());
}
}
if (StringUtils.isNotBlank(queryParam.getApproveStatus())) {
if (queryParam.getApproveStatus().equals(AZSalaryAcctEmployeeStatusEnum.NOT_APPROVED.getValue())) {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isBlank(po.getAzApprovalStatus()) || po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
} else {
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream()
.filter(po -> StringUtils.isNotBlank(po.getAzApprovalStatus()) && po.getAzApprovalStatus().equals(queryParam.getApproveStatus())).collect(Collectors.toList());
}
}
//艾志二开增加当前登录人拥有的的部门查看权限包含的人员档案列表
List<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents(Long.valueOf(user.getUID())).stream().map(TaxAgentPO::getId).collect(Collectors.toList());
List<SalaryAcctEmployeePO> needAuthPage = salaryAcctEmployeePOS.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList());
@ -507,6 +620,32 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
}
salaryAcctEmployeePOS = needAuthPage;
BaseBean baseBean = new BaseBean();
// 艾志 合同签署类型
if (CollectionUtils.isNotEmpty(queryParam.getHtqslxList())) {
Long htqslxItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "htqslx_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "htqslx_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(htqslxItemId));
List<Long> acctEmpId = list.stream().filter(result -> queryParam.getHtqslxList().contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
// 艾志 人事代理公司
if (CollectionUtils.isNotEmpty(queryParam.getRsdlgsList())) {
// 获取人事代理公司编号对应的名称
String sql = "select rsdlgs from uf_rsdlgs where bh in("+ StringUtils.join(queryParam.getRsdlgsList(), ",") + ")";
RecordSet rs = new RecordSet();
rs.execute(sql);
ArrayList<String> rsdlgsNames = new ArrayList<>();
while (rs.next()) {
rsdlgsNames.add(rs.getString(1));
}
Long rsdlgsItemId = NumberUtils.isCreatable(baseBean.getPropValue("azgySalary", "rsdlgs_item_id"))
? Long.valueOf(baseBean.getPropValue("azgySalary", "rsdlgs_item_id")) : 0L;
List<SalaryAcctResultPO> list = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(rsdlgsItemId));
List<Long> acctEmpId = list.stream().filter(result -> rsdlgsNames.contains(result.getResultValue())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(acctEmp -> acctEmpId.contains(acctEmp.getId())).collect(Collectors.toList());
}
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
salaryAcctEmployeePOS, SalaryAcctEmployeePO.class);
}
@ -1028,6 +1167,28 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList) || param.getAcctEmpIds().size() != salaryAcctEmployeePOList.size()) {
throw new SalaryRunTimeException("提交失败,核算人员信息不存在或已被删除,请刷新后重试");
}
// 校验提交权限
// 艾志 - 提交操作权限
List<Long> submitAuthList = getSalaryEmployeeService(user).listDepIdByEmpIdAndOpe(Long.valueOf(user.getUID()), 0);
if (CollectionUtils.isEmpty(submitAuthList)) {
throw new SalaryRunTimeException("提交失败,当前登录账号无提交权限,请联系管理员");
}
//查询登录人拥有查看权限的部门
List<String> depWithChildList = new ArrayList<>();
for (Long depId : submitAuthList) {
try {
String depStr = DepartmentComInfo.getAllChildDepartId(depId.toString(), depId.toString());
depWithChildList.addAll(Arrays.stream(depStr.split(",")).collect(Collectors.toList()));
} catch (Exception e) {
e.printStackTrace();
}
}
Optional<SalaryAcctEmployeePO> first = salaryAcctEmployeePOList.stream().filter(acctEmp -> !depWithChildList.contains(acctEmp.getDepartmentId().toString())).findFirst();
if (first.isPresent()) {
throw new SalaryRunTimeException("提交失败,当前登录账号无提交该部门员工薪资权限,请联系管理员");
}
List<Long> needSubmitAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(needSubmitAcctEmpIds)) {
@ -1036,6 +1197,29 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
}
}
private boolean checkConfirmAuth(List<SalaryAcctEmployeePO> salaryAcctEmployeePOList) {
// 校验提交权限
// 艾志 - 提交操作权限
List<Long> submitAuthList = getSalaryEmployeeService(user).listDepIdByEmpIdAndOpe(Long.valueOf(user.getUID()), 1);
if (CollectionUtils.isEmpty(submitAuthList)) {
throw new SalaryRunTimeException("提交失败,当前登录账号无提交权限,请联系管理员");
}
//查询登录人拥有查看权限的部门
List<String> depWithChildList = new ArrayList<>();
for (Long depId : submitAuthList) {
try {
String depStr = DepartmentComInfo.getAllChildDepartId(depId.toString(), depId.toString());
depWithChildList.addAll(Arrays.stream(depStr.split(",")).collect(Collectors.toList()));
} catch (Exception e) {
e.printStackTrace();
}
}
Optional<SalaryAcctEmployeePO> first = salaryAcctEmployeePOList.stream().filter(acctEmp -> !depWithChildList.contains(acctEmp.getDepartmentId().toString())).findFirst();
return !first.isPresent();
}
@Override
public void azReturn(SalaryAcctEmpAzApprovalStatusParam param) {
if (CollectionUtils.isEmpty(param.getAcctEmpIds())) {
@ -1045,6 +1229,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList) || param.getAcctEmpIds().size() != salaryAcctEmployeePOList.size()) {
throw new SalaryRunTimeException("退回失败,核算人员信息不存在或已被删除,请刷新后重试");
}
if (!checkConfirmAuth(salaryAcctEmployeePOList)) {
throw new SalaryRunTimeException("退回失败,当前登录账号无退回该部门员工薪资权限,请联系管理员");
}
List<Long> canNotReturnEmployeeIds = salaryAcctEmployeePOList.stream()
.filter(po -> po.getAzSubmittedStatus() == null || !po.getAzSubmittedStatus().equals(AZSalaryAcctEmployeeStatusEnum.SUBMITTED.getValue()))
.map(SalaryAcctEmployeePO::getEmployeeId)
@ -1083,6 +1272,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList) || param.getAcctEmpIds().size() != salaryAcctEmployeePOList.size()) {
throw new SalaryRunTimeException("审核失败,核算人员信息不存在或已被删除,请刷新后重试");
}
if (!checkConfirmAuth(salaryAcctEmployeePOList)) {
throw new SalaryRunTimeException("审核失败,当前登录账号无审核该部门员工薪资权限,请联系管理员");
}
List<Long> canNotApproveEmployeeIds = salaryAcctEmployeePOList.stream()
.filter(po -> po.getAzSubmittedStatus() == null || !po.getAzSubmittedStatus().equals(AZSalaryAcctEmployeeStatusEnum.SUBMITTED.getValue()))
.map(SalaryAcctEmployeePO::getEmployeeId)
@ -1109,6 +1301,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList) || param.getAcctEmpIds().size() != salaryAcctEmployeePOList.size()) {
throw new SalaryRunTimeException("弃审失败,核算人员信息不存在或已被删除,请刷新后重试");
}
if (!checkConfirmAuth(salaryAcctEmployeePOList)) {
throw new SalaryRunTimeException("弃审失败,当前登录账号弃审核该部门员工薪资权限,请联系管理员");
}
List<Long> canNotReApproveEmployeeIds = salaryAcctEmployeePOList.stream()
.filter(po -> po.getAzApprovalStatus() == null || !po.getAzApprovalStatus().equals(AZSalaryAcctEmployeeStatusEnum.APPROVED.getValue()) )
.map(SalaryAcctEmployeePO::getEmployeeId)

View File

@ -331,7 +331,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
}
@Override
public PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam) {
public PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam, Map<String, Object> pageSumMap) {
PageInfo<SalaryAcctEmployeePO> page = null;
//其他条件
List<SalaryAcctResultQueryParam.OtherCondition> otherConditions = queryParam.getOtherConditions();
@ -360,6 +360,26 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
}
// 查询薪资核算所用薪资账套的薪资项目
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId());
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
Map<Long, SalarySobItemPO> salaryItemIdKeySalarySobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)) {
// 是回算获取回算项
List<SalarySobBackItemPO> salarySobBackItemPOS = getSalarySobBackItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
salaryItemIds.addAll(salarySobBackItemPOS.stream().map(SalarySobBackItemPO::getSalaryItemId).collect(Collectors.toList()));
}
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
List<Long> salaryAcctEmpIds = page.getList().stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
Map<Long, List<SalaryAcctResultPO>> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> {
BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId())).orElse(new ArrayList<>()).stream().map(SalaryAcctResultPO::getResultValue).filter(org.apache.commons.lang3.math.NumberUtils::isCreatable).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
pageSumMap.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap));
});
// 查询薪资核算结果
List<Map<String, Object>> data = listBySalaryAcctEmployees(page.getList(), queryParam);

View File

@ -16,6 +16,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.NotNull;
import weaver.hrm.HrmUserVarify;
@ -960,6 +961,34 @@ public class SalaryAcctController {
if (StringUtils.isNotBlank(subcompanyIds)) {
param.setSubcompanyIds(Arrays.stream(subcompanyIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
String employeeIds = request.getParameter("employeeIds");
if (StringUtils.isNotBlank(employeeIds)) {
List<Long> empIds = Arrays.stream(employeeIds.split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList());
param.setEmployeeIds(empIds);
}
String submitStatus = request.getParameter("submitStatus");
if (StringUtils.isNotBlank(submitStatus)) {
param.setSubmitStatus(submitStatus);
}
String approveStatus = request.getParameter("approveStatus");
if (StringUtils.isNotBlank(approveStatus)) {
param.setApproveStatus(approveStatus);
}
String htqslxListStr = request.getParameter("htqslxList");
if (StringUtils.isNotBlank(htqslxListStr)) {
List<String> htqslxList = Arrays.stream(htqslxListStr.split(",")).collect(Collectors.toList());
param.setHtqslxList(htqslxList);
}
String rsdlgsListStr = request.getParameter("rsdlgsList");
if (StringUtils.isNotBlank(rsdlgsListStr)) {
List<String> rsdlgsList = Arrays.stream(rsdlgsListStr.split(",")).collect(Collectors.toList());
param.setRsdlgsList(rsdlgsList);
}
}

View File

@ -100,7 +100,8 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult
}
// 查询薪资核算结果分页
PageInfo<Map<String, Object>> page = getSalaryAcctResultService(user).listPageByParam(queryParam);
Map<String, Object> pageSumMap = new HashMap<>();
PageInfo<Map<String, Object>> page = getSalaryAcctResultService(user).listPageByParam(queryParam, pageSumMap);
// 构建薪资核算结果列表的表头
List<WeaTableColumnGroup> columns = getSalaryAcctExcelService(user).listWeaTableColumn(salaryAcctRecordPO);
@ -114,6 +115,7 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult
Map<String, Object> datas = new HashMap<>();
datas.put("pageInfo", page);
datas.put("columns", columns);
datas.put("pageSum", pageSumMap);
return datas;
}

View File

@ -112,7 +112,8 @@ public class SalaryApprovalWrapper extends Service {
}
// 查询薪资核算结果分页
PageInfo<Map<String, Object>> page = getSalaryAcctResultService(user).listPageByParam(queryParam);
Map<String, Object> pageSumMap = new HashMap<>();
PageInfo<Map<String, Object>> page = getSalaryAcctResultService(user).listPageByParam(queryParam, pageSumMap);
// 构建薪资核算结果审批列表的表头
List<WeaTableColumnGroup> columns = Lists.newArrayList();
@ -154,6 +155,7 @@ public class SalaryApprovalWrapper extends Service {
Map<String, Object> datas = new HashMap<>();
datas.put("pageInfo", page);
datas.put("columns", columns);
datas.put("pageSum", pageSumMap);
return datas;
}