package com.ruoyi.oa.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;



/**
 * 封账批次（管理每次封账的批次信息，一组封账数据对应一个批次）视图对象 oa_accounting_batch
 *
 * @author Joshi
 * @date 2025-09-09
 */
@Data
@ExcelIgnoreUnannotated
public class OaAccountingBatchVo {

    private static final long serialVersionUID = 1L;

    /**
     * 封账批次ID（主键）
     */
    @ExcelProperty(value = "封账批次ID", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "主=键")
    private Long batchId;

    /**
     * 批次名称（如：2024年9月封账、2024Q3封账）
     */
    @ExcelProperty(value = "批次名称", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "如=：2024年9月封账、2024Q3封账")
    private String batchName;

    /**
     * 封账范围开始日期（该批次包含的日记账起始日期）
     */
    @ExcelProperty(value = "封账范围开始日期", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "该=批次包含的日记账起始日期")
    private Date startDate;

    /**
     * 封账范围结束日期（该批次包含的日记账截止日期）
     */
    @ExcelProperty(value = "封账范围结束日期", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "该=批次包含的日记账截止日期")
    private Date endDate;

    /**
     * 关联账户ID（逗号分隔，如：BANK_001,CASH_001，空表示所有账户）
     */
    @ExcelProperty(value = "关联账户ID", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "逗=号分隔，如：BANK_001,CASH_001，空表示所有账户")
    private String accountIds;

    /**
     * 批次状态（0：草稿，1：已封账，2：已取消封账）
     */
    @ExcelProperty(value = "批次状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=：草稿，1：已封账，2：已取消封账")
    private Long status;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
