package com.zt.plat.module.qms.business.bus.controller.vo;

import com.zt.plat.module.qms.core.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 样品调拨 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BusinessSampleDispatchRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24883")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "主管部门id", example = "14119")
    @ExcelProperty("主管部门id")
    private Long mainDepartmentId;

    @Schema(description = "主管部门名称", example = "王五")
    @ExcelProperty("主管部门名称")
    private String mainDepartmentName;

    @Schema(description = "申请人")
    @ExcelProperty("申请人")
    private String applyUser;

    @Schema(description = "申请人id", example = "20497")
    @ExcelProperty("申请人id")
    private Long applyUserId;

    @Schema(description = "申请部门")
    @ExcelProperty("申请部门")
    private String applyDepartment;

    @Schema(description = "申请部门id", example = "28216")
    @ExcelProperty("申请部门id")
    private Long applyDepartmentId;

    @Schema(description = "申请时间")
    @ExcelProperty("申请时间")
    private LocalDateTime applyTime;

    @Schema(description = "申请原因")
    @ExcelProperty("申请原因")
    private String applyContent;

    @Schema(description = "库管员")
    @ExcelProperty("库管员")
    private String warehouseUser;

    @Schema(description = "库管员ID", example = "15295")
    @ExcelProperty("库管员ID")
    private Long warehouseUserId;

    @Schema(description = "提交状态，用于无申请调拨,0-未提交；1-已提交", example = "2")
    @ExcelProperty("提交状态，用于无申请调拨,0-未提交；1-已提交")
    private String submitStatus;

    @Schema(description = "流程实例id", example = "25006")
    @ExcelProperty("流程实例id")
    private String flowInstanceId;

    @Schema(description = "流程审批状态", example = "1")
    @ExcelProperty("流程审批状态")
    @Dict(dicCode = "flow_status")
    private String flowStatus;

    @Schema(description = "完成状态", example = "1")
    @ExcelProperty("完成状态")
    private String finishStatus;

    @Schema(description = "取消状态", example = "1")
    @ExcelProperty("取消状态")
    private String cancelStatus;

    @Schema(description = "所属部门")
    @ExcelProperty("所属部门")
    private String systemDepartmentCode;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "仓库名称")
    @ExcelProperty("仓库名称")
    private String warehouseName;

    @Schema(description = "仓库编码")
    @ExcelProperty("仓库编码")
    private String warehouseCode;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}