weaver-hrm-salary/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java

178 lines
9.9 KiB
Java
Raw Normal View History

2022-03-21 09:33:21 +08:00
package com.engine.salary.entity.salaryitem.bo;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.enums.SalaryDataSourceEnum;
import com.engine.salary.enums.SalaryRoundingModeEnum;
import com.engine.salary.enums.SalarySystemTypeEnum;
import com.engine.salary.enums.SalaryValueTypeEnum;
import org.apache.commons.lang3.math.NumberUtils;
import java.util.Date;
import java.util.Objects;
import java.util.Optional;
/**
* @description: 薪资项目
* @author: xiajun
* @modified By: xiajun
* @date: Created in 10/28/21 4:55 PM
* @version:v1.0
*/
public class SalaryItemBO {
/**
* 构建薪资项目的查询参数
*
* @param searchParam
* @param tenantKey
* @return
*/
2022-03-17 15:14:35 +08:00
// public static Wrapper<SalaryItemPO> buildQueryWrapper(SalaryItemSearchParam searchParam, String tenantKey) {
// LambdaQueryWrapper<SalaryItemPO> wrapper = Wrappers.<SalaryItemPO>lambdaQuery();
// wrapper.eq(SalaryItemPO::getTenantKey, tenantKey)
// .eq(SalaryItemPO::getDeleteType, 0)
// .like(!SalaryEntityUtil.isNullOrEmpty(searchParam.getName()), SalaryItemPO::getName, searchParam.getName())
// .like(!SalaryEntityUtil.isNullOrEmpty(searchParam.getDescription()), SalaryItemPO::getDescription, searchParam.getDescription())
// .notIn(SalaryEntityUtil.isNotNullOrEmpty(searchParam.getExcludeIds()), SalaryItemPO::getId, searchParam.getExcludeIds());
// if (searchParam.getCategory() != null) {
// wrapper.eq(SalaryItemPO::getCategory, searchParam.getCategory().getValue());
// }
// if (searchParam.getItemType() != null) {
// wrapper.eq(SalaryItemPO::getItemType, searchParam.getItemType().getValue());
// }
// if (searchParam.getValueType() != null) {
// wrapper.eq(SalaryItemPO::getValueType, searchParam.getValueType().getValue());
// }
// if (searchParam.getUseInEmployeeSalary() != null) {
// wrapper.eq(SalaryItemPO::getUseInEmployeeSalary, searchParam.getUseInEmployeeSalary().getValue());
// }
// if (searchParam.getUseDefault() != null) {
// wrapper.eq(SalaryItemPO::getUseDefault, searchParam.getUseDefault().getValue());
// }
// wrapper.orderByDesc(SalaryItemPO::getId);
// return wrapper;
// }
2022-03-21 09:33:21 +08:00
/**
* 薪资项目po转换成薪资项目列表dto
*
* @param salaryItems 薪资项目po
* @param expressFormulas 公式详情
* @return
*/
2022-03-17 15:14:35 +08:00
// public static List<SalaryItemListDTO> convert2ListDTO(Collection<SalaryItemPO> salaryItems, List<ExpressFormula> expressFormulas) {
// if (CollectionUtils.isEmpty(salaryItems)) {
// return Collections.emptyList();
// }
// Map<Long, String> formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
// return salaryItems.stream().map(salaryItemPO -> {
// SalaryItemCategoryEnum salaryItemCategoryEnum = SalaryItemCategoryEnum.parseByValue(salaryItemPO.getCategory());
// SalaryItemTypeEnum salaryItemTypeEnum = SalaryItemTypeEnum.parseByValue(salaryItemPO.getItemType());
// SalaryRoundingModeEnum salaryRoundingModeEnum = SalaryRoundingModeEnum.parseByValue(salaryItemPO.getRoundingMode());
// SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(salaryItemPO.getValueType());
// SalaryDataSourceEnum salaryDataSourceEnum = SalaryDataSourceEnum.parseByValue(salaryItemPO.getDatasource());
// SalaryItemListDTO dto = SalaryItemListDTO.builder()
// .id(salaryItemPO.getId())
// .name(salaryItemPO.getName())
// .category(Optional.ofNullable(salaryItemCategoryEnum)
// .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
// .orElse(StringUtils.EMPTY))
// .itemTypeKey(salaryItemTypeEnum)
// .itemType(Optional.ofNullable(salaryItemTypeEnum)
// .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
// .orElse(StringUtils.EMPTY))
// .useInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary())
// .useDefault(salaryItemPO.getUseDefault())
// .roundingMode(Optional.ofNullable(salaryRoundingModeEnum)
// .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
// .orElse(StringUtils.EMPTY))
// .pattern(salaryItemPO.getPattern())
// .valueType(Optional.ofNullable(salaryValueTypeEnum)
// .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
// .orElse(StringUtils.EMPTY))
// .datasource(Optional.ofNullable(salaryDataSourceEnum)
// .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
// .orElse(StringUtils.EMPTY))
// .formulaId(salaryItemPO.getFormulaId())
// .formulaContent(formulaMap.getOrDefault(salaryItemPO.getFormulaId(), ""))
// .description(salaryItemPO.getDescription())
// .canEdit(Objects.equals(salaryItemPO.getCanEdit(), NumberUtils.INTEGER_ONE))
// .build();
// if (Objects.equals(salaryItemPO.getUseInEmployeeSalary(), 1)) {
// dto.setDatasource(SalaryI18nUtil.getI18nLabel(SalaryDataSourceEnum.SALARY_ARCHIVES.getLabelId(),
// SalaryDataSourceEnum.SALARY_ARCHIVES.getDefaultLabel()));
// }
// return dto;
// }
// ).collect(Collectors.toList());
// }
2022-03-21 09:33:21 +08:00
2022-03-17 15:14:35 +08:00
// /**
// * 转换成薪资项目详情dto
// *
// * @param salaryItemPO
// * @return
// */
// public static SalaryItemFormDTO convert2FormDTO(SalaryItemPO salaryItemPO) {
// return new SalaryItemFormDTO()
// .setId(salaryItemPO.getId())
// .setName(salaryItemPO.getName())
// .setSystemType(SalarySystemTypeEnum.parseByValue(salaryItemPO.getSystemType()))
// .setUseDefault(salaryItemPO.getUseDefault())
// .setUseInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary())
// .setCategory(SalaryItemCategoryEnum.parseByValue(salaryItemPO.getCategory()))
// .setItemType(SalaryItemTypeEnum.parseByValue(salaryItemPO.getItemType()))
// .setRoundingMode(SalaryRoundingModeEnum.parseByValue(salaryItemPO.getRoundingMode()))
// .setPattern(salaryItemPO.getPattern())
// .setValueType(SalaryValueTypeEnum.parseByValue(salaryItemPO.getValueType()))
// .setFormulaId(salaryItemPO.getFormulaId())
// .setDescription(salaryItemPO.getDescription())
// .setCanEdit(salaryItemPO.getCanEdit());
// }
2022-03-21 09:33:21 +08:00
/**
* 保存参数/更新参数 转换成薪资项目po
*
* @param saveParam 保存参数/更新参数
* @param employeeId 人员id
* @return
*/
public static SalaryItemPO convert2SalaryItemPO(SalaryItemSaveParam saveParam, Long employeeId) {
Date now = new Date();
// long id = IdGenerator.generate();
SalaryItemPO salaryItemPO = SalaryItemPO.builder()
// .id(id)
// .code(String.valueOf(id))
.name(saveParam.getName())
.systemType(SalarySystemTypeEnum.CUSTOM.getValue())
.sysSalaryItemId(NumberUtils.LONG_ZERO)
.category(saveParam.getCategory().getValue())
.itemType(saveParam.getItemType().getValue())
.useDefault(saveParam.getUseDefault())
.useInEmployeeSalary(saveParam.getUseInEmployeeSalary())
.roundingMode(Optional.ofNullable(saveParam.getRoundingMode()).map(SalaryRoundingModeEnum::getValue).orElse(SalaryRoundingModeEnum.ROUNDING.getValue()))
.pattern(Optional.ofNullable(saveParam.getPattern()).orElse(2))
.valueType(saveParam.getValueType().getValue())
.datasource(saveParam.getValueType() == SalaryValueTypeEnum.INPUT ? SalaryDataSourceEnum.INPUT_IMPORT.getValue() : SalaryDataSourceEnum.CUSTOM_FORMULA.getValue())
.formulaId(saveParam.getValueType() == SalaryValueTypeEnum.FORMULA ? Optional.ofNullable(saveParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO) : NumberUtils.LONG_ZERO)
.description(saveParam.getDescription())
.canEdit(NumberUtils.INTEGER_ONE)
.canDelete(NumberUtils.INTEGER_ONE)
.creator(employeeId)
.deleteType(NumberUtils.INTEGER_ZERO)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
// 开启了"薪资档案引用",取值方式固定为输入,数据来源固定为薪资档案
if (Objects.equals(saveParam.getUseInEmployeeSalary(), NumberUtils.INTEGER_ONE)) {
salaryItemPO.setValueType(SalaryValueTypeEnum.INPUT.getValue());
salaryItemPO.setDatasource(SalaryDataSourceEnum.SALARY_ARCHIVES.getValue());
salaryItemPO.setFormulaId(NumberUtils.LONG_ZERO);
}
return salaryItemPO;
}
}