package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 委托加工订单明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class EntrustOrderDetailRespVO {

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

    @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625")
    private Long orderId;

    @Schema(description = "发货工厂名称", example = "张三")
    @ExcelProperty("发货工厂名称")
    private String sendFactoryName;

    @Schema(description = "发货工厂编码")
    @ExcelProperty("发货工厂编码")
    private String sendFactoryNumber;

    @Schema(description = "发货库位名称", example = "李四")
    @ExcelProperty("发货库位名称")
    private String sendWarehouseName;

    @Schema(description = "发货库位编码")
    @ExcelProperty("发货库位编码")
    private String sendWarehouseNumber;

    @Schema(description = "收货工厂名称", example = "赵六")
    @ExcelProperty("收货工厂名称")
    private String receiveFactoryName;

    @Schema(description = "收货工厂编码")
    @ExcelProperty("收货工厂编码")
    private String receiveFactoryNumber;

    @Schema(description = "收货库位名称", example = "张三")
    @ExcelProperty("收货库位名称")
    private String receiveWarehouseName;
    @Schema(description = "收货库位编码")
    @ExcelProperty("收货库位编码")
    private String receiveWarehouseNumber;
    @Schema(description = "发货物料名称", example = "张三")
    @ExcelProperty("发货物料名称")
    private String sendMaterialName;
    @Schema(description = "发货物料编码", example = "李四")
    @ExcelProperty("发货物料编码")
    private String sendMaterialNumber;
    @Schema(description = "收货物料名称", example = "王五")
    @ExcelProperty("收货物料名称")
    private String receiveMaterialName;
    @Schema(description = "收货物料编码", example = "王五")
    @ExcelProperty("收货物料编码")
    private String receiveMaterialNumber;

    @Schema(description = "发货计量单位")
    @ExcelProperty("发货计量单位")
    private String sendUnit;
    @Schema(description = "收货计量单位")
    @ExcelProperty("收货计量单位")
    private String receiveUnit;

    @Schema(description = "暂估数量")
    @ExcelProperty("暂估数量")
    private BigDecimal forecastQuantity;

    @Schema(description = "含税单价", example = "24704")
    @ExcelProperty("含税单价")
    private BigDecimal inTaxUnitPrice;

    @Schema(description = "交货起始日期")
    @ExcelProperty("交货起始日期")
    private LocalDateTime deliveryCargoBeginDate;

    @Schema(description = "交货截止日期")
    @ExcelProperty("交货截止日期")
    private LocalDateTime deliveryCargoEndDate;

    @Schema(description = "是否启用")
    @ExcelProperty("是否启用")
    private String isEnable;

    @Schema(description = "短文本")
    @ExcelProperty("短文本")
    private String shortText;

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

    @Schema(description = "税码")
    @ExcelProperty("税码")
    private String taxNumber;
    //科目类别
    @Schema(description = "科目类别")
    @ExcelProperty("科目类别")
    private String accountingItemType;
    //MTRL_CPNT_NUM 物料组
    @Schema(description = "物料组")
    @ExcelProperty("物料组")
    private String materialGroup;
    //RET_ITM  退货标识
    @Schema(description = "退货标识")
    @ExcelProperty("退货标识")
    private String returnItem;
    //免费标识FREE_ITM
    @Schema(description = "免费标识")
    @ExcelProperty("免费标识")
    private String freeItem;
    //VNDB 外部行号
    @Schema(description = "外部行号")
    @ExcelProperty("外部行号")
    private String externalLineNumber;
    //ACTS_CTGR_DTL 科目分配
    @Schema(description = "科目分配")
    @ExcelProperty("科目分配")
    private String accountingItemAllocation;
    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;
    @Schema(description = "税率")
    @ExcelProperty("税率")
    private BigDecimal taxRate;
    @Schema(description = "回收率")
    @ExcelProperty("回收率")
    private BigDecimal recoveryRate;
    @Schema(description = "行项目号")
    @ExcelProperty("行项目号")
    private Integer lineNumber;

    @Schema(description = "删除标识")
    @ExcelProperty("删除标识")
    private Boolean deleted;
    @ExcelProperty("金属元素缩写")
    @Schema(description = "金属元素缩写")
    private String elementAbbreviation;
    @ExcelProperty("金属元素名称")
    @Schema(description = "金属元素名称")
    private String elementName;
    @ExcelProperty("金属元素编码")
    @Schema(description = "金属元素编码")
    private String elementNumber;

}