社保福利台账合计列
This commit is contained in:
parent
712f30ddfa
commit
6a7e5eacdc
|
|
@ -275,5 +275,14 @@ public interface SIAccountService {
|
|||
* 将福利台账-补差模板导入的数据更新到数据库
|
||||
*/
|
||||
Map<String, Object> importBalanceInsuranceDetail(InsuranceAcctImportParam importParam);
|
||||
|
||||
|
||||
/**
|
||||
* 合计行
|
||||
*
|
||||
* @param queryParam
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> listCommonSum(InsuranceAccountDetailParam queryParam);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ import weaver.hrm.User;
|
|||
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
|
@ -2834,7 +2833,79 @@ public class SIAccountServiceImpl extends Service implements SIAccountService {
|
|||
}
|
||||
return apidatas;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> listCommonSum(InsuranceAccountDetailParam queryParam) {
|
||||
|
||||
Long employeeId = (long) user.getUID();
|
||||
Map<String, Object> datas = new HashMap<>();
|
||||
|
||||
// 正常缴纳列表
|
||||
queryParam.setPageSize(10000000);
|
||||
PageInfo<InsuranceAccountDetailPO> pageInfo = getSiAccountBiz(user).listCommonPage(queryParam);
|
||||
List<InsuranceAccountDetailPO> insuranceAccountDetailPOS = pageInfo.getList();
|
||||
// 数据组装
|
||||
List<Map<String, Object>> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId);
|
||||
Map<String, Object> maxSizeRecord = records.stream().reduce(new HashMap<>(), (a, b) -> a.size() > b.size() ? a : b);
|
||||
// 获取需要统计的列
|
||||
String[] keys = {"Base", "Com", "Sum", "Per", "total"};
|
||||
List<String> numKeys = new ArrayList<>();
|
||||
for(String key : maxSizeRecord.keySet()){
|
||||
if(StringUtils.containsAny(key,keys)){
|
||||
numKeys.add(key);
|
||||
}
|
||||
}
|
||||
Map<String, Object> sumRow = new HashMap<>();
|
||||
for(String numKey : numKeys){
|
||||
BigDecimal value = new BigDecimal(0);
|
||||
for(Map<String, Object> record : records){
|
||||
value = value.add( new BigDecimal(record.get(numKey) == null ? "0" : record.get(numKey).toString()) );
|
||||
}
|
||||
sumRow.put(numKey,value);
|
||||
}
|
||||
datas.put("sumRow", sumRow);
|
||||
return datas;
|
||||
// records.stream().collect(Collectors.groupingBy(record -> record.getk))
|
||||
//
|
||||
//
|
||||
// .collect(Collectors.groupingBy(Main::getMapKey, Collectors.counting()));
|
||||
// records.stream().flatMap(Collectors.toList());
|
||||
//
|
||||
//
|
||||
// // 查询薪资核算人员
|
||||
// List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam);
|
||||
//
|
||||
// if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) {
|
||||
// return null;
|
||||
// }
|
||||
// // 查询薪资核算记录
|
||||
// SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId());
|
||||
// if (Objects.isNull(salaryAcctRecordPO)) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||
// }
|
||||
// // 查询薪资核算所用薪资账套的薪资项目
|
||||
// List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
// Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
|
||||
// List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
|
||||
// // 查询薪资核算结果
|
||||
// Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
|
||||
// List<SalaryAcctResultPO> salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// 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(NumberUtils::isCreatable)
|
||||
// .map(BigDecimal::new)
|
||||
// .reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap()));
|
||||
// });
|
||||
// return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查补差数据中的福利缴纳费用相关福利类别,是否在正常缴纳中有设置缴纳
|
||||
* @param po
|
||||
|
|
|
|||
|
|
@ -97,6 +97,25 @@ public class SIAccountController {
|
|||
return new ResponseResult<InsuranceAccountDetailParam, Map<String, Object>>(user).run(getService(user)::listCommonPage, insuranceAccountDetailParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取正常缴纳列表合计行
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @param insuranceAccountDetailParam
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/detail/common/list/sum")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String commonListSum(@Context HttpServletRequest request, @Context HttpServletResponse response,
|
||||
@RequestBody InsuranceAccountDetailParam insuranceAccountDetailParam) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<InsuranceAccountDetailParam, Map<String, Object>>(user).run(getService(user)::listCommonSum, insuranceAccountDetailParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据姓名获取正常缴纳列表
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue