package com.ruoyi.web.base.domain;

import java.math.BigDecimal;
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 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_record")
@ApiModel(value="ProductionRecord对象", description="生产记录单表，存储生产记录的详细信息")
public class ProductionRecord  extends Base {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "生产记录单日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date productionRecordDate;
    private String productionRecordNumber;

    @ApiModelProperty(value = "至（日期范围结束）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

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

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


    @ApiModelProperty(value = "动物标识")
    private String animalIdentification;

    @ApiModelProperty(value = "生猪批次")
    private String pigBatch;

    @ApiModelProperty(value = "级别")
    private String grade;

    @ApiModelProperty(value = "质检结果")
    private String qualityInspectionResult;

    @ApiModelProperty(value = "白条编号")
    private String whiteStripNumber;

    @ApiModelProperty(value = "加工类型")
    private String processingType;

    @ApiModelProperty(value = "二次计重重量")
    private String secondaryWeight;

    @ApiModelProperty(value = "三重计重重量")
    private String tertiaryWeight;

    @ApiModelProperty(value = "钩重/皮重")
    private String hookWeight;

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

    @ApiModelProperty(value = "生产扣分合计")
    private Integer productionDeductionTotal;

    @ApiModelProperty(value = "采购扣分合计")
    private Integer procurementDeductionTotal;

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

    @ApiModelProperty(value = "库存组织")
    private String inventoryOrganization;

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

    @ApiModelProperty(value = "完工状态")
    private String completionStatus;

    @ApiModelProperty(value = "采购员")
    private String purchaser;

    @ApiModelProperty(value = "采购部门")
    private String purchasingDepartment;

    @ApiModelProperty(value = "采购入库单号")
    private String purchasingReceiptNumber;

    @ApiModelProperty(value = "投料生产记录单的ID")
    private Integer feedingProductionRecordId;

    @ApiModelProperty(value = "结算方式")
    private String settlementMethod;

    @ApiModelProperty(value = "结算状态")
    private String settlementStatus;

    @ApiModelProperty(value = "生产入库单号")
    private String productionWarehousingNumber;

    @ApiModelProperty(value = "检验结果")
    private String inspectionResult;

    @ApiModelProperty(value = "待发货状态")
    private String deliveryStatus;

    @ApiModelProperty(value = "销售出库单单号")
    private String salesOutboundNumber;

    @ApiModelProperty(value = "销售订单号")
    private String salesOrderNumber;

    @ApiModelProperty(value = "发货日期")
    private LocalDate deliveryDate;

    @ApiModelProperty(value = "客户")
    private String customer;

    @ApiModelProperty(value = "锁定物流线")
    private String lockedLogisticsLine;

    @ApiModelProperty(value = "采购物料名称")
    private String procurementMaterialName;

    @ApiModelProperty(value = "采购品种")
    private String procurementVariety;

    @ApiModelProperty(value = "采购级别")
    private String procurementGrade;

    @ApiModelProperty(value = "扣重前重量")
    private String preDeductionWeight;

    @ApiModelProperty(value = "扣重比例")
    private BigDecimal deductionRatio;

    @ApiModelProperty(value = "加工工艺")
    private String processingTechnology;

    // 毛色
    private String coatColor;
    // 物料名称
    private String materialName;
    // 称重状态
    private String weighingStatus;
    // 初次计重时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date initialWeighingTime;
    // 物料编码
    private String materialCode;
    // 计量单位
    private String measurementUnit;
    // 辅助计量单位
    private String auxiliaryMeasurementUnit;
    // 辅数量
    private String auxiliaryQuantity;
    // 三重时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date tripleWeighingTime;
    // 来源类型
    private String sourceType;
    // 预冷重量
    private String preCoolingWeight;
    // 预冷时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preCoolingTime;
    // 猪蹄重量
    private String pigTrotterWeight;
    // 猪头重量
    private String pigHeadWeight;
    // 二次计重时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date secondaryWeighingTime;

}
