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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.infoepoch.pms.agent.common.utils.SnowFlake;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

import javax.validation.ValidationException;
import java.util.*;
import java.util.stream.Collectors;

/**
 * 部门纪要
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DepartmentMinutes {

    /**
     * 主键
     */
    private String id;
    /**
     * 录入时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date recordTime;
    /**
     * 排序序号
     */
    private Integer serialNumber;
    /**
     * 会议年份
     */
    private String year;
    /**
     * 会议月份
     */
    private String month;
    /**
     * 会议类别
     */
    private String meetingCategory;
    /**
     * 内容
     */
    private String content;
    /**
     * 督办标识
     */
    private Boolean superviseFlag;
    /**
     * 计划完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date planCompletionTime;
    /**
     * 要求完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date requireCompletionTime;
    /**
     * 反馈责任室
     */
    private String feedbackResponsibility;
    /**
     * 关联责任室，能力拓展室
     */
    private String cooperateOffice;
    /**
     * 责任人ID（多个）
     */
    private String managerId;
    /**
     * 责任人名称（多个）
     */
    private String managerName;
    /**
     * 最新执行结果（已完成/推进中/待确认）
     */
    private String latestResult;
    /**
     * 创建人ID
     */
    private String createUserId;
    /**
     * 创建人名称
     */
    private String createUserName;
    /**
     * 文号
     */
    private String documentNumber;
    /**
     * 预留字段2
     */
    private String placeholderTwo;
    /**
     * 预留字段3
     */
    private String placeholderThree;
    /**
     * 进度列表
     */
    private List<DepartmentMinutesProgress> progressList;
    /**
     * 上级id
     */
    private String superiorId;

    /**
     * 交办人id
     */
    private String assignId;
    /**
     * 交办人
     */
    private String assignName;
    /**
     * 完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date finishTime;
}
