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; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.util.List; /** * @Description: 工资单模板 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor //@ApiModel("工资单模板保存参数") public class SalaryTemplateSaveParam { // @ApiModelProperty("主键") private Long id; // @ApiModelProperty("模板名称") private String name; // @ApiModelProperty("薪资账套表的主键id") private Long salarySobId; // @ApiModelProperty("备注") private String description; // @ApiModelProperty("邮箱开启状态。false:关、true:开") private Boolean emailStatus; // @ApiModelProperty("发送地址") private Long sendEmail; // @ApiModelProperty("消息中心开启状态。false:关、true:开") private Boolean msgStatus; // @ApiModelProperty("主题") private String theme; // @ApiModelProperty("背景图") private String background; // @ApiModelProperty("文本内容") private String textContent; // @ApiModelProperty("文本内容位置。1:薪资项目前、2:薪资项目后") private Integer textContentPosition; // @ApiModelProperty("薪资项为空时不显示开启状态。false:关、true:开") private Boolean salaryItemNullStatus; // @ApiModelProperty("薪资项为0时不显示开启状态。false:关、true:开") private Boolean salaryItemZeroStatus; // @ApiModelProperty("薪资项目设置") private List salaryItemSetting; // @ApiModelProperty("补发工资单模板名称") private String replenishName; // @ApiModelProperty("补发工资单名单生成规则") private String replenishRule; // @ApiModelProperty("补发薪资项目设置") private List replenishSalaryItemSetting; public static void checkParam(SalaryTemplateSaveParam saveParam) { if (saveParam.getSalarySobId() == null) { throw new SalaryRunTimeException("薪资账套表的主键id必传"); } if (StringUtils.isEmpty(saveParam.getName())) { throw new SalaryRunTimeException("工资单模板名称必填"); } if (StringUtils.isEmpty(saveParam.getTheme())) { throw new SalaryRunTimeException("工资单主题必填"); } if (StringUtils.isEmpty(saveParam.getReplenishName())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 139737, "补发工资单模板名称必填")); } if (saveParam.getName().equals(saveParam.getReplenishName())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 140557, "工资单模板名称和补发工资单模板名称不可相同")); } if (StringUtils.isEmpty(saveParam.getReplenishRule())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 139738, "补发工资单名单生成规则必填")); } if (saveParam.getEmailStatus() && saveParam.getSendEmail() == null) { throw new SalaryRunTimeException("开启邮箱后,发送地址必选"); } if (StringUtils.isNotEmpty(saveParam.getTextContent()) && saveParam.getTextContentPosition() == null) { throw new SalaryRunTimeException("文本内容不为空时,文本内容位置必选"); } if (saveParam.getTextContentPosition() !=null && saveParam.getTextContentPosition().equals(SalaryTemplateTextContentPositionEnum.BEFORE.getValue()) && saveParam.getTextContentPosition().equals(SalaryTemplateTextContentPositionEnum.AFTER.getValue())) { throw new SalaryRunTimeException("文本内容位置参数不对"); } if (CollectionUtils.isEmpty(saveParam.getReplenishSalaryItemSetting())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 140509, "补发工资单模板的薪资项目设置不能为空")); } } }