package com.jy.business.capital.model.vo;

import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jy.system.service.SysDictDataService;
import lombok.Getter;
import lombok.Setter;

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

@Getter
@Setter
@ExcelIgnoreUnannotated
public class CapitalTransactionsExportVo {

    private static final SysDictDataService sysDictDataService = SpringUtil.getBean(SysDictDataService.class);
    private static final Map<Integer, String> targetTypeMap = sysDictDataService.getMapByCode("target_type");

    /**
     * 公司名称
     */
    @ExcelProperty("归属公司")
    private String corporationName;

    /**
     * 账户别名
     */
    @ExcelProperty("资金账号")
    private String accountAlias;

    /**
     * 交易时间
     */
    @ExcelProperty("交易时间")
    private Date tradingTime;

    /**
     * 交易类型 1收入 0支出
     */
    private Integer type;

    /**
     * 交易类型 1收入 0支出
     */
    @ExcelProperty("交易类型")
    private String typeStr;

    /**
     * 交易金额
     */
    @ExcelProperty("交易金额")
    private BigDecimal amount;

    /**
     * 对方类型
     */
    private Integer targetType;

    /**
     * 对方类型
     */
    @ExcelProperty("对方类型")
    private String targetTypeStr;

    /**
     * 对方账户名
     */
    @ExcelProperty("对方账户名")
    private String targetAccountName;

    /**
     * 对方开户银行
     */
    @ExcelProperty("对方开户银行")
    private String targetDepositBank;

    /**
     * 对方账号
     */
    @ExcelProperty("对方账号")
    private String targetAccount;

    /**
     * 备注
     */
    @ExcelProperty("摘要")
    private String remark;

    public String getTypeStr() {
        return type == 1 ? "收入" : "支出";
    }

    public String getTargetTypeStr() {
        return targetTypeMap.get(this.targetType);
    }

}
