package com.infoepoch.pms.agent.domain.itworkbench.model.kpi;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AnnualKpi {

    private  String actualFlag;
    private String lastMonthActual;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 单位
     * @return
     */
    private String unit;

    private Boolean flag;

    private Boolean lastNotFillFlag;

    private String workGroupId;

    /**
     * 主键
     */
    private String id;
    /**
     * 年份
     */
    private Integer year;
    /**
     * 序号
     */
    private String serialNumber;
    /**
     * 类别
     */
    private String category;
    /**
     * 级别
     */
    private String level;
    /**
     * 所属部门
     */
    private String department;
    /**
     * 责任科室
     */
    private String workGroup;
    /**
     * 业绩指标
     */
    private String performanceIndicators;
    /**
     * 基准
     */
    private BigDecimal benchmark;
    /**
     * 量化指标（基本）
     */
    private BigDecimal quantitativeBasic;
    /**
     * 量化指标（挑战）
     */
    private BigDecimal quantitativeChallenge;
    /**
     * 年度目标说明
     */
    private String annualStatement;
    /**
     * 指标口径
     */
    private String indicatorsCaliber;
    /**
     * 取数来源方式
     */
    private String sourcesWay;
    /**
     * 责任人ID（多人）
     */
    private String managerUserId;
    /**
     * 责任人名称（多人）
     */
    private String managerUsername;
    /**
     * 计划完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date plansCompleteDate;
    /**
     * 总体工作计划
     */
    private String overallWorkPlan;
    /**
     * 当月指标是否完成
     */
    private String isMonthlyComplete;
    /**
     * 年度指标是否完成
     */
    private String isYearComplete;
    /**
     * 导入时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date recordTime;
    /**
     * 导入ID
     */
    private String createUserId;
    /**
     * 导入人姓名
     */
    private String createUsername;

    /**
     * 年度kpi
     */
    private Boolean isAnnual;
    /**
     * 预留字段2
     */
    private String placeholderTwo;
    /**
     * 预留字段3
     */
    private String placeholderThree;
    /**
     * 最后更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 上级id
     */
    private String superiorId;
    /**
     * 上级序号
     */
    private String superiorNumber;
    /**
     * 指标类型
     */
    private String finishType;
    /**
     * 子列表
     */
    private List<AnnualKpi> children;
    /**
     * 月目标值
     */
    private String target;
    /**
     * 月实际值
     */
    private String actual;

    private List<AnnualKpiProgress> progressList;
}