package com.casic.missiles.dto.business.outsource;

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/28 11:28
 */
@Data
@ApiModel
public class OutsourceProjectApprovalListResponse {
    @ApiModelProperty(value = "主键id", dataType = "Long")
    private Long id;

    @ApiModelProperty(value = "分包项目编号", dataType = "String")
    private String projectNo;

    @ApiModelProperty(value = "分包项目名称", dataType = "String")
    private String projectName;

    @ApiModelProperty(value = "申请人名字", dataType = "String")
    private String applicantName;

    @ApiModelProperty(value = "验收人名字", dataType = "String")
    private String checkerName;

    @ApiModelProperty(value = "验收时间", dataType = "String")
    private String checkTime;

    @ApiModelProperty(value = "验收结论", dataType = "String")
    private String checkConclusion;

    @ApiModelProperty(value = "分包方名称", dataType = "String")
    private String outsourcerName;

    @DictCodeField(message = "分包原因不合法", cacheName = MeterDictCode.OUTSOURCE_REASON)
    @ApiModelProperty(value = "分包原因-字典code", dataType = "String")
    private String outsourceReason;

    @ApiModelProperty(value = "分包原因-字典value", dataType = "String")
    private String outsourceReasonName;

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

    @ApiModelProperty(value = "申请时间", dataType = "String")
    private String applicantTime;

//    @DictCodeField(message = "分包项目申请审批状态类型不合法", cacheName = MeterDictCode.APPROVAL_STATUS)
    @ApiModelProperty(value = "分包项目申请审批状态类型-字典code（查询验收流程时该状态无意义）", dataType = "String")
    private String applyApprovalStatus;

    @ApiModelProperty(value = "分包项目申请审批状态类型-字典value（查询验收流程时该状态无意义）", dataType = "String")
    private String applyApprovalStatusName;

//    @DictCodeField(message = "分包项目验收审批状态类型不合法", cacheName = MeterDictCode.APPROVAL_STATUS)
    @ApiModelProperty(value = "分包项目验收审批状态类型-字典code（查询申请流程时该状态无意义）", dataType = "String")
    private String checkApprovalStatus;

    @ApiModelProperty(value = "分包项目验收审批状态类型-字典value（查询申请流程时该状态无意义）", dataType = "String")
    private String checkApprovalStatusName;

    @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String")
    private String applyProcessId;

    @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String")
    private String checkProcessId;

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

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