package com.bonus.material.basic.domain.report;

import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 领料出库报表
 * @Author ma_sh
 * @create 2025/1/22 14:58
 */
@Data
public class LeaseOutInfo {

    @ApiModelProperty(value = "是否导出 0 是，1 否")
    private Integer isExport;

    @ApiModelProperty(value = "父级id")
    private Long parentId;

    @ApiModelProperty(value = "物资类型id")
    private Long typeId;

    @ApiModelProperty(value = "物资名称")
    @Excel(name = "物资名称")
    private String typeName;

    @ApiModelProperty(value = "规格型号")
    @Excel(name = "规格型号")
    private String typeModelName;

    @ApiModelProperty(value = "计量单位")
    @Excel(name = "计量单位")
    private String unitName;

    @ApiModelProperty(value = "领料数量")
    @Excel(name = "领料数量")
    private BigDecimal leaseNum;

    @ApiModelProperty(value = "出库数量")
    @Excel(name = "出库数量")
    private BigDecimal outNum;

    @ApiModelProperty(value = "待出库数量")
    @Excel(name = "待出库数量")
    private BigDecimal pendingOutNum;

    @ApiModelProperty(value = "领料日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "领料日期", width = 20, dateFormat = "yyyy-MM-dd")
    private Date leaseTime;

    @ApiModelProperty(value = "出库日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "出库日期", width = 20, dateFormat = "yyyy-MM-dd")
    private Date outTime;

    @ApiModelProperty(value = "领料单位")
    @Excel(name = "领料单位")
    private String leaseUnitName;

    @ApiModelProperty(value = "领料工程")
    @Excel(name = "领料工程")
    private String leaseProjectName;

    @ApiModelProperty(value = "领料人")
    @Excel(name = "领料人")
    private String leasePersonName;

    @ApiModelProperty(value = "出库人")
    @Excel(name = "出库人")
    private String outPersonName;

    @ApiModelProperty(value = "领料单号")
    @Excel(name = "领料单号")
    private String code;

    @ApiModelProperty(value = "管理方式")
    private String manageType;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty(value = "关键字")
    private String keyWord;

    @ApiModelProperty(value = "任务类型")
    private int taskType;

    @ApiModelProperty(value = "用户id")
    private Long userId;
}
