万君报表需求变更
This commit is contained in:
parent
b2f9e14b07
commit
b4e5eb4342
|
|
@ -73,6 +73,8 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
|
|||
//其他条件
|
||||
private List<OtherCondition> otherConditions;
|
||||
|
||||
private boolean isSum;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|||
import org.springframework.util.StopWatch;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.company.DepartmentComInfo;
|
||||
import weaver.wechat.util.Utils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -1312,10 +1313,40 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
.filter(NumberUtils::isCreatable)
|
||||
.map(Long::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<Long> needSumToFDepDepartmentIds = Arrays.stream(baseBean.getPropValue("wjztkjSalary", "need_sum_to_fdep_department_ids").split(","))
|
||||
.filter(NumberUtils::isCreatable)
|
||||
.map(Long::valueOf)
|
||||
.collect(Collectors.toList());
|
||||
// 获取父节点的下级部门id
|
||||
List<Long> needSumDepIds = new ArrayList<>();
|
||||
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
||||
Map<Long, List<Long>> depRelationMap = new HashMap<>();
|
||||
if(CollectionUtils.isNotEmpty(needSumToFDepDepartmentIds)) {
|
||||
needSumToFDepDepartmentIds.stream().forEach(depId -> {
|
||||
// 获取所有下级部门id
|
||||
try {
|
||||
String allChildDepartId = departmentComInfo.getAllChildDepartId(depId.toString(), depId.toString());
|
||||
if (StringUtils.isNotBlank(allChildDepartId)) {
|
||||
List<Long> subDepIds = Arrays.stream(allChildDepartId.split(","))
|
||||
.filter(NumberUtils::isCreatable)
|
||||
.map(Long::valueOf)
|
||||
.filter(id -> !id.equals(depId))
|
||||
.collect(Collectors.toList());
|
||||
depRelationMap.put(depId, subDepIds);
|
||||
needSumDepIds.addAll(subDepIds);
|
||||
needSumDepIds.add(depId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
salaryAcctEmployeePOList = salaryAcctEmployeePOList.stream()
|
||||
.filter(acctEmp -> acctEmp.getDepartmentName().contains("部")
|
||||
|| needSumToLdbzDepartmentIds.contains(acctEmp.getDepartmentId())
|
||||
|| acctEmp.getDepartmentId().equals(ldbzDepartmentId))
|
||||
|| acctEmp.getDepartmentId().equals(ldbzDepartmentId)
|
||||
|| needSumDepIds.contains(acctEmp.getDepartmentId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList)) {
|
||||
|
|
@ -1341,6 +1372,18 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
|
||||
// 查询薪资核算结果
|
||||
List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, needSumItemIds);
|
||||
if (queryParam.isSum()) {
|
||||
Map<String, Object> sumMap = new HashMap<>();
|
||||
Map<Long, List<SalaryAcctResultPO>> acctResultMap = SalaryEntityUtil.group2Map(acctResultList, SalaryAcctResultPO::getSalaryItemId);
|
||||
needSumItemIds.stream().forEach(item -> {
|
||||
BigDecimal sum = Optional.ofNullable(acctResultMap.get(item)).orElse(new ArrayList<>()).stream().map(SalaryAcctResultPO::getResultValue).filter(NumberUtils::isCreatable).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
sumMap.put(item.toString(), sum.toString());
|
||||
});
|
||||
List<Long> acctEmpIds = acctResultList.stream().map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
|
||||
sumMap.put("empNums", acctEmpIds.size());
|
||||
map.put("sumRow", sumMap);
|
||||
return map;
|
||||
}
|
||||
|
||||
// 查询薪资核算结果
|
||||
List<SalarySobEmpFieldPO> salarySobEmpFields = new ArrayList<>();
|
||||
|
|
@ -1362,6 +1405,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
resultMap.put("departmentName", ldbzDepartmentName);
|
||||
}
|
||||
}
|
||||
for (Map.Entry<Long, List<Long>> entry : depRelationMap.entrySet()) {
|
||||
List<Long> subDepIds = entry.getValue();
|
||||
DeptInfo fartherDepartment = getSalaryEmployeeService(user).getDeptInfoById(entry.getKey());
|
||||
Long fartherDepartmentId = fartherDepartment == null ? 0L : fartherDepartment.getId();
|
||||
String fartherDepartmentName = fartherDepartment == null ? "" : fartherDepartment.getName();
|
||||
for (Map<String, Object> resultMap : acctResultMap) {
|
||||
Long departmentId = NumberUtils.isCreatable(Utils.null2String(resultMap.get("departmentId"))) ? Long.valueOf(Utils.null2String(resultMap.get("departmentId"))) : null;
|
||||
if (departmentId != null && subDepIds.contains(departmentId)) {
|
||||
resultMap.put("departmentId", fartherDepartmentId);
|
||||
resultMap.put("departmentName", fartherDepartmentName);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 根据部门分组
|
||||
Map<String, List<Map<String, Object>>> acctResultGroupMap = SalaryEntityUtil.group2Map(acctResultMap, resultMap -> resultMap.getOrDefault("departmentId", "").toString());
|
||||
LinkedHashMap<String, Map<String, Object>> sumResultByGroup = getSumResultByGroup(acctResultGroupMap, Collections.emptyList(), needSumItemList);
|
||||
|
|
|
|||
|
|
@ -685,6 +685,24 @@ public class SalarySobController {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String listSalaryApprovalDepartmentReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
param.setSum(false);
|
||||
return new ResponseResult<SalaryAcctResultQueryParam, Map<String, Object>>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalDepartmentReport, param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取审批时薪资核算部门报表
|
||||
* @param request
|
||||
* @param response
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/salaryApproval/acctresult/departmentReportSum")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String departmentReportSum(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
param.setSum(true);
|
||||
return new ResponseResult<SalaryAcctResultQueryParam, Map<String, Object>>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalDepartmentReport, param);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue