package com.tofly.feesapi.sfgl.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tofly.feesapi.common.Excel.EnumConverter;
import com.tofly.feesapi.common.constant.JmlxEnum;
import com.tofly.feesapi.common.constant.JmyjEnum;
import com.tofly.feesapi.common.constant.JmyjEnumConverter;
import com.tofly.feesapi.common.constant.JmyjEnumJsonSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author sunjian
 * @date 2025/3/10
 */
@Data
@ApiModel("违约金调整参数Vo")
public class YyWyjtzVo {

    @ExcelIgnore
    @ApiModelProperty(value = "调整记录ID")
    private String id;

    @ExcelProperty(value = "用户编号")
    @ApiModelProperty(value = "用户编号")
    private String yhbh;

    @ExcelProperty(value = "用户姓名")
    @ApiModelProperty(value = "用户姓名")
    private String yhxm;

    @ExcelProperty(value = "财务日期")
    @ApiModelProperty(value = "财务日期")
    private String cwrq;

    @ExcelProperty(value = "用水月份")
    @ApiModelProperty(value = "用水月份")
    private String ysyf;

    @ExcelIgnore
    @ApiModelProperty(value = "抄表日期")
    private String cbrq;

    @ExcelIgnore
    @ApiModelProperty(value = "应收水量")
    private BigDecimal yssl;

    @ExcelIgnore
    @ApiModelProperty(value = "应收水费")
    private BigDecimal yssf;

    @ExcelIgnore
    @ApiModelProperty(value = "调整前金额")
    private BigDecimal tzqje;

    @ExcelProperty(value = "减免金额")
    @ApiModelProperty(value = "调整金额")
    private BigDecimal tzje;

    @ExcelProperty(value = "减免类型", converter = EnumConverter.class)
    @ApiModelProperty(value = "违约金减免类型")
    private JmlxEnum type;

    @ExcelIgnore
    @ApiModelProperty(value = "调整原因")
    private String tzyy;

    @ExcelProperty(value = "减免依据", converter = JmyjEnumConverter.class)
    @ApiModelProperty(value = "减免依据")
    @JsonSerialize(using = JmyjEnumJsonSerializer.class)
    private JmyjEnum jmyj;

    @ExcelIgnore
    @ApiModelProperty(value = "工单编号")
    private String gdbh;

    @ExcelIgnore
    @ApiModelProperty(value = "欠费id")
    private String qfid;

    @ExcelProperty(value = "审核人员")
    @ApiModelProperty(value = "审核人员")
    private String shry;

    @ExcelProperty(value = "操作人员")
    @ApiModelProperty(value = "操作人员")
    private String czryxm;

    @ExcelProperty(value = "操作时间")
    @ApiModelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date czsj;

    @ExcelIgnore
    @ApiModelProperty(value = "违约金")
    private BigDecimal znj;

    @ExcelIgnore
    @ApiModelProperty(value = "工单流水编号")
    private String gdlsbh;

    @ExcelIgnore
    @ApiModelProperty(value = "汇总数量")
    private String countnum;
}
