package com.ruoyi.cs.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 资源、工单申请对象 cs_resource_order_apply
 *
 * @author ruoyi
 * @date 2024-04-23
 */
@Getter
@Setter
@ToString
public class CsResourceOrderApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 资源申请主键ID */
    private String applyId;

    /** 申请类型：0-资源，1-工单 */
    @Excel(name = "来源", readConverterExp = "0=资源申请,1=工单申请")
    private String applyType;

    /** 申请单号 */
    @Excel(name = "申请单号")
    private String applyNumber;

    /** 用户ID */
    private String memberUserId;

    /** 节点分配用户ID */
    private String currentNodeApprover;

    /** 资源分类ID */
    // @Excel(name = "资源分类ID")
    private String resourceClassId;

    /** 资源分类名 */
    @Excel(name = "分类")
    private String resourceClassName;

    /** 单位名称 */
    @Excel(name = "单位名称")
    private String companyName;

    /** 部门/院系D */
    // @Excel(name = "部门/院系D")
    private String deptId;

    /** 部门/院系名称 */
    @Excel(name = "部门/院系名称")
    private String deptName;

    /** 单位类别ID */
    // @Excel(name = "单位类别ID")
    private String companyClassId;

    /** 单位类别名 */
    @Excel(name = "单位类别名")
    private String companyClassName;

    /** 姓名/联系人 */
    @Excel(name = "姓名/联系人")
    private String name;

    /** 职称/职务 */
    @Excel(name = "职称/职务")
    private String professionalTitle;

    /** 职业 */
    @Excel(name = "职业")
    private String occupation;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** E-mail/联系邮箱 */
    @Excel(name = "E-mail/联系邮箱")
    private String email;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目来源 */
    @Excel(name = "项目来源")
    private String projectSource;

    /** 项目类别ID */
    // @Excel(name = "项目类别ID")
    private String projectClassId;

    /** 项目类别名 */
    @Excel(name = "项目类别")
    private String projectClassName;

    /** 项目周期起始 */
    // @Excel(name = "项目周期起始")
    private Date projectCycleBegin;

    /** 项目周期结束 */
    // @Excel(name = "项目周期结束")
    private Date projectCycleEnd;

    /** 专业领域 */
    // @Excel(name = "专业领域")
    private String majorField;

    /** 使用需求：0-专用，1-共享，2-急用 */
    // @Excel(name = "使用需求：0-专用，1-共享，2-急用")
    private String useDemand;

    /** 任务量估算 */
    @Excel(name = "任务量估算")
    private String workloadEstimate;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 合同附件 */
    @Excel(name = "合同附件")
    private String contractAnnex;

    /** 需求内容 */
    @Excel(name = "需求内容")
    private String demandContent;

    /** 工单标题 */
    @Excel(name = "工单标题")
    private String orderTitle;

    /** 工单类型ID */
    // @Excel(name = "工单类型ID")
    private String orderClassId;

    /** 工单类型名 */
    @Excel(name = "工单类型")
    private String orderClassName;

    /** 问题描述 */
    @Excel(name = "问题描述")
    private String problemDescribe;

    /** 申请状态：0-待确认，1-盖章材料待上传，2-待审批，3-审批拒绝，4-待审核，5-审核拒绝，6-待分配，7-进行中，8-驳回，9-已完成 */
    @Excel(name = "处理结果",readConverterExp = "0=待确认,1=盖章材料待上传,2=待审批,3=审批拒绝,4=待审核,5=审核拒绝,6=待分配,7=进行中,8=驳回,9=已完成")
    private String applyStatus;

    /** 网络类型：0-办公网络，1-VPN，2-特殊网络资源 */
    // @Excel(name = "网络类型：0-办公网络，1-VPN，2-特殊网络资源")
    private String networkType;

    /** 状态：0-正常，1-禁用 */
    // @Excel(name = "状态：0-正常，1-禁用")
    private String status;

    /** 草稿：0-否，1-是 */
    // @Excel(name = "草稿：0-否，1-是")
    private String isDraft;

    /** 排序 */
    // @Excel(name = "排序")
    private Integer sort;

    /** 是否上传：0-否，1-是 */
    // @Excel(name = "是否上传：0-否，1-是")
    private String isUpload;

    /** 电子版资源申请单路径 */
    // @Excel(name = "电子版资源申请单路径")
    private String uploadUrl;



    /** 并行编程的基础 */
    // @Excel(name = "并行编程的基础")
    private Integer parallelProgramming;

    /** 其他需求 */
    @Excel(name = "其他需求")
    private String otherDemand;

    /** 使用时间起始 */
    @Excel(name = "使用时间起始", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date useTimeBegin;

    /** 使用时间结束 */
    @Excel(name = "使用时间结束", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date useTimeEnd;

    /** 使用频率(0-每日、1-每周、2-每月)*/
    @Excel(name = "使用频率",readConverterExp = "0=每日,1=每周,2=每月")
    private Integer useFrequency;

    /** 使用频率详情*/
    @Excel(name = "使用频率详情")
    private String useFrequencyDetail;

    /** 工单说明 */
    @Excel(name = "工单说明")
    private String orderProfile;




    /** 审核拒绝原因 */
    // @Excel(name = "审核拒绝原因")
    private String refuseReason;


    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提交时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createAt;

    /** 修改时间 */
    // @Excel(name = "修改时间")
    private Date updateAt;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completeAt;

    /** 删除标记：0-正常，1-删除 */
    // @Excel(name = "删除标记：0-正常，1-删除")
    private String delFlag;

    /** 服务评价：0-未评价，1-很不满意，2-不太满意，3-一般，4-比较满意，5-很满意 */
    @Excel(name = "服务评价", readConverterExp = "0=未评价")
    private String evaluateStar;

    /** 评价内容 */
    private String content;

    /** 关键词 */
    private String keyword;

    /** 提交时间开始 */
    private String beginCreateAt;

    /** 提交时间结束 */
    private String endCreateAt;

    /** 工单账号 */
    @Excel(name = "工单账号")
    private String orderAccount;

    /** 处理人 */
    @Excel(name = "处理人")
    private String tacklePeople;

    /** 处理时长 */
    @Excel(name = "处理时长")
    private String tackleTime;

    /** 使用人员姓名 */
    private String userInfoName;

    /** 存储额度 */
    private String storageLimit;

    /** 存储额度单位 */
    private String storageLimitUnit;

    /** 处理时长 */
    private String responseTime;

    /** 工单类型id集合 */
    private List<String> orderClassIds;

    /** 资源类型id集合 */
    private List<String> resourceOrderClassIds;
    /**用户确认*/
    private Integer userConfirm;

    private String currentNodeApproverParams;

    /** 关闭工单(0-不关,1-关闭) */
    private Integer closeApply;

}
