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

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

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author : 阮世耀
 * @version : 1.0
 * @PackagePath: com.bonus.material.push.domain
 * @CreateTime: 2025-02-06  10:01
 * @Description: i皖送费用推送导出专用
 * @since 2025-02-06
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IwsCostPushExportVo implements Serializable {

    private static final long serialVersionUID = -1473066593962126100L;

    private String id;

    // 协议号
    @Excel(name = "协议号", sort = 1)
    private String agreementCode;

    // 协议id
    private String agreementId;

    private String projectId;

    private String unitId;

    @Excel(name = "工程名称", sort = 3)
    private String projectName;

    private String projectCode;

    @Excel(name = "单位名称", sort = 2)
    private String unitName;

    // 物资类型
    private String typeName;

    // 规格型号
    private String modelName;

    // 物资类型id
    private Integer typeId;

    // 数量
    private String num;

    // 领用数量
    private BigDecimal leaseNum;

    // 领料日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime leaseDate;

    // 领用天数
    private Integer leaseDays;

    // 退料日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime backDate;

    @Excel(name = "租赁费用", sort = 5)
    private BigDecimal leaseMoney;

    @Excel(name = "退料费用", sort = 8)
    private BigDecimal lostMoney;

    @Excel(name = "报废费用", sort = 7)
    private BigDecimal scrapMoney;

    @Excel(name = "维修费用", sort = 6)
    private BigDecimal repairMoney;

    private BigDecimal leasePrice;

    private String time;

    // 月份
    @NotBlank(message = "月份不能为空")
    @Excel(name = "推送月份", sort = 4)
    private String month;

    private String type;

    // 原值
    private String buyPrice;

    // 是否推送
    @Excel(name = "是否推送", readConverterExp = "0=未推送,1=已推送")
    private String isPush;

    private Double money;

    private String year;

    // 是否结算
    @Excel(name = "是否结算", readConverterExp = "0=未结算,1=已结算", sort = 9)
    private Byte isSettlement = 0;

    // 结算时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime settlementTime;

    // 是否匹配
    private Byte isMatch = 0;

    private String userName;

    @ApiModelProperty(value = "审核状态")
    @Excel(name = "是否审核", readConverterExp = "0=未审核,1=已审核", sort = 10)
    private Byte checkStatus;

    // 推送备注
    private String pushRemark;

    private String companyId;

    // 开始时间
    private String startTime;

    // 结束时间
    private String endTime;

    // 是否删除 false未删除 true已删除
    private boolean delFlag = false;

}
