weaver-hrm-salary/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java

147 lines
5.2 KiB
Java
Raw Normal View History

2022-04-12 10:11:53 +08:00
package com.engine.salary.entity.salaryBill.param;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO;
import com.engine.salary.enums.salarybill.SalaryTemplateTextContentPositionEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.util.SalaryI18nUtil;
2022-04-12 10:11:53 +08:00
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
2022-04-12 10:11:53 +08:00
import org.apache.commons.lang3.StringUtils;
import java.util.List;
2023-06-30 15:58:55 +08:00
import java.util.Objects;
2022-04-12 10:11:53 +08:00
/**
* @Description: 工资单模板
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
2023-06-07 09:31:46 +08:00
//"工资单模板保存参数
2022-04-12 10:11:53 +08:00
public class SalaryTemplateSaveParam {
2023-06-07 09:31:46 +08:00
// 主键
2022-04-12 10:11:53 +08:00
private Long id;
2023-06-07 09:31:46 +08:00
// 模板名称
2022-04-12 10:11:53 +08:00
private String name;
2023-06-07 09:31:46 +08:00
// 薪资账套表的主键id
2022-04-12 10:11:53 +08:00
private Long salarySobId;
2023-06-07 09:31:46 +08:00
// 备注
2022-04-12 10:11:53 +08:00
private String description;
2023-06-07 09:31:46 +08:00
// 邮箱开启状态。false关、true
2022-04-12 10:11:53 +08:00
private Boolean emailStatus;
2023-06-07 09:31:46 +08:00
// 发送地址
2022-04-12 10:11:53 +08:00
private Long sendEmail;
2023-06-07 09:31:46 +08:00
// 消息中心开启状态。false关、true
2022-04-12 10:11:53 +08:00
private Boolean msgStatus;
2023-06-07 09:31:46 +08:00
// 主题
2022-04-12 10:11:53 +08:00
private String theme;
2023-06-07 09:31:46 +08:00
// 背景图
2022-04-12 10:11:53 +08:00
private String background;
2023-06-07 09:31:46 +08:00
// 文本内容
2022-04-12 10:11:53 +08:00
private String textContent;
2023-06-07 09:31:46 +08:00
// 文本内容位置。1薪资项目前、2薪资项目后
2022-04-12 10:11:53 +08:00
private Integer textContentPosition;
2023-06-07 09:31:46 +08:00
// 薪资项为空时不显示开启状态。false关、true
2022-04-12 10:11:53 +08:00
private Boolean salaryItemNullStatus;
2023-06-07 09:31:46 +08:00
// 薪资项为0时不显示开启状态。false关、true
2022-04-12 10:11:53 +08:00
private Boolean salaryItemZeroStatus;
2023-06-30 15:58:55 +08:00
// 是否启用工资单定时发送。0未启用、1已启用
private Boolean autoSendStatus;
// 自动发送工资单周期1本月、2上月
private int autoSendCycleType;
2023-06-30 15:58:55 +08:00
// 每月几号自动发送工资单
private String autoSendDayOfMonth;
// 自动发放时间
private String autoSendTimeOfDay;
2023-06-07 09:31:46 +08:00
// 薪资项目设置
2022-04-12 10:11:53 +08:00
private List<SalaryTemplateSalaryItemSetListDTO> salaryItemSetting;
2023-06-07 09:31:46 +08:00
// 补发工资单模板名称
private String replenishName;
2023-06-07 09:31:46 +08:00
// 补发工资单名单生成规则
private String replenishRule;
2023-06-07 09:31:46 +08:00
// 补发薪资项目设置
private List<SalaryTemplateSalaryItemSetListDTO> replenishSalaryItemSetting;
2022-04-12 10:11:53 +08:00
public static void checkParam(SalaryTemplateSaveParam saveParam) {
if (saveParam.getSalarySobId() == null) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException("薪资账套表的主键id必传;");
2022-04-12 10:11:53 +08:00
}
if (StringUtils.isEmpty(saveParam.getName())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException("工资单模板名称必填;");
2022-04-12 10:11:53 +08:00
}
if (StringUtils.isEmpty(saveParam.getTheme())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException("工资单主题必填;");
2022-04-12 10:11:53 +08:00
}
if (StringUtils.isEmpty(saveParam.getReplenishName())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(139737, "补发工资单模板名称必填"));
}
if (saveParam.getName().equals(saveParam.getReplenishName())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140557, "工资单模板名称和补发工资单模板名称不可相同"));
}
if (StringUtils.isEmpty(saveParam.getReplenishRule())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(139738, "补发工资单名单生成规则必填"));
}
2023-06-07 09:31:46 +08:00
2022-04-12 10:11:53 +08:00
if (saveParam.getEmailStatus() && saveParam.getSendEmail() == null) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException("开启邮箱后,发送地址必选;");
2022-04-12 10:11:53 +08:00
}
if (StringUtils.isNotEmpty(saveParam.getTextContent()) && saveParam.getTextContentPosition() == null) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException("文本内容不为空时,文本内容位置必选;");
2022-04-12 10:11:53 +08:00
}
2023-06-07 09:31:46 +08:00
if (saveParam.getTextContentPosition() != null && saveParam.getTextContentPosition().equals(SalaryTemplateTextContentPositionEnum.BEFORE.getValue()) && saveParam.getTextContentPosition().equals(SalaryTemplateTextContentPositionEnum.AFTER.getValue())) {
throw new SalaryRunTimeException("文本内容位置参数不对;");
2022-04-12 10:11:53 +08:00
}
if (CollectionUtils.isEmpty(saveParam.getReplenishSalaryItemSetting())) {
2023-06-07 09:31:46 +08:00
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "补发工资单模板的薪资项目设置不能为空"));
}
2023-06-30 15:58:55 +08:00
if (Objects.isNull(saveParam.getAutoSendStatus())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "是否启用自动发放不能为空"));
}
if (saveParam.getAutoSendStatus() == Boolean.TRUE) {
if(StringUtils.isBlank(saveParam.getAutoSendDayOfMonth()))
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "自动发放日期不能为空"));
if(Objects.isNull(saveParam.getAutoSendCycleType()))
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "自动发放周期不能为空"));
if(StringUtils.isBlank(saveParam.getAutoSendTimeOfDay()))
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "自动发放时间不能为空"));
}
2022-04-12 10:11:53 +08:00
}
}