weaver-hrm-salary/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java

128 lines
6.0 KiB
Java
Raw Normal View History

2022-04-12 10:11:53 +08:00
package com.engine.salary.entity.salaryBill.bo;
import cn.hutool.json.JSONUtil;
import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemListDTO;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
import org.apache.commons.collections.CollectionUtils;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/**
* @Description: 工资单
*/
public class SalaryTemplateBO {
@Override
public String toString() {
return "SalaryTemplateBO{}";
}
/**
* 保存参数转表数据
* @param saveParam
* @param employeeId
* @return
*/
public static SalaryTemplatePO convertToPO(SalaryTemplateSaveParam saveParam, Long employeeId) {
if (saveParam == null) {
return null;
}
return SalaryTemplatePO.builder()
.id(saveParam.getId())
.name(saveParam.getName())
.salarySobId(saveParam.getSalarySobId())
.description(saveParam.getDescription())
.emailStatus(saveParam.getEmailStatus()?1:0)
.sendEmailId(saveParam.getEmailStatus()?saveParam.getSendEmail():0L)
.msgStatus(saveParam.getMsgStatus()?1:0)
.theme(saveParam.getTheme())
.background(saveParam.getBackground())
.textContent(saveParam.getTextContent())
.textContentPosition(saveParam.getTextContentPosition())
.salaryItemNullStatus(saveParam.getSalaryItemNullStatus()?1:0)
.salaryItemZeroStatus(saveParam.getSalaryItemZeroStatus()?1:0)
2022-04-12 18:28:12 +08:00
.salaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : "")
2022-04-12 10:11:53 +08:00
.createTime(new Date())
.updateTime(new Date())
.creator(employeeId)
.build();
}
public static List<SalaryTemplateSalaryItemSetListDTO> convertSalarySobItemAggregateToSalaryItemSet(SalarySobItemAggregateDTO salarySobItemAggregateDTO, Long currentEmployeeId) {
List<SalaryTemplateSalaryItemSetListDTO> groups = new LinkedList<>();
if (salarySobItemAggregateDTO!=null) {
// 1.员工信息
if (CollectionUtils.isNotEmpty(salarySobItemAggregateDTO.getEmpFields())) {
List<SalaryTemplateSalaryItemListDTO> items = new LinkedList<>();
salarySobItemAggregateDTO.getEmpFields().stream().forEach(e->{
items.add(
SalaryTemplateSalaryItemListDTO.builder()
.id(String.valueOf(e.getId()))
.salaryItemId(String.valueOf(e.getId()))
.name(e.getFieldName())
.sortedIndex(e.getSortedIndex())
.build()
);
});
groups.add(
SalaryTemplateSalaryItemSetListDTO.builder()
.groupId(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)
.groupName("员工信息")
.sortedIndex(-1)
.items(items)
.build());
}
// 2.普通分组
if (CollectionUtils.isNotEmpty(salarySobItemAggregateDTO.getItemGroups())) {
salarySobItemAggregateDTO.getItemGroups().stream().forEach(e->{
List<SalaryTemplateSalaryItemListDTO> items = new LinkedList<>();
e.getItems().stream().forEach(i->{
items.add(
SalaryTemplateSalaryItemListDTO.builder()
.id(String.valueOf(i.getSalaryItemId()))
.salaryItemId(String.valueOf(i.getSalaryItemId()))
.name(i.getName())
.sortedIndex(i.getSortedIndex())
.build());
});
groups.add(
SalaryTemplateSalaryItemSetListDTO.builder()
.groupId(String.valueOf(e.getId()))
.groupName(e.getName())
.sortedIndex(e.getSortedIndex())
.items(items)
.build());
});
}
// 3.无分类
if (CollectionUtils.isNotEmpty(salarySobItemAggregateDTO.getItems())) {
List<SalaryTemplateSalaryItemListDTO> items = new LinkedList<>();
salarySobItemAggregateDTO.getItems().stream().forEach(e->{
items.add(
SalaryTemplateSalaryItemListDTO.builder()
.id(String.valueOf(e.getSalaryItemId()))
.salaryItemId(String.valueOf(e.getSalaryItemId()))
.name(e.getName())
.sortedIndex(e.getSortedIndex())
.build());
});
groups.add(
SalaryTemplateSalaryItemSetListDTO.builder()
.groupId(SalaryTemplateSalaryItemSetGroupConstant.NO_TYPE_GROUP_ID)
.groupName("无分类")
.sortedIndex(salarySobItemAggregateDTO.getItemGroups().size())
.items(items)
.build());
}
}
return groups;
}
}