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

import com.bonus.common.core.annotation.Excel;
import com.bonus.material.settlement.domain.SltAgreementInfo;
import com.bonus.material.settlement.domain.SltAgreementReduce;
import com.bonus.material.settlement.domain.SltAgreementRelation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

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

/**
 * @author c liu
 * @date 2024/2/23
 */
@Data
@Accessors(chain = true)
public class SltInfoVo {

    /**
     * 结算单位
     */
    private String unitName;
    /**
     * 结算工程
     */
    private String projectName;
    /**
     * 租赁费用列表
     */
    List<SltAgreementInfo> leaseList;
    /**
     * 维修费用列表
     */
    List<SltAgreementInfo> repairList;
    /**
     * 报废费用列表
     */
    List<SltAgreementInfo> scrapList;
    /**
     * 丢失费用列表
     */
    List<SltAgreementInfo> loseList;

    /**
     * 减免费用列表
     */
    List<SltAgreementReduce> reductionList;

    List<SltAgreementRelation> relations;

    /**
     * 租赁费用小计
     */
    @ApiModelProperty(value = "租赁费用小计")
    private BigDecimal leaseCost;

    /**
     * 维修费用小计
     */
    @ApiModelProperty(value = "维修费用小计")
    private BigDecimal repairCost;

    /**
     * 报废费用小计
     */
    @ApiModelProperty(value = "报废费用小计")
    private BigDecimal scrapCost;

    /**
     * 丢失费用小计
     */
    @ApiModelProperty(value = "丢失费用小计")
    private BigDecimal loseCost;

    /**
     * 减免费用小计
     */
    @ApiModelProperty(value = "减免费用小计")
    private BigDecimal reductionCost;

    /**
     * 合计
     */
    @ApiModelProperty(value = "合计")
    private BigDecimal totalCostAll;

    @Excel(name = "创建人")
    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

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

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

    /** 协议 ids */

    @ApiModelProperty(value = "协议ids")
    private Long[] agreementIds;

    private Long id; //申请id

    String cost;

    /**
     * 是否结算 0未结算 1全部结算 2部分结算
     */
    private Integer isSlt;

    /**
     * 结算物资类型 1工器具 2安全工器具
     */
    private Integer settlementType;

    @ApiModelProperty(value = "申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applyTime;

}
