package cn.iocoder.yudao.module.mes.controller.admin.zjtask.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 质量管理-检验任务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ZjTaskRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31746")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("单号")
    private String code;

    @Schema(description = "名称", example = "王五")
//    @ExcelProperty("名称")
    private String name;

    @Schema(description = "质检分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty(value = "质检分类", converter = DictConvert.class)
    @DictFormat("mes_zj_task_type")
    private String type;

    @Schema(description = "检验方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3630")
    @ExcelProperty("检验方案id")
    private Long schemaId;

    @Schema(description = "检验方案名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @ExcelProperty("检验方案名称")
    private String schemaName;

    @Schema(description = "备注", example = "你说的对")
//    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "工单", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long ticket;

    @Schema(description = "工单")
    @ExcelProperty("生产计划")
    private String ticketCode;

    @Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty(value = "工序", converter = DictConvert.class)
    @DictFormat("mes_org_type")
    private String orgType;

    @Schema(description = "负责人id", example = "6442")
//    @ExcelProperty("负责人id")
    private Long managerId;

    @Schema(description = "负责人名称", example = "张三")
    @ExcelProperty("负责人名称")
    private String managerName;

    @Schema(description = "执行人id", example = "10505")
//    @ExcelProperty("执行人id")
    private Long executorId;

    @Schema(description = "执行人名称", example = "王五")
    @ExcelProperty("执行人名称")
    private String executorName;

    @Schema(description = "状态", example = "1")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat("job_status")
    private Integer status;

    @Schema(description = "结果")
//    @ExcelProperty("结果（0=待完成，1=通过，2=不通过）")
    private String result;

    @Schema(description = "结果")
    @ExcelProperty("结果")
    private String resultName;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    @ColumnWidth(20)
    private LocalDateTime createTime;

    @Schema(description = "执行时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("执行时间")
    @ColumnWidth(20)
    private LocalDateTime executeTime;

     @Schema(description = "取消原因")
     @ExcelProperty("取消原因")
     private String cancelReason;

}