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

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.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.List;

/**
 * 部门工作
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DepartmentWork {

    /**
     * 主键
     */
    private String id;
    /**
     * 年份
     */
    private String year;
    /**
     * 序号
     */
    private String serialNumber;
    /**
     * 大类
     */
    private String category;
    /**
     * 级别
     */
    private String level;
    /**
     * 工作项标记
     */
    private String workitemMarker;
    /**
     * 事项
     */
    private String matters;
    /**
     * 工作任务描述
     */
    private String jobDescription;
    /**
     * 来源
     */
    private String source;
    /**
     * 责任室id
     */
    private String workGroupId;
    /**
     * 责任室
     */
    private String workGroup;
     /**
     * 责任人ID（多人）
     */
    private String managerId;
    /**
     * 责任人名称（多人）
     */
    private String managerName;
    /**
     * 完成标志描述
     */
    private String completionSign;
    /**
     * 完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date completionTime;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    /**
     * 总体工作计划
     */
    private String overallWorkPlan;
    /**
     * 截至目前完成进度
     */
    private BigDecimal currentProgress;
    /**
     * 各项工作占比
     */
    private BigDecimal proportionJobs;
    /**
     * 进度权重
     */
    private BigDecimal progressWeight;
    /**
     * 计划进度
     */
    private BigDecimal planProgress;
    /**
     * 计划进度权重
     */
    private BigDecimal planProgressWeight;
    /**
     * 预留字段1
     */
    private String placeholderOne;
    /**
     * 预留字段2
     */
    private String placeholderTwo;
    /**
     * 预留字段3
     */
    private String placeholderThree;
    /**
     * 上级id
     */
    private String superiorId;
    private String superiorNumber;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    //月报使用字段
    private String annualStr;

    private String colorFlag;

    //添加的字段，不在表中，用于标签判断
    private Boolean submitFlag;

    //用于标签判断子类是否全部完成
    private Boolean flag;

    //本月目标
    private String monthTarget;

    //本月进展
    private String monthActual;

    private String check;

    private Boolean isFinish;

    private String month;

    private List<DepartmentWork> children;

    private List<DepartmentWorkProgress> monthChildren;

}
