package com.sundot.airport.ledger.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sundot.airport.common.annotation.Excel;
import com.sundot.airport.common.core.domain.BaseEntity;

/**
 * 配分事项（手动录入 + 台账同步）score_event
 */
@TableName("score_event")
public class ScoreEvent extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    @Excel(name = "维度ID")
    private Long dimensionId;

    @Excel(name = "维度名称")
    private String dimensionName;

    @Excel(name = "末级指标ID")
    private Long indicatorId;

    @Excel(name = "二级指标ID")
    private Long level2Id;

    @Excel(name = "三级指标ID")
    private Long level3Id;

    @Excel(name = "四级指标ID")
    private Long level4Id;

    @Excel(name = "二级指标")
    private String level2Name;

    @Excel(name = "三级指标")
    private String level3Name;

    @Excel(name = "四级指标")
    private String level4Name;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "事件时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date eventTime;

    @Excel(name = "位置")
    private String location;

    @Excel(name = "责任人ID")
    private Long personId;

    @Excel(name = "部门ID")
    private Long deptId;

    @Excel(name = "队室ID/班组ID")
    private Long teamId;

    @Excel(name = "小组ID")
    private Long groupId;

    @Excel(name = "责任人")
    private String personName;

    @Excel(name = "部门名称")
    private String deptName;

    @Excel(name = "队室/班组")
    private String teamName;

    @Excel(name = "小组")
    private String groupName;

    @Excel(name = "基础分值")
    private BigDecimal scoreValue;

    @Excel(name = "叠加分值")
    private BigDecimal cascadeScore;

    @Excel(name = "总分值")
    private BigDecimal totalScore;

    @Excel(name = "事件描述")
    private String eventDesc;

    /** 来源：1=手动录入 2=台账同步 */
    @Excel(name = "数据来源", readConverterExp = "1=手动录入,2=台账同步")
    private String sourceType;

    @Excel(name = "来源台账")
    private String sourceLedger;

    private String importBatch;

    @Excel(name = "附件")
    private String evidenceFile;

    @Excel(name = "层级维度", readConverterExp = "1=部门,2=队室,3=通道,4=员工", combo = "部门,队室,通道,员工")
    private String org;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public Long getDimensionId() { return dimensionId; }
    public void setDimensionId(Long dimensionId) { this.dimensionId = dimensionId; }

    public String getDimensionName() { return dimensionName; }
    public void setDimensionName(String dimensionName) { this.dimensionName = dimensionName; }

    public Long getIndicatorId() { return indicatorId; }
    public void setIndicatorId(Long indicatorId) { this.indicatorId = indicatorId; }

    public Long getLevel2Id() { return level2Id; }
    public void setLevel2Id(Long level2Id) { this.level2Id = level2Id; }

    public Long getLevel3Id() { return level3Id; }
    public void setLevel3Id(Long level3Id) { this.level3Id = level3Id; }

    public Long getLevel4Id() { return level4Id; }
    public void setLevel4Id(Long level4Id) { this.level4Id = level4Id; }

    public String getLevel2Name() { return level2Name; }
    public void setLevel2Name(String level2Name) { this.level2Name = level2Name; }

    public String getLevel3Name() { return level3Name; }
    public void setLevel3Name(String level3Name) { this.level3Name = level3Name; }

    public String getLevel4Name() { return level4Name; }
    public void setLevel4Name(String level4Name) { this.level4Name = level4Name; }

    public Date getEventTime() { return eventTime; }
    public void setEventTime(Date eventTime) { this.eventTime = eventTime; }

    public String getLocation() { return location; }
    public void setLocation(String location) { this.location = location; }

    public Long getPersonId() { return personId; }
    public void setPersonId(Long personId) { this.personId = personId; }

    public Long getDeptId() { return deptId; }
    public void setDeptId(Long deptId) { this.deptId = deptId; }

    public Long getTeamId() { return teamId; }
    public void setTeamId(Long teamId) { this.teamId = teamId; }

    public Long getGroupId() { return groupId; }
    public void setGroupId(Long groupId) { this.groupId = groupId; }

    public String getPersonName() { return personName; }
    public void setPersonName(String personName) { this.personName = personName; }

    public String getDeptName() { return deptName; }
    public void setDeptName(String deptName) { this.deptName = deptName; }

    public String getTeamName() { return teamName; }
    public void setTeamName(String teamName) { this.teamName = teamName; }

    public String getGroupName() { return groupName; }
    public void setGroupName(String groupName) { this.groupName = groupName; }

    public BigDecimal getScoreValue() { return scoreValue; }
    public void setScoreValue(BigDecimal scoreValue) { this.scoreValue = scoreValue; }

    public BigDecimal getCascadeScore() { return cascadeScore; }
    public void setCascadeScore(BigDecimal cascadeScore) { this.cascadeScore = cascadeScore; }

    public BigDecimal getTotalScore() { return totalScore; }
    public void setTotalScore(BigDecimal totalScore) { this.totalScore = totalScore; }

    public String getEventDesc() { return eventDesc; }
    public void setEventDesc(String eventDesc) { this.eventDesc = eventDesc; }

    public String getSourceType() { return sourceType; }
    public void setSourceType(String sourceType) { this.sourceType = sourceType; }

    public String getSourceLedger() { return sourceLedger; }
    public void setSourceLedger(String sourceLedger) { this.sourceLedger = sourceLedger; }

    public String getImportBatch() { return importBatch; }
    public void setImportBatch(String importBatch) { this.importBatch = importBatch; }

    public String getEvidenceFile() { return evidenceFile; }
    public void setEvidenceFile(String evidenceFile) { this.evidenceFile = evidenceFile; }

    public String getOrg() { return org; }
    public void setOrg(String org) { this.org = org; }
}
