package com.yuchen.saas.parking.charge.api.vo.charge;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.*;
import com.thinkunion.park.service.common.enums.parking.EnergyTypeEnum;
import com.thinkunion.park.service.common.enums.parking.VehicleTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.nest.springwrap.core.tool.utils.Func;
import org.nest.springwrap.core.tool.utils.StringPool;

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

/**
 * @Description 月卡导出Excel
 */
@Data
@HeadStyle(horizontalAlignment = HorizontalAlignment.CENTER)
@HeadRowHeight(25)
@ContentStyle(horizontalAlignment = HorizontalAlignment.CENTER)
@ColumnWidth(12)
@ContentRowHeight(15)
@HeadFontStyle(fontHeightInPoints =9)
@ExcelIgnoreUnannotated
public class SpcChargeBillExcelVo {

    @ExcelProperty("序号")
    @ApiModelProperty("序号")
    private Integer order;

    @ExcelProperty("电站编号")
    @ApiModelProperty(name = "spcStationName", value = "电站名称")
    private String spcStationName;
    /**
     * 车牌
     */
    @ExcelProperty("车牌")
    @ApiModelProperty(name = "plateNo", value = "车牌")
    private String plateNo;


    /**
     * 充电终端id
     */
    @ExcelProperty("充电终端编号")
    @ApiModelProperty(name = "chargeTerminalId", value = "充电终端id")
    private Long chargeTerminalId;

    /**
     * 终端编号
     */
    @ExcelProperty("终端编号")
    @ApiModelProperty(name = "terminalNo", value = "终端编号")
    private String terminalNo;
    @ExcelProperty("终端名称")
    @ApiModelProperty(name = "terminalName", value = "终端名称")
    private String chargeTerminalName;
    /**
     * 服务费,单位元,两位小数
     */
    @ExcelProperty("服务费")
    @ApiModelProperty(name = "serviceCharge", value = "服务费,单位元,两位小数")
    private BigDecimal serviceCharge;
    @ExcelProperty("订单序列号")
    @ApiModelProperty(name = "chargeSerialNumber", value = "充电桩平台充电序列号")
    private String chargeSerialNumber;
    @ApiModelProperty(name = "chargeStatus", value = "充电状态")
    private Integer chargeStatus;
    @ExcelProperty("充电状态")
    @ApiModelProperty(name = "chargeStatusDesc", value = "充电状态")
    private String chargeStatusDesc;
    @ApiModelProperty(name = "billStatus", value = "订单状态 账单状态：0-未结清状态，1-已结算（已出停车场）")
    private Integer billStatus;
    @ExcelProperty("账单状态")
    @ApiModelProperty(name = "billStatusDesc", value = "订单状态 账单状态：0-未结清状态，1-已结算（已出停车场）")
    private String billStatusDesc;
    /**
     * 充电方式:0x01 金额	0x02 电量	0x03 时间
     */
    @ExcelProperty("预设金额")
    private Float chargeValue;
    /**
     * 充电开始时间
     */
    @ExcelProperty("充电开始时间")
    @ApiModelProperty(name = "chargeStartTime", value = "充电开始时间")
    private Date chargeStartTime;
    /**
     * 充电结束时间
     */
    @ExcelProperty("充电结束时间")
    @ApiModelProperty(name = "chargeEndTime", value = "充电结束时间")
    private Date chargeEndTime;
    /**
     * 充电发起时间
     */
    /**
     * 充电总电量:单位:kw
     */
    @ApiModelProperty(name = "totalChargingDuration", value = "充电总时长:单位:秒")
    private Integer totalChargingDuration;
    @ExcelProperty("充电时长")
    @ApiModelProperty(name = "totalChargingDurationStr", value = "充电总时长:单位:秒")
    private String totalChargingDurationStr;
    /**
     * 充电总时长:单位:秒
     */
    @ExcelProperty("充电电量")
    @ApiModelProperty(name = "totalChargingElectricity", value = "充电总电量:单位:kw")
    private Float totalChargingElectricity;
    /**
     * 充电总费用
     */
    @ExcelProperty("充电费用")
    @ApiModelProperty(name = "totalCharge", value = "充电总费用")
    private BigDecimal totalCharge;
    /**
     * 充电停止原因
     */
    @ExcelProperty("充电停止原因")
    @ApiModelProperty(name = "chargeStopReason", value = "充电停止原因")
    private String chargeStopReason;

    /**
     * 应收金额（最大长度8） 单位：分
     */
    @ExcelProperty("应收金额 单位：分")
    @ApiModelProperty(name = "supposeCost", value = "应收金额（最大长度8） 单位：分")
    private BigDecimal supposeCost;
    /**
     * 已支付金额（最大长度8） 单位：分
     */
    @ExcelProperty("已支付金额 单位：分")
    @ApiModelProperty(name = "paidCost", value = "已支付金额（最大长度8） 单位：分")
    private BigDecimal paidCost;
    /**
     * 账单总金额（最大长度8） 单位：分
     */
    @ExcelProperty("账单总金额 单位：分")
    @ApiModelProperty(name = "totalCost", value = "账单总金额（最大长度8） 单位：分")
    private BigDecimal totalCost;

    @ExcelProperty("支付时间")
    @ApiModelProperty(name = "payTime", value = "支付时间")
    private Date payTime;
    /**
     * 开票状态 | 0 开票中 1 开票成功 2 开票失败 3 红冲 4 被红冲 9 未开票
     */
    @ApiModelProperty(name = "settleType", value = "结算类型1用户手动结算2自动结算")
    private Integer settleType;

    @ExcelProperty("结算类型")
    @ApiModelProperty(name = "settleTypeDesc", value = "结算类型1用户手动结算2自动结算")
    private String settleTypeDesc;

    @ExcelProperty("电费明细差额")
    @ApiModelProperty(name = "chargeFeeDiff", value = "电费明细差额")
    private BigDecimal chargeFeeDiff;

    @ExcelProperty("服务费明细差额")
    @ApiModelProperty(name = "serviceFeeDiff", value = "服务费明细差额")
    private BigDecimal serviceFeeDiff;
}
