package com.zt.plat.module.qms.resource.material.controller.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 物料通用流程明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MaterialLifecycleDetailRespVO {

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

    @Schema(description = "父id", example = "6294")
    @ExcelProperty("父id")
    private Long lifecycleId;

    @Schema(description = "工段或批次父id", example = "6294")
    @ExcelProperty("工段或批次父id")
    private Long gongParentId;

    @Schema(description = "物料大类id", example = "31283")
    @ExcelProperty("物料大类id")
    private Long productId;

    @Schema(description = "物料关联的样品大类")
    private String productSampleIds;

    @Schema(description = "物料大类名称")
    @ExcelProperty("物料大类名称")
    private String productName;

    @Schema(description = "物料大类编码")
    @ExcelProperty("物料大类编码")
    private String productCode;

    @Schema(description = "单位")
    @ExcelProperty("单位")
    private String unit;

    @Schema(description = "保质期")
    @ExcelProperty("保质期")
    private Integer due;

    @Schema(description = "物料规格")
    @ExcelProperty("物料规格")
    private String productSpecification;

    @Schema(description = "物料大类型号")
    @ExcelProperty("物料大类型号")
    private String productModelNo;

    @Schema(description = "物料批次id", example = "12948")
    @ExcelProperty("物料批次id")
    private Long batchId;

    @Schema(description = "物料批次号")
    @ExcelProperty("物料批次号")
    private String batchNo;

    @Schema(description = "批次工段id", example = "21334")
    @ExcelProperty("批次工段id")
    private Long batchGongduanId;

    @Schema(description = "批次工段-部门名称")
    @ExcelProperty("批次工段-部门名称")
    private String assignDepartmentName;

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

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

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

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

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

    @Schema(description = "是否检化验,1-是，0-否")
    @ExcelProperty("是否检化验,1-是，0-否")
    private Integer assayFlag;

    @Schema(description = "检化验信息")
    private MaterialCorrelationAssayRespVO assayInfo;

    @Schema(description = "检化验id")
    private Long assayId;

    /*@Schema(description = "检化验样品大类")
    private Long assaySampleId;

    @Schema(description = "检化验检测项")
    private List<Long> assayItemIds;*/

    @Schema(description = "物料实例id", example = "968")
    @ExcelProperty("物料实例id")
    private Long infomationId;

    @Schema(description = "物料实例编号")
    @ExcelProperty("物料实例编号")
    private String infomationCode;

    @Schema(description = "物料实例名称")
    @ExcelProperty("物料实例名称")
    private String infomationName;

    @Schema(description = "物料实例规格")
    @ExcelProperty("物料实例规格")
    private String infomationSpecification;

    @Schema(description = "物料实例型号")
    @ExcelProperty("物料实例型号")
    private String infomationModelNo;

    @Schema(description = "物料实例单位")
    @ExcelProperty("物料实例单位")
    private String infomationUnit;

    @Schema(description = "批次或工段数量")
    @ExcelProperty("批次或工段数量")
    private BigDecimal inboundQuantity;

    @Schema(description = "批次或工段可用数量")
    @ExcelProperty("批次或工段可用数量")
    private BigDecimal remaineQuantity;

    @Schema(description = "影响数量", example = "15772")
    @ExcelProperty("影响数量")
    private String influenceCount;

    @Schema(description = "已完成数量", example = "15772")
    @ExcelProperty("已完成数量")
    private Long finishedCount;

    @Schema(description = "合格/通过数量", example = "15772")
    @ExcelProperty("合格/通过数量")
    private BigDecimal qualifiedCount;

    @Schema(description = "不合格/拒绝数量", example = "15772")
    @ExcelProperty("不合格/拒绝数量")
    private BigDecimal unqualifiedCount;

    @Schema(description = "明细操作类型,【字典】【jy_material_lifecycle_detail_bsn_type】", example = "1")
    @ExcelProperty("明细操作类型,【字典】【jy_material_lifecycle_detail_bsn_type】")
    private String businessType;

    @Schema(description = "处理状态,0未处理，1已处理", example = "2")
    @ExcelProperty("处理状态,0未处理，1已处理")
    private Integer treatmentStatus;

    @Schema(description = "表单数据,表单数据")
    @ExcelProperty("表单数据,表单数据")
    private String formData;

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

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

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

}