package cn.iocoder.yudao.module.finance.controller.admin.ledger.vo; import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import cn.iocoder.yudao.module.finance.enums.DictTypeConstants; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @Schema(description = "管理后台 - 总账/明细账行 Response VO") @Data @ExcelIgnoreUnannotated public class FinLedgerRespVO { @Schema(description = "行类型:opening 期初余额、entry 明细、monthly_total 本月合计、yearly_total 本年累计", requiredMode = Schema.RequiredMode.REQUIRED, example = "entry") private String rowType; /** * 行类型的中文名,专供 Excel 导出。 * rowType 存的是枚举码(opening/entry/monthly_total/yearly_total),EasyExcel 会原样写进单元格, * 所以导出的「行类型」列必须由另一个字段承载中文;rowType 本身仍保留在 JSON 里,前端靠它做标签映射。 */ @Schema(description = "行类型名称", example = "明细") @ExcelProperty("行类型") private String rowTypeName; @Schema(description = "所属期间,格式 yyyy-MM", example = "2026-10") @ExcelProperty("期间") private String period; @Schema(description = "日期", example = "2026-10-12") @ExcelProperty("日期") private LocalDate date; @Schema(description = "凭证字号", example = "记2026100001") @ExcelProperty("凭证字号") private String voucherNo; @Schema(description = "科目编码", example = "1001") @ExcelProperty("科目编码") private String subjectCode; @Schema(description = "科目名称", example = "库存现金") @ExcelProperty("科目名称") private String subjectName; @Schema(description = "摘要", example = "收到货款") @ExcelProperty("摘要") private String summary; @Schema(description = "借方金额", example = "1000.00") @ExcelProperty("借方金额") private BigDecimal debit; @Schema(description = "贷方金额", example = "0.00") @ExcelProperty("贷方金额") private BigDecimal credit; @Schema(description = "余额方向", example = "1") @ExcelProperty(value = "余额方向", converter = DictConvert.class) @DictFormat(DictTypeConstants.BALANCE_DIRECTION) private Integer direction; @Schema(description = "余额,借方为正、贷方为负", example = "1000.00") @ExcelProperty("余额") private BigDecimal balance; }