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

188 lines
9.5 KiB
Java

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 com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryI18nUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.hrm.User;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* @Description: 工资单
*/
public class SalaryTemplateBO {
@Override
public String toString() {
return "SalaryTemplateBO{}";
}
/**
* 获取人员信息项目分类
*
* @param salaryItemSetting
* @return
*/
public static SalaryTemplateSalaryItemSetListDTO getEmployeeInformation(List<SalaryTemplateSalaryItemSetListDTO> salaryItemSetting) {
Optional<SalaryTemplateSalaryItemSetListDTO> optionalEmployeeInformation = salaryItemSetting.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst();
SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null);
// 排除名称为空的
if (employeeInformation != null && org.apache.commons.collections.CollectionUtils.isNotEmpty(employeeInformation.getItems())) {
employeeInformation.setItems(employeeInformation.getItems().stream().filter(e -> StringUtils.isNotEmpty(e.getName())).collect(Collectors.toList()));
}
return employeeInformation;
}
/**
* 保存参数转表数据
* @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)
.salaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : "")
.replenishName(saveParam.getReplenishName())
.replenishRule(saveParam.getReplenishRule())
.replenishSalaryItemSetting((saveParam.getSalaryItemSetting() != null ? JsonUtil.toJsonString(saveParam.getReplenishSalaryItemSetting()) : ""))
.autoSendStatus(saveParam.getAutoSendStatus()?1:0)
.autoSendDayOfMonth(saveParam.getAutoSendDayOfMonth())
.autoSendTimeOfDay(saveParam.getAutoSendTimeOfDay())
.ackFeedbackStatus(saveParam.getAckFeedbackStatus()?1:0)
.autoAckDays(saveParam.getAutoAckDays())
.feedbackUrl(saveParam.getFeedbackUrl())
.createTime(new Date())
.updateTime(new Date())
.creator(employeeId)
.build();
}
public static List<SalaryTemplateSalaryItemSetListDTO> convertSalarySobItemAggregateToSalaryItemSet(SalarySobItemAggregateDTO salarySobItemAggregateDTO, Long currentEmployeeId, boolean isReplenish, User user) {
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(SalaryI18nUtil.getI18nLabel(user.getLanguage(),28448, "员工信息"))
.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())
.salaryItemShowName(i.getName())
.originName(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(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542650, "无分类"))
.sortedIndex(salarySobItemAggregateDTO.getItemGroups().size())
.items(items)
.build());
}
if (isReplenish) {
// 4.已发补发
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salarySobItemAggregateDTO.getBackCalcItems())) {
List<SalaryTemplateSalaryItemListDTO> items = new LinkedList<>();
salarySobItemAggregateDTO.getBackCalcItems().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.REPLENISH_GROUP_ID)
.groupName(SalaryI18nUtil.getI18nLabel(user.getLanguage(),542651, "已发补发"))
.sortedIndex(groups.size() + 1)
.items(items)
.build());
}
}
}
return groups;
}
}