154 lines
7.2 KiB
Java
154 lines
7.2 KiB
Java
package com.engine.salary.entity.salaryitem.bo;
|
|
|
|
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
|
import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO;
|
|
import com.engine.salary.entity.salaryitem.dto.SysSalaryItemListDTO;
|
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
|
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
|
|
import com.engine.salary.enums.SalaryRoundingModeEnum;
|
|
import com.engine.salary.enums.SalarySystemTypeEnum;
|
|
import com.engine.salary.enums.SalaryValueTypeEnum;
|
|
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
|
import com.engine.salary.util.SalaryI18nUtil;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.math.NumberUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @description: 系统薪资项目
|
|
* @author: xiajun
|
|
* @modified By: xiajun
|
|
* @date: Created in 11/2/21 1:30 PM
|
|
* @version:v1.0
|
|
*/
|
|
public class SysSalaryItemBO {
|
|
/**
|
|
* 查询参数构建queryWrapper
|
|
*
|
|
* @param searchParam 系统薪资项目列表查询参数
|
|
* @return
|
|
*/
|
|
// public static Wrapper<SysSalaryItemPO> buildQueryWrapper(SysSalaryItemSearchParam searchParam) {
|
|
// LambdaQueryWrapper<SysSalaryItemPO> wrapper = Wrappers.lambdaQuery();
|
|
// wrapper.eq(SysSalaryItemPO::getTenantKey, SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
|
// .eq(SysSalaryItemPO::getDeleteType, 0)
|
|
// .like(SalaryEntityUtil.isNotNullOrEmpty(searchParam.getName()), SysSalaryItemPO::getName, searchParam.getName())
|
|
// .notIn(SalaryEntityUtil.isNotNullOrEmpty(searchParam.getExcludeIds()), SysSalaryItemPO::getId, searchParam.getExcludeIds());
|
|
// if (Objects.nonNull(searchParam.getDataType())) {
|
|
// wrapper.eq(SysSalaryItemPO::getDataType, searchParam.getDataType().getValue());
|
|
// }
|
|
// wrapper.orderByDesc(SysSalaryItemPO::getId);
|
|
// return wrapper;
|
|
// }
|
|
|
|
/**
|
|
* 系统薪资项目po转换成系统薪资项目列表dto
|
|
*
|
|
* @param sysSalaryItems 系统薪资项目集合
|
|
* @return
|
|
*/
|
|
public static List<SysSalaryItemListDTO> convert2ListDTO(Collection<SysSalaryItemPO> sysSalaryItems) {
|
|
if (CollectionUtils.isEmpty(sysSalaryItems)) {
|
|
return Collections.emptyList();
|
|
}
|
|
return sysSalaryItems.stream().map(sysSalaryItemPO -> {
|
|
SalaryRoundingModeEnum salaryRoundingModeEnum = SalaryRoundingModeEnum.parseByValue(sysSalaryItemPO.getRoundingMode());
|
|
SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(sysSalaryItemPO.getValueType());
|
|
SalaryDataTypeEnum salaryDataTypeEnum = SalaryDataTypeEnum.parseByValue(sysSalaryItemPO.getDataType());
|
|
return SysSalaryItemListDTO.builder()
|
|
.id(sysSalaryItemPO.getId())
|
|
.name(sysSalaryItemPO.getName())
|
|
.roundingMode(Optional.ofNullable(salaryRoundingModeEnum)
|
|
.map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
|
|
.orElse(StringUtils.EMPTY))
|
|
.pattern(sysSalaryItemPO.getPattern())
|
|
.valueType(Optional.ofNullable(salaryValueTypeEnum)
|
|
.map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
|
|
.orElse(StringUtils.EMPTY))
|
|
.dataType(Optional.ofNullable(salaryDataTypeEnum)
|
|
.map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
|
|
.orElse(StringUtils.EMPTY))
|
|
.taxDeclarationColumn(SalaryItemBO.buildTaxDeclarationColumn(sysSalaryItemPO.getCode()))
|
|
.build();
|
|
}
|
|
).collect(Collectors.toList());
|
|
}
|
|
|
|
/**
|
|
* 转换成薪资项目详情dto
|
|
*
|
|
* @param sysSalaryItemPO
|
|
* @return
|
|
*/
|
|
public static SalaryItemFormDTO convert2FormDTO(SysSalaryItemPO sysSalaryItemPO) {
|
|
return new SalaryItemFormDTO()
|
|
.setId(sysSalaryItemPO.getId())
|
|
.setName(sysSalaryItemPO.getName())
|
|
.setCanEdit(sysSalaryItemPO.getCanEdit())
|
|
.setSystemType(SalarySystemTypeEnum.parseByValue(sysSalaryItemPO.getSystemType()))
|
|
.setUseDefault(sysSalaryItemPO.getUseDefault())
|
|
.setUseInEmployeeSalary(sysSalaryItemPO.getUseInEmployeeSalary())
|
|
.setRoundingMode(SalaryRoundingModeEnum.parseByValue(sysSalaryItemPO.getRoundingMode()))
|
|
.setPattern(sysSalaryItemPO.getPattern())
|
|
.setValueType(SalaryValueTypeEnum.parseByValue(sysSalaryItemPO.getValueType()))
|
|
.setDataType(SalaryDataTypeEnum.parseByValue(sysSalaryItemPO.getDataType()))
|
|
.setFormulaId(sysSalaryItemPO.getFormulaId())
|
|
.setDescription(sysSalaryItemPO.getDescription());
|
|
}
|
|
|
|
/**
|
|
* 系统薪资项目转换成自定义薪资项目
|
|
*
|
|
* @param sysSalaryItems 系统薪资项目集合
|
|
* @return
|
|
*/
|
|
public static List<SalaryItemPO> convert2SalaryItemPO(Collection<SysSalaryItemPO> sysSalaryItems, Long employeeId) {
|
|
if (CollectionUtils.isEmpty(sysSalaryItems)) {
|
|
return Collections.emptyList();
|
|
}
|
|
LocalDateTime now = LocalDateTime.now();
|
|
return sysSalaryItems.stream()
|
|
.map(e -> convert2SalaryItemPO(e, employeeId))
|
|
.filter(Objects::nonNull)
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
/**
|
|
* 系统薪资项目转换成自定义薪资项目
|
|
*
|
|
* @param sysSalaryItemPO 系统薪资项目
|
|
* @param employeeId 人员id
|
|
* @return
|
|
*/
|
|
private static SalaryItemPO convert2SalaryItemPO(SysSalaryItemPO sysSalaryItemPO, Long employeeId) {
|
|
if (sysSalaryItemPO == null) {
|
|
return null;
|
|
}
|
|
// long id = IdGenerator.generate();
|
|
return SalaryItemPO.builder()
|
|
// .id(id)
|
|
.code(sysSalaryItemPO.getCode())
|
|
.name(sysSalaryItemPO.getName())
|
|
.systemType(SalarySystemTypeEnum.SYSTEM.getValue())
|
|
.sysSalaryItemId(sysSalaryItemPO.getId())
|
|
.useDefault(sysSalaryItemPO.getUseDefault())
|
|
.useInEmployeeSalary(sysSalaryItemPO.getUseInEmployeeSalary())
|
|
.roundingMode(sysSalaryItemPO.getRoundingMode())
|
|
.pattern(sysSalaryItemPO.getPattern())
|
|
.valueType(sysSalaryItemPO.getValueType())
|
|
.dataType(sysSalaryItemPO.getDataType())
|
|
.formulaId(sysSalaryItemPO.getFormulaId())
|
|
.description(sysSalaryItemPO.getDescription())
|
|
.canEdit(sysSalaryItemPO.getCanEdit())
|
|
.creator(employeeId)
|
|
.deleteType(NumberUtils.INTEGER_ZERO)
|
|
.createTime(new Date())
|
|
.updateTime(new Date())
|
|
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
|
.build();
|
|
}}
|