package com.casic.missiles.dto.system;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>流程定义列表实体类<p>
 */
@ColumnWidth(35)
@HeadRowHeight(20)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
@Data
@ApiModel("流程定义")
public class FlowProcDefDTO implements Serializable {

    @ExcelProperty("流程编号")
    @ApiModelProperty("流程id")
    private String id;

    @ExcelProperty("流程名称")
    @ApiModelProperty("流程名称")
    private String name;

    //多个流程定义的版本不同，key相同
    @ApiModelProperty("流程key")
    private String flowKey;

    @ApiModelProperty("流程分类")
    private String category;

    //表单名称代表所属业务
    @ExcelProperty("关联业务")
    @ApiModelProperty("配置表单名称/所属业务")
    private String formName;

    @ApiModelProperty("配置表单id")
    private String formId;

    @ApiModelProperty("版本")
    private int version;

    @ApiModelProperty("部署ID")
    private String deploymentId;

    @ExcelProperty("流程状态（1:激活，2:中止）")
    @ApiModelProperty("流程定义状态:1激活2中止")
    private int suspensionState;

    @ApiModelProperty("部署时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date deploymentTime;

    @ApiModelProperty("流程负责人id")
    private String directorId;

    @ExcelProperty("流程负责人")
    @ApiModelProperty("流程负责人")
    private String directorName;

    @ExcelProperty("流程描述")
    @ApiModelProperty("表单描述/流程定义描述")
    private String formDesc;

}
