package com.bonus.material.clz.domain.vo;

import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

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

/**
 * 结算信息对象 slt_agreement_info
 *
 * @author xsheng
 * @date 2024-10-16
 */
@Data
@ToString
@Accessors(chain = true)
public class MaterialSltAgreementInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 协议id */
    @Excel(name = "协议id")
    @ApiModelProperty(value = "协议id")
    private Long agreementId;


    /**
     * 协议编号
     */
    @Excel(name = "协议编号")
    @ApiModelProperty(value = "协议编号")
    private String agreementCode;

    /** 机具规格id */
    @Excel(name = "机具规格id")
    @ApiModelProperty(value = "机具规格id")
    private Long typeId;

    /**
     * 设备名称
     */
    private String typeName;
    /**
     * 规格型号
     */
    private String modelName;

    /**
     * 计量单位
     */
    private String mtUnitName;
    /**
     * 租赁天数
     */
    private String leaseDays;

    /** 机具id */
    @Excel(name = "机具id")
    @ApiModelProperty(value = "机具id")
    private Long maId;

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

    private Long userId;

    private Integer backNum;

    /** 领料时间 */
    @ApiModelProperty(value = "领料时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "领料时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 退料时间 */
    @ApiModelProperty(value = "退料时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退料时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 0在用1退回 */
    @Excel(name = "0在用1退回")
    @ApiModelProperty(value = "0在用1退回")
    private String status;

    /** 领料id */
    @Excel(name = "领料id")
    @ApiModelProperty(value = "领料id")
    private Long leaseId;

    /** 退料id */
    @Excel(name = "退料id")
    @ApiModelProperty(value = "退料id")
    private Long backId;

    /** 租赁单价 */
    @Excel(name = "租赁单价")
    @ApiModelProperty(value = "租赁单价")
    private BigDecimal leasePrice;

    /** 原值 */
    @Excel(name = "原值")
    @ApiModelProperty(value = "原值")
    private BigDecimal buyPrice;

    /** 是否结算 */
    @Excel(name = "是否结算")
    @ApiModelProperty(value = "是否结算")
    private String isSlt;

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

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long companyId;

    /** 领用类型（0工程1长期） */
    @Excel(name = "领用类型", readConverterExp = "0=工程1长期")
    private String leaseType;

    /** 调整天数 */
    @Excel(name = "调整天数")
    @ApiModelProperty(value = "调整天数")
    private Long trimDay;

    /**
     * 租赁天数
     */
    @Excel(name = "租赁天数")
    @ApiModelProperty(value = "租赁天数")
    private Long leaseDay;

    /**
     * 租赁费用
     */
    @Excel(name = "租赁费用")
    @ApiModelProperty(value = "租赁费用")
    private BigDecimal costs;


    /**
     * 项目名称
     */
    private String unitName;
    /**
     * 工程名称
     */
    private String projectName;

    @ApiModelProperty(value = "往来单位id")
    private Long unitId;

    private List<Long> unitIds;
    /**
     * 工程标段ID
     */
    @ApiModelProperty(value = "工程标段ID")
    private Long projectId;

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

    /**
     * 维修类型
     */
    private String repairType;

    /**
     * 是否收费
     */
    private String partType;

    /**
     * 费用id
     */
    private Long costId;

    /**
     * 维修状态
     */
    private String repairStatus;

    private String typeModelName;

    private String maCode;

    private Double useNum;

    private String keyWord;

    /** 审核人 */
    @ApiModelProperty(value = "审核人")
    private String auditor;

    /** 审核时间 */
    @ApiModelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;

    @ApiModelProperty(value = "领料人")
    private String leasePerson;

    private Long parentId;

    private Integer type;

    private Integer taskStatus;

    private String startDate;

    private String endDate;

    private Integer isApp;

    private BigDecimal leaseCost;
    private BigDecimal repairCost;
    private BigDecimal scrapCost;
    private BigDecimal loseCost;
    private BigDecimal reductionCost;

    //结算费用
    private BigDecimal totalCostAll;
}
