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

import cn.hutool.json.JSONObject;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

@Schema(description = "管理后台 - 物料台账 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MaterialInfomationLedgerRespVO {

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

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

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

    @Schema(description = "公司id")
    @ExcelProperty("公司id")
    private Long companyId;

    @Schema(description = "公司 - 取上级部门")
    @ExcelProperty("单位")
    private String companyName;

    @Schema(description = "库存数量")
    @ExcelProperty("库存数量")
    private BigDecimal inventoryQuantity;

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

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

    @Schema(description = "工段id")
    @ExcelProperty("工段id")
    private Long gongduanId;

    @Schema(description = "工段部门id")
    @ExcelProperty("工段部门id")
    private Long departmentId;

    @Schema(description = "工段分配部门名称")
    @ExcelProperty("工段分配部门名称")
    private String departmentName;

    @Schema(description = "工段部门库存数量")
    @ExcelProperty("工段部门库存数量")
    private BigDecimal departmentInventoryQuantity;

    @Schema(description = "存放位置", example = "13603")
    @ExcelProperty("存放位置")
    private Long locationId;

    @Schema(description = "存放位置编码")
    @ExcelProperty("存放位置编码")
    private String locationCode;

    @Schema(description = "存放位置")
    @ExcelProperty("存放位置")
    private String locationName;

    @Schema(description = "规格")
    @ExcelProperty("规格")
    private String specification;

    @Schema(description = "型号")
    @ExcelProperty("型号")
    private String modelNo;

    @Schema(description = "制造商")
    @ExcelProperty("制造商")
    private String manufacturer;

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

    @Schema(description = "大类其他配置")
    @ExcelProperty("大类其他配置")
    private JSONObject productCustomConfig;

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

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

}