package cn.ezhizao.project.business.outsourceBalanceAccount.domain;

import java.math.BigDecimal;
import java.util.Date;

import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
import cn.ezhizao.framework.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;


/**
 * 外协结算对象 biz_outsource_balance_account
 *
 * @author ezhizao
 * @date 2024-11-25
 */
@Data
@TableName(value = "biz_outsource_balance_account")
public class BizOutsourceBalanceAccount extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 租户（厂别）id */
    @ApiModelProperty(value = "${comment}")
    private Long tenantId;

    /** 外协商id */
    @ApiModelProperty(value = "${comment}")
    private Long supplierId;

    /** 外协商名称 */
    @Excel(name = "外协商名称")
    @ApiModelProperty(value = "外协商名称")
    private String supplierName;

    /** 外协商code */
    @Excel(name = "外协商code")
    @ApiModelProperty(value = "外协商code")
    private String supplierCode;

    /** 外协单外键 */
    @ApiModelProperty(value = "外协商code")
    private Long outsourceOrderId;

    /** 外协单明细外键 */
    @ApiModelProperty(value = "外协商code")
    private Long outsourceOrderDetailId;

    /** 外协明细工序外键 */
    @ApiModelProperty(value = "外协商code")
    private Long outsourceOrderDetailProcessId;

    /** 外协质检外键 */
    @ApiModelProperty(value = "外协商code")
    private Long processInspectionId;

    /** 外协收回明细外键 */
    @ApiModelProperty(value = "外协商code")
    private Long returnReceiptDetailId;

    /** 外协收回单外键 */
    @ApiModelProperty(value = "外协商code")
    private Long returnReceiptId;

    /** 报工外键 */
    @ApiModelProperty(value = "外协商code")
    private Long dayworkId;

    /** 报工明细外键 */
    @ApiModelProperty(value = "外协商code")
    private Long dayworkItemId;

    /** 0：无结算方式；1：按支结算；2：按炉结算 */
    @Excel(name = "0：无结算方式；1：按支结算；2：按炉结算")
    @ApiModelProperty(value = "0：无结算方式；1：按支结算；2：按炉结算")
    private String settlementType;

    /** 批次id */
    @ApiModelProperty(value = "0：无结算方式；1：按支结算；2：按炉结算")
    private Long lotId;

    /** 批次号 */
    @Excel(name = "批次号")
    @ApiModelProperty(value = "批次号")
    private String lotCode;

    /** 产品id */
    @ApiModelProperty(value = "批次号")
    private Long productId;

    /** 产品编码 */
    @Excel(name = "产品编码")
    @ApiModelProperty(value = "产品编码")
    private String productCode;

    /** 产品描述 */
    @Excel(name = "产品描述")
    @ApiModelProperty(value = "产品描述")
    private String productDescription;

    /** 工艺id（通过工艺id，获取版本号） */
    @ApiModelProperty(value = "产品描述")
    private Long technologicalProcessId;

    /** 工艺版本A,B,C */
    @Excel(name = "工艺版本A,B,C")
    @ApiModelProperty(value = "工艺版本A,B,C")
    private String technologyVersion;

    /** 工艺版本明细id */
    @ApiModelProperty(value = "工艺版本A,B,C")
    private Long technologicalProcessDetailId;

    /** 工序id */
    @ApiModelProperty(value = "工艺版本A,B,C")
    private Long processId;

    /** 工序简称 */
    @Excel(name = "工序简称")
    @ApiModelProperty(value = "工序简称")
    private String processAlias;

    /** 工序编码 */
    @Excel(name = "工序编码")
    @ApiModelProperty(value = "工序编码")
    private String processCode;

    /** =seq1(2位)+seq2(1位)+0(第4位用于单批单改) */
    @Excel(name = "=seq1(2位)+seq2(1位)+0(第4位用于单批单改)")
    @ApiModelProperty(value = "=seq1(2位)+seq2(1位)+0(第4位用于单批单改)")
    private String processStepNumber;

    /** 产品数 */
    @Excel(name = "产品数")
    @ApiModelProperty(value = "产品数")
    private Long productNum;

    /** 投产数 */
    @Excel(name = "投产数")
    @ApiModelProperty(value = "投产数")
    private Long productionNum;

    /** 发出数 */
    @Excel(name = "发出数")
    @ApiModelProperty(value = "发出数")
    private Long outputNum;

    /** 合格数 */
    @Excel(name = "合格数")
    @ApiModelProperty(value = "合格数")
    private Long receiptNum;

    /** 工序单价 */
    @Excel(name = "工序单价")
    @ApiModelProperty(value = "工序单价")
    private BigDecimal processPrice;

    /** 补差额 */
    @Excel(name = "补差额")
    @ApiModelProperty(value = "补差额")
    private BigDecimal fillDifferencePrice;

    /** 其他扣款 */
    @Excel(name = "其他扣款")
    @ApiModelProperty(value = "其他扣款")
    private BigDecimal otherCost;

    /** 实投料量 */
    @Excel(name = "实投料量")
    @ApiModelProperty(value = "实投料量")
    private BigDecimal actualInventory;

    /** 料损数量 */
    @Excel(name = "料损数量")
    @ApiModelProperty(value = "料损数量")
    private Long materialLoss;

    /** 扣料金额 */
    @Excel(name = "扣料金额")
    @ApiModelProperty(value = "扣料金额")
    private BigDecimal materialLossAmount;

    /** 应得金额 */
    @Excel(name = "应得金额")
    @ApiModelProperty(value = "应得金额")
    private BigDecimal planAmount;

    /** 实得金额 */
    @Excel(name = "实得金额")
    @ApiModelProperty(value = "实得金额")
    private BigDecimal acutalAmount;

    /** 含税金额 */
    @Excel(name = "含税金额")
    @ApiModelProperty(value = "含税金额")
    private BigDecimal taxAmount;

    /** 运费 */
    @Excel(name = "运费")
    @ApiModelProperty(value = "运费")
    private BigDecimal freightAmount;

    /** 材料单价 */
    @Excel(name = "材料单价")
    @ApiModelProperty(value = "材料单价")
    private BigDecimal materialPrice;

    /** 销售单价 */
    @Excel(name = "销售单价")
    @ApiModelProperty(value = "销售单价")
    private BigDecimal salePrice;

    /** 废品单价 */
    @Excel(name = "废品单价")
    @ApiModelProperty(value = "废品单价")
    private BigDecimal wastePrice;

    /** 箱数 */
    @Excel(name = "箱数")
    @ApiModelProperty(value = "箱数")
    private Long carrierNum;

    /** 工序序号 */
    @Excel(name = "工序序号")
    @ApiModelProperty(value = "工序序号")
    private Long processSort;

    /** 结算日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结算日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结算日期")
    private Date checkoutDate;

    /** 审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核日期")
    private Date auditDate;

    /** 收回日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收回日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "收回日期")
    private Date returnDate;

    /** 收回单号 */
    @Excel(name = "收回单号")
    @ApiModelProperty(value = "收回单号")
    private String returnNo;

    /** 发出单号 */
    @Excel(name = "发出单号")
    @ApiModelProperty(value = "发出单号")
    private String outsourceNo;

    /** 炉数 */
    @Excel(name = "炉数")
    @ApiModelProperty(value = "炉数")
    private Long furnaceNum;

    /** 检查日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检查日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "检查日期")
    private Date checkDate;

    /** 质检单号 */
    @Excel(name = "质检单号")
    @ApiModelProperty(value = "质检单号")
    private String inspectionNo;

    /** 料损率 */
    @Excel(name = "料损率")
    @ApiModelProperty(value = "料损率")
    private BigDecimal materialLossRatio;

    /** 是否有表面处理 */
    @Excel(name = "是否有表面处理")
    @ApiModelProperty(value = "是否有表面处理")
    private String surfaceTreatment;

    /** 长度 */
    @Excel(name = "长度")
    @ApiModelProperty(value = "长度")
    private BigDecimal length;

    /** 材料直径 */
    @Excel(name = "材料直径")
    @ApiModelProperty(value = "材料直径")
    private BigDecimal materialDiameter;

    /** 公差 */
    @Excel(name = "公差")
    @ApiModelProperty(value = "公差")
    private BigDecimal tolerance;

    /** 利用率 */
    @Excel(name = "利用率")
    @ApiModelProperty(value = "利用率")
    private BigDecimal utilizationRatio;

    /** 币种 */
    @Excel(name = "币种")
    @ApiModelProperty(value = "币种")
    private String currency;

    /** 税率 */
    @Excel(name = "税率")
    @ApiModelProperty(value = "税率")
    private BigDecimal taxRate;

    /** 年 */
    @Excel(name = "年")
    @ApiModelProperty(value = "年")
    private String year;

    /** 月 */
    @Excel(name = "月")
    @ApiModelProperty(value = "月")
    private String month;

    /** 废品价类别 */
    @Excel(name = "废品价类别")
    @ApiModelProperty(value = "废品价类别")
    private String wastePriceCategory;

    /** 材料编码 */
    @Excel(name = "材料编码")
    @ApiModelProperty(value = "材料编码")
    private String rawMaterialCode;

    /** 密度 */
    @Excel(name = "密度")
    @ApiModelProperty(value = "密度")
    private BigDecimal density;

    /** 形状 */
    @Excel(name = "形状")
    @ApiModelProperty(value = "形状")
    private String shape;

    /** 类别 */
    @Excel(name = "类别")
    @ApiModelProperty(value = "类别")
    private String type;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private Integer status;

    /** 是否是废品回用(0:否；1：是) */
    @Excel(name = "是否是废品回用(0:否；1：是)")
    @ApiModelProperty(value = "是否是废品回用(0:否；1：是)")
    private Integer isWasteRecycling;

    /** 是否修改(0 否 ，1 是)单批单改；多批单改；回退 */
    @Excel(name = "是否修改(0 否 ，1 是)单批单改；多批单改；回退")
    @ApiModelProperty(value = "是否修改(0 否 ，1 是)单批单改；多批单改；回退")
    private Integer isAmend;

}
