package com.casic.missiles.dto.finance;

import com.casic.missiles.annotation.DictCodeField;
import com.casic.missiles.constants.MeterDictCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @Description: 合同审批列表响应实体
 * @Author: wangpeng
 * @Date: 2023/3/31 10:05
 */
@Data
@ApiModel
public class AgreementApprovalListResponse {
    @ApiModelProperty(value = "主键id", dataType = "Long")
    private Long id;

    @ApiModelProperty(value = "合同编号", dataType = "String")
    private String agreementNo;

    @ApiModelProperty(value = "合同名字", dataType = "String")
    private String agreementName;

    @DictCodeField(message = "合同类型不合法", cacheName = MeterDictCode.AGREEMENT_TYPE)
    @ApiModelProperty(value = "合同类型-采购合同/业务合同等-字典code", dataType = "String")
    private String agreementType;

    @ApiModelProperty(value = "合同类型-采购合同/业务合同等-字典value", dataType = "String")
    private String agreementTypeName;

    @ApiModelProperty(value = "创建人id", dataType = "String")
    private String createUser;

    @ApiModelProperty(value = "创建人", dataType = "String")
    private String createUserName;

    @ApiModelProperty(value = "部门id-创建人所在部门", dataType = "String")
    private Long deptId;

    @ApiModelProperty(value = "部门-创建人所在部门名", dataType = "String")
    private String deptName;

    @ApiModelProperty(value = "预计签订日期/实际签订日期", dataType = "String")
    private String estimateSignDate;

    @ApiModelProperty(value = "合同金额（单位分）", dataType = "Integer")
    private Integer agreementAmount;

    @ApiModelProperty(value = "单位id-客户id（收入合同该字段为甲方单位，支出合同该字段为乙方单位）", dataType = "Integer")
    private Long customerId;

    @ApiModelProperty(value = "单位（收入合同该字段为甲方单位，支出合同该字段为乙方单位）", dataType = "Integer")
    private String firstParty;

    @ApiModelProperty(value = "创建时间", dataType = "String")
    private String createTime;

    @DictCodeField(message = "合同完成状态不合法", cacheName = MeterDictCode.AGREEMENT_STATUS)
    @ApiModelProperty(value = "合同完成状态-字典code", dataType = "String")
    private String status;

    @ApiModelProperty(value = "合同完成状态-字典value", dataType = "String")
    private String statusName;

    @ApiModelProperty(value = "审批状态类型-字典code", dataType = "String")
    private String approvalStatus;

    @ApiModelProperty(value = "审批状态类型-字典value", dataType = "String")
    private String approvalStatusName;

    @ApiModelProperty(value = "流程实例id", dataType = "String")
    private String processId;

    @ApiModelProperty(value = "任务id（同意、驳回等操作使用）", dataType = "String")
    private String taskId;

    @ApiModelProperty(value = "可选决策项（1同意驳回拒绝 2同意驳回 3同意拒绝，用于待审批列表同意/驳回/拒绝按钮展示）", dataType = "Integer")
    private Integer decisionItem;
}
