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 com.bonus.common.core.annotation.Excel;

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

/**
 * 区间费用汇总结果VO（按协议汇总）
 *
 * @author system
 * @date 2024-12-30
 */
@Data
@ApiModel("区间费用汇总结果VO")
public class PeriodCostSummaryVo {

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

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

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

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

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

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

    @ApiModelProperty(value = "协议签订日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    @ApiModelProperty(value = "是否已结算 0-未结算 1-已结算")
    @Excel(name = "结算状态", readConverterExp = "0=未结算,1=已结算")
    private String isSettled;

    @ApiModelProperty(value = "设备种类数量")
    @Excel(name = "设备种类数")
    private Integer equipmentTypeCount;

    @ApiModelProperty(value = "设备总数量")
    @Excel(name = "设备总数")
    private BigDecimal totalEquipmentCount;

    @ApiModelProperty(value = "总租赁天数")
    @Excel(name = "总租赁天数")
    private Long totalLeaseDays;

    @ApiModelProperty(value = "总租赁费用")
    @Excel(name = "总租赁费用")
    private BigDecimal totalLeaseCost;

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

    @ApiModelProperty(value = "平均日租金")
    @Excel(name = "平均日租金")
    private BigDecimal avgDailyRent;

    @ApiModelProperty(value = "查询区间开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "查询开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date queryStartDate;

    @ApiModelProperty(value = "查询区间结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "查询结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date queryEndDate;

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

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

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

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