package com.ruoyi.pay.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工资明细总业务对象 pay_salary_report
 *
 * @author ruoyi
 * @date 2025-05-12
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PaySalaryReportBo extends BaseEntity {

    /**
     * 主键
     */
   // @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 租户id
     */
    @NotNull(message = "租户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long tenantId;

    /**
     * 年
     */
    @NotBlank(message = "年不能为空", groups = { AddGroup.class, EditGroup.class })
    private String year;

    /**
     * 月
     */
    @NotBlank(message = "月不能为空", groups = { AddGroup.class, EditGroup.class })
    private String month;

    /**
     * 部门id
     */
    @NotNull(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 部门名称
     */
    @NotBlank(message = "部门名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deptName;

    /**
     * 员工id
     */
    @NotNull(message = "员工id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long employeeId;

    /**
     * 员工姓名
     */
    @NotBlank(message = "员工姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String employeeName;

    /**
     * 基本工资
     */
    @NotNull(message = "基本工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal basicSalary;

    /**
     * 实际出勤天数
     */
    @NotNull(message = "实际出勤天数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long actuallyDays;

    /**
     * 实际出勤小时数
     */
   // @NotNull(message = "实际出勤小时数不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal actuallyHours;

    /**
     * 出勤工时
     */
  //  @NotNull(message = "出勤工时不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal dayWorkHours;

    /**
     * 包活工时
     */
  // @NotNull(message = "包活工时不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal workOrderHours;

    /**
     * 加班工时
     */
   // @NotNull(message = "加班工时不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal overtimeWorkHours;

    /**
     *  日工帮工工时
     */
   // @NotNull(message = " 日工帮工工时不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal rigongHelpHours;

    /**
     * 日工工资
     */
   // @NotNull(message = "日工工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal dayWorkPay;

    /**
     * 包活工资
     */
  //  @NotNull(message = "包活工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal workOrderPay;

    /**
     * 加班工资
     */
 //   @NotNull(message = "加班工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal overtime;

    /**
     * 帮工工资
     */
  //  @NotNull(message = "帮工工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal banggongPay;

    /**
     * 值班/拉货工资 废弃
     */
  //  @NotNull(message = "值班/拉货工资 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhibanOrLahuo;

    /**
     * 节假日工资 废弃
     */
   // @NotNull(message = "节假日工资 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal holiday;

    /**
     * 岗位津贴 废弃
     */
  //  @NotNull(message = "岗位津贴 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal post;

    /**
     * 话费及其他补贴 废弃
     */
  //  @NotNull(message = "话费及其他补贴 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal phoneCharge;

    /**
     * 合同补 废弃
     */
  //  @NotNull(message = "合同补 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal contract;

    /**
     * 全勤奖 废弃
     */
 //   @NotNull(message = "全勤奖 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fullTime;

    /**
     * 上月差异 废弃
     */
 //   @NotNull(message = "上月差异 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal diffOfLastMonth;

    /**
     * 应付工资
     */
    @NotNull(message = "应付工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shoudPayMoney;

    /**
     * 扣款忘刷迟到 废弃
     */
 //   @NotNull(message = "扣款忘刷迟到 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal late;

    /**
     * 扣款保险/党费 废弃
     */
  //  @NotNull(message = "扣款保险/党费 废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal insurance;

    /**
     * 实发工资
     */
    @NotNull(message = "实发工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal actuallyPayMoney;

    /**
     * 员工补贴对象
     */
  //  @NotBlank(message = "员工补贴对象不能为空", groups = { AddGroup.class, EditGroup.class })
    private String allButieData;

    /**
     * 备注
     */
  //  @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String note;

    /**
     * 员工工资是否可查
     */
 //   @NotNull(message = "员工工资是否可查不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long empQuery;


}
