美之高薪酬二开
This commit is contained in:
parent
a27391ac1b
commit
857475347e
|
|
@ -235,4 +235,11 @@ public interface SalaryAcctResultService {
|
|||
void generateMzgCpjsgzcl(MzqQueryParam param);
|
||||
|
||||
void generateMzgCpjsgzdj(MzqQueryParam param);
|
||||
|
||||
/**
|
||||
* 美之高 - 统计需要渲染到流程字段中的值
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
Map<String, String> sumSalaryApprovalFields(SalaryAcctResultQueryParam param);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1738,4 +1738,58 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 美之高 - 统计需要渲染到流程字段中的值
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> sumSalaryApprovalFields(SalaryAcctResultQueryParam param) {
|
||||
Map<String, String> resultMap = new HashMap<>();
|
||||
// 查询核算记录
|
||||
if (param.getSalaryAcctRecordId() == null) {
|
||||
throw new SalaryRunTimeException("参数错误!");
|
||||
}
|
||||
SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId());
|
||||
if (salaryAcctRecord == null) {
|
||||
throw new SalaryRunTimeException("核算记录不存在或已被删除!");
|
||||
}
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(param.getSalaryAcctRecordId());
|
||||
if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) {
|
||||
return resultMap;
|
||||
}
|
||||
// 获取账套信息
|
||||
SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecord.getSalarySobId());
|
||||
if (salarySobPO != null) {
|
||||
resultMap.put("salarySobName", salarySobPO.getName());
|
||||
}
|
||||
resultMap.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(salaryAcctRecord.getSalaryMonth()));
|
||||
List<Long> salaryAcctEmpIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
|
||||
BaseBean baseBean = new BaseBean();
|
||||
String needSumFields = baseBean.getPropValue("mzgSalaryReport", "need_sum_fields");
|
||||
List<String> fieldList = Arrays.stream(needSumFields.split(",")).collect(Collectors.toList());
|
||||
Map<String, Long> fieldItemMap = new HashMap<>();
|
||||
for (String field : fieldList) {
|
||||
String fieldItemIdStr = baseBean.getPropValue("mzgSalaryReport", field + "_item_id");
|
||||
Long salaryItemId = NumberUtils.isCreatable(fieldItemIdStr) ? Long.valueOf(fieldItemIdStr) : 0L;
|
||||
fieldItemMap.put(field, salaryItemId);
|
||||
}
|
||||
List<Long> salaryItemIds = fieldItemMap.values().stream().collect(Collectors.toList());
|
||||
// 查询薪资核算结果
|
||||
List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
|
||||
Map<Long, List<SalaryAcctResultPO>> acctResultMap = SalaryEntityUtil.group2Map(acctResultList, SalaryAcctResultPO::getSalaryItemId);
|
||||
for (Map.Entry<String, Long> entry : fieldItemMap.entrySet()) {
|
||||
Long salaryItemId = entry.getValue();
|
||||
List<SalaryAcctResultPO> singeItemResultList = acctResultMap.get(salaryItemId);
|
||||
if (CollectionUtils.isNotEmpty(singeItemResultList)) {
|
||||
BigDecimal sumValue = singeItemResultList.stream()
|
||||
.map(SalaryAcctResultPO::getResultValue)
|
||||
.filter(NumberUtils::isCreatable)
|
||||
.map(BigDecimal::new)
|
||||
.reduce(new BigDecimal("0"), BigDecimal::add);
|
||||
resultMap.put(entry.getKey(), sumValue.toPlainString());
|
||||
}
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
|
@ -658,6 +658,21 @@ public class SalarySobController {
|
|||
return new ResponseResult<SalaryAcctResultQueryParam, Map<String, Object>>(user).run(getSalaryApprovalWrapper(user)::listSalaryApprovalAcctResult, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 美之高 - 统计需要渲染到流程字段中的值
|
||||
* @param request
|
||||
* @param response
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/salaryApproval/fields/sum")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String sumSalaryApprovalFields(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryAcctResultQueryParam, Map<String, String>>(user).run(getSalaryApprovalWrapper(user)::sumSalaryApprovalFields, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存审批流程id
|
||||
* @param request
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import com.engine.salary.exception.SalaryRunTimeException;
|
|||
import com.engine.salary.mapper.sys.SalarySysConfMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.service.impl.*;
|
||||
import com.engine.salary.sys.entity.po.SalarySysConfPO;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
|
|
@ -27,15 +26,13 @@ import com.engine.salary.util.page.SalaryPageUtil;
|
|||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_ACCT_FIXED_COLUMNS;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 薪资账套的薪资审批
|
||||
|
|
@ -118,6 +115,8 @@ public class SalaryApprovalWrapper extends Service {
|
|||
List<WeaTableColumnGroup> columns = Lists.newArrayList();
|
||||
// 查询薪资账套的员工信息字段
|
||||
List<SalarySobEmpFieldPO> salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
// 只要展示姓名字段
|
||||
salarySobEmpFieldPOS = salarySobEmpFieldPOS.stream().filter(salarySobEmpFieldPO -> salarySobEmpFieldPO.getFieldCode().equals("userName")).collect(Collectors.toList());
|
||||
List<SalarySobEmpFieldDTO> salarySobEmpFieldDTOS = new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS);
|
||||
// 获取薪资项目信息
|
||||
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listAll();
|
||||
|
|
@ -140,15 +139,19 @@ public class SalaryApprovalWrapper extends Service {
|
|||
}
|
||||
|
||||
// 获取固定列头数
|
||||
SalarySysConfPO salaryAcctFixedColumns = getSalarySysConfMapper().getOneByCode(SALARY_ACCT_FIXED_COLUMNS);
|
||||
if (salaryAcctFixedColumns != null) {
|
||||
int fixedNum = NumberUtils.isCreatable(salaryAcctFixedColumns.getConfValue()) ? Integer.valueOf(salaryAcctFixedColumns.getConfValue()) : 3;
|
||||
if (fixedNum == 0) {
|
||||
fixedNum = 3;
|
||||
}
|
||||
for (int i = 0; i < fixedNum; i++) {
|
||||
columns.get(i).setFixed("left");
|
||||
}
|
||||
// SalarySysConfPO salaryAcctFixedColumns = getSalarySysConfMapper().getOneByCode(SALARY_ACCT_FIXED_COLUMNS);
|
||||
// if (salaryAcctFixedColumns != null) {
|
||||
// int fixedNum = NumberUtils.isCreatable(salaryAcctFixedColumns.getConfValue()) ? Integer.valueOf(salaryAcctFixedColumns.getConfValue()) : 3;
|
||||
// if (fixedNum == 0) {
|
||||
// fixedNum = 3;
|
||||
// }
|
||||
// for (int i = 0; i < fixedNum; i++) {
|
||||
// columns.get(i).setFixed("left");
|
||||
// }
|
||||
// }
|
||||
|
||||
for (int i = 0; i < 1; i++) {
|
||||
columns.get(i).setFixed("left");
|
||||
}
|
||||
|
||||
Map<String, Object> datas = new HashMap<>();
|
||||
|
|
@ -165,4 +168,12 @@ public class SalaryApprovalWrapper extends Service {
|
|||
public void saveApprovalRequestId(ApprovalRequestSaveParam saveParam) {
|
||||
getSalaryApprovalRuleService(user).saveApprovalRequestId(saveParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 美之高 - 统计需要渲染到流程字段中的值
|
||||
* @param param
|
||||
*/
|
||||
public Map<String, String> sumSalaryApprovalFields(SalaryAcctResultQueryParam param) {
|
||||
return getSalaryAcctResultService(user).sumSalaryApprovalFields(param);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue