
package org.sky.scientific.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 每月研发项目人工费用汇总表
 *
 * @author Kd
 * @since 2025-06-29
 */
@Data
public class XmSalaryVO implements Serializable {

	@Schema(description = "所属年月，如：202505")
	@NotBlank(message = "请选择所属年月")
	private String yearAndMonth;

	private String xh;

	@Schema(description = "研发项目ID")
	private Long xmId;

	@Schema(description = "项目编号")
	private String xmbh;

	@Schema(description = "项目名称")
	private String xmmc;

	@Schema(description = "本月出勤（小时）")
	private double attendanceHours = 0.0;

	@Schema(description = "研发出勤（小时）")
	private double workHours = 0.0;

	@Schema(description = "工资(元)")
	private BigDecimal averageMonthlySalary = BigDecimal.ZERO;

	@Schema(description = "养老保险单位部分")
	private BigDecimal pensionInsurance = BigDecimal.ZERO;

	@Schema(description = "医疗保险单位部分")
	private BigDecimal medicalInsurance = BigDecimal.ZERO;

	@Schema(description = "失业保险单位部分")
	private BigDecimal unemploymentInsurance = BigDecimal.ZERO;

	@Schema(description = "工伤保险单位部分")
	private BigDecimal injuryInsurance = BigDecimal.ZERO;

	@Schema(description = "生育保险单位部分")
	private BigDecimal maternityInsurance = BigDecimal.ZERO;

	@Schema(description = "社保合计")
	private BigDecimal totalInsurance = BigDecimal.ZERO;

	@Schema(description = "公积金单位部分")
	private BigDecimal providentFund = BigDecimal.ZERO;

	@Schema(description = "奖金")
	private BigDecimal bonus = BigDecimal.ZERO;

	@Schema(description = "福利费")
	private BigDecimal benefit = BigDecimal.ZERO;

	@Schema(description = "补充养老保险")
	private BigDecimal pensionInsuranceBc = BigDecimal.ZERO;

	@Schema(description = "补充医疗保险")
	private BigDecimal medicalInsuranceBc = BigDecimal.ZERO;

	@Schema(description = "研发费用合计")
	private BigDecimal total = BigDecimal.ZERO;
}
