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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 区间费用计算结果VO
 *
 * @author syruan
 */
@Data
@ApiModel("区间费用计算结果VO")
public class PeriodCostResultVo {

    @ApiModelProperty(value = "协议ID")
    private Long agreementId;

    @ApiModelProperty(value = "协议编号")
    private String agreementCode;

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

    @ApiModelProperty(value = "往来单位名称")
    private String unitName;

    @ApiModelProperty(value = "工程标段ID")
    private Long projectId;

    @ApiModelProperty(value = "工程标段名称")
    private String projectName;

    @ApiModelProperty(value = "机具规格ID")
    private Long typeId;

    @ApiModelProperty(value = "机具规格名称")
    private String typeName;

    @ApiModelProperty(value = "规格型号")
    private String modelName;

    @ApiModelProperty(value = "机具ID")
    private Long maId;

    @ApiModelProperty(value = "机具编号")
    private String maCode;

    @ApiModelProperty(value = "租赁数量")
    private BigDecimal num;

    @ApiModelProperty(value = "租赁单价")
    private BigDecimal leasePrice;

    @ApiModelProperty(value = "采购单价 原值")
    private BigDecimal buyPrice;

    @ApiModelProperty(value = "冲账日期，必须区间计算开始日期与冲账日期一致才冲账")
    private Date markTime;

    @ApiModelProperty(value = "计算开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date calcStartTime;

    @ApiModelProperty(value = "计算结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date calcEndTime;

    @ApiModelProperty(value = "租赁天数")
    private Long leaseDays;

    @ApiModelProperty(value = "租赁费用")
    private BigDecimal leaseCost;

    @ApiModelProperty(value = "消耗费用")
    private BigDecimal consumeCost;

    @ApiModelProperty(value = "是否已结算 0-未结算 1-已结算")
    private String isSettled;

    @ApiModelProperty(value = "结算时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date settlementTime;

    @ApiModelProperty(value = "领料时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    @ApiModelProperty(value = "退料时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    @ApiModelProperty(value = "状态 0-在用 1-退回")
    private String status;

    @ApiModelProperty(value = "计量单位")
    private String mtUnitName;

    @ApiModelProperty(value = "月份ID")
    private Integer taskId;

    @ApiModelProperty(value = "机具类型 1工器具 2安全工器具")
    private Byte equipmentType;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "是否是消耗性物资 0否 1是")
    private Integer comsumable;
}
