package com.ruoyi.web.base.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.web.base.domain.base.Base;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 生产完工报告表，存储生产完工报告的详细信息
 * </p>
 *
 * @author author
 * @since 2026-03-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("production_completion_report")
@ApiModel(value="ProductionCompletionReport对象", description="生产完工报告表，存储生产完工报告的详细信息")
public class ProductionCompletionReport  extends Base {

    private static final long serialVersionUID = 1L;



    @ApiModelProperty(value = "生产完工报告号")
    private String reportNumber;

    @ApiModelProperty(value = "生产类型")
    private String productionType;

    @ApiModelProperty(value = "生产车间")
    private String productionWorkshop;

    @ApiModelProperty(value = "生产完工日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completionDate;

    @ApiModelProperty(value = "单据状态（草稿、已提交、已批准）")
    private String documentStatus;

    @ApiModelProperty(value = "生产计划单号")
    private String productionPlanNumber;

    @ApiModelProperty(value = "物料编码")
    private String materialCode;

    @ApiModelProperty(value = "物料名称")
    private String materialName;

    @ApiModelProperty(value = "规格型号")
    private String specificationModel;

    @ApiModelProperty(value = "品种品类")
    private String varietyCategory;

    @ApiModelProperty(value = "品类级别")
    private String categoryGrade;

    @ApiModelProperty(value = "批次")
    private String batchNumber;

    @ApiModelProperty(value = "数量")
    private Integer quantity;

    @ApiModelProperty(value = "计量单位")
    private String measurementUnit;

    @ApiModelProperty(value = "辅助数量")
    private Integer auxiliaryQuantity;

    @ApiModelProperty(value = "辅助计量单位")
    private String auxiliaryMeasurementUnit;

    @ApiModelProperty(value = "合格数量")
    private Integer qualifiedQuantity;

    @ApiModelProperty(value = "不合格数量")
    private Integer unqualifiedQuantity;

    @ApiModelProperty(value = "仓库")
    private String warehouse;

    @ApiModelProperty(value = "入库数量")
    private Integer warehousingQuantity;

    @ApiModelProperty(value = "入库辅助数量")
    private Integer warehousingAuxiliaryQuantity;

    @TableField(exist =  false)
    private List<ProductionCompletionReportGoods> goods;


}
