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;
|
2022-12-02 17:35:14 +08:00
|
|
|
|
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;
|
2022-12-02 17:35:14 +08:00
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
2022-04-12 10:11:53 +08:00
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @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-07 09:31:46 +08:00
|
|
|
|
// 薪资项目设置
|
2022-04-12 10:11:53 +08:00
|
|
|
|
private List<SalaryTemplateSalaryItemSetListDTO> salaryItemSetting;
|
|
|
|
|
|
|
2022-12-02 17:35:14 +08:00
|
|
|
|
|
2023-06-07 09:31:46 +08:00
|
|
|
|
// 补发工资单模板名称
|
2022-12-02 17:35:14 +08:00
|
|
|
|
private String replenishName;
|
|
|
|
|
|
|
2023-06-07 09:31:46 +08:00
|
|
|
|
// 补发工资单名单生成规则
|
2022-12-02 17:35:14 +08:00
|
|
|
|
private String replenishRule;
|
|
|
|
|
|
|
2023-06-07 09:31:46 +08:00
|
|
|
|
// 补发薪资项目设置
|
2022-12-02 17:35:14 +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
|
|
|
|
}
|
|
|
|
|
|
|
2022-12-02 17:35:14 +08:00
|
|
|
|
if (StringUtils.isEmpty(saveParam.getReplenishName())) {
|
2023-06-07 09:31:46 +08:00
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(139737, "补发工资单模板名称必填"));
|
2022-12-02 17:35:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (saveParam.getName().equals(saveParam.getReplenishName())) {
|
2023-06-07 09:31:46 +08:00
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140557, "工资单模板名称和补发工资单模板名称不可相同"));
|
2022-12-02 17:35:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(saveParam.getReplenishRule())) {
|
2023-06-07 09:31:46 +08:00
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(139738, "补发工资单名单生成规则必填"));
|
2022-12-02 17:35:14 +08:00
|
|
|
|
}
|
2023-06-07 09:31:46 +08:00
|
|
|
|
|
2022-12-02 17:35:14 +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
|
|
|
|
}
|
2022-12-02 17:35:14 +08:00
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(saveParam.getReplenishSalaryItemSetting())) {
|
2023-06-07 09:31:46 +08:00
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(140509, "补发工资单模板的薪资项目设置不能为空"));
|
2022-12-02 17:35:14 +08:00
|
|
|
|
}
|
2022-04-12 10:11:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|