SalaryGroupDTO.java 2.45 KB
package cn.fw.morax.domain.dto;

import cn.fw.common.web.annotation.LoginContextField;
import cn.fw.morax.domain.enums.EffectMonthEnum;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.List;

/**
 * @author : kurisu
 * @date : 2022-4-6
 * @desc : 薪酬组配置
 */
@Data
@TableName(autoResultMap = true)
public class SalaryGroupDTO {
    private Long id;
    /**
     * 名称
     */
    @NotBlank(message = "名称不能为空")
    @Length(max = 255, message = "名称超出最大限制")
    private String name;
    /**
     * 薪酬组编码
     */
    private String sgc;
    /**
     * 岗位id
     */
    @NotNull(message = "岗位id不能为空")
    private Long postId;

    /**
     * 岗位名称
     */
    @NotBlank(message = "岗位名称不能为空")
    private String postName;

    /**
     * 适用门店ids
     */
    @NotNull(message = "适用门店id不能为空")
    @Size(min = 1, message = "适用门店id不能为空")
    private List<Long> shopIds;

    /**
     * 适用门店名称
     */
    @NotNull(message = "适用门店名称不能为空")
    @Size(min = 1, message = "适用门店名称不能为空")
    private List<String> shopNames;

    /**
     * 生效时间
     */
    private LocalDate beginTime;

    @NotNull(message = "生效时间类型不能为空")
    private EffectMonthEnum beginTimeType;
    /**
     * 调整原因
     */
    private String reason;
    /**
     * 附件ids
     */
    private List<String> attachment;

    /**
     * 集团id
     */
    @LoginContextField(LoginContextField.Name.GROUP_ID)
    private Long groupId;
    /**
     * 用户名
     */
    @LoginContextField(LoginContextField.Name.USER_NAME)
    private String userName;

    /**
     * 薪酬项目
     */
    @Valid
    @NotEmpty(message = "薪酬项目不能为空")
    private List<SalaryGroupProjectDTO> projects;
}