feat(oa): 添加封账批次和日记账功能模块

- 新增封账批次管理相关接口和服务实现
- 新增日记账管理相关接口和服务实现
- 添加对应的实体类、VO类和BO类
- 实现基本的CRUD操作和批量删除功能
This commit is contained in:
2025-09-09 15:36:00 +08:00
parent a244a68a96
commit 7b74ae82a7
16 changed files with 1072 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 封账批次(管理每次封账的批次信息,一组封账数据对应一个批次)对象 oa_accounting_batch
*
* @author Joshi
* @date 2025-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_accounting_batch")
public class OaAccountingBatch extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 封账批次ID主键
*/
@TableId(value = "batch_id")
private Long batchId;
/**
* 批次名称2024年9月封账、2024Q3封账
*/
private String batchName;
/**
* 封账范围开始日期(该批次包含的日记账起始日期)
*/
private Date startDate;
/**
* 封账范围结束日期(该批次包含的日记账截止日期)
*/
private Date endDate;
/**
* 关联账户ID逗号分隔BANK_001,CASH_001空表示所有账户
*/
private String accountIds;
/**
* 批次状态0草稿1已封账2已取消封账
*/
private Long status;
/**
* 备注
*/
private String remark;
/**
* 删除标志0正常 1删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,75 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 日记账绑定封账批次未封账数据batch_id为NULL对象 oa_journal_account
*
* @author Joshi
* @date 2025-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_journal_account")
public class OaJournalAccount extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 日记账记录ID主键
*/
@TableId(value = "journal_id")
private Long journalId;
/**
* 账户ID关联账户表
*/
private Long accountId;
/**
* 记账日期
*/
private Date recordDate;
/**
* 对方科目
*/
private String oppositeSubject;
/**
* 业务摘要
*/
private String summary;
/**
* 收入金额(元)
*/
private BigDecimal incomeAmount;
/**
* 支出金额(元)
*/
private BigDecimal expendAmount;
/**
* 账户余额(元)
*/
private BigDecimal balance;
/**
* 封账批次ID关联accounting_batch表NULL表示未封账
*/
private Long batchId;
/**
* 备注
*/
private String remark;
/**
* 删除标志0正常 1删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,62 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 封账批次(管理每次封账的批次信息,一组封账数据对应一个批次)业务对象 oa_accounting_batch
*
* @author Joshi
* @date 2025-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaAccountingBatchBo extends BaseEntity {
/**
* 封账批次ID主键
*/
private Long batchId;
/**
* 批次名称2024年9月封账、2024Q3封账
*/
private String batchName;
/**
* 封账范围开始日期(该批次包含的日记账起始日期)
*/
private Date startDate;
/**
* 封账范围结束日期(该批次包含的日记账截止日期)
*/
private Date endDate;
/**
* 关联账户ID逗号分隔BANK_001,CASH_001空表示所有账户
*/
private String accountIds;
/**
* 批次状态0草稿1已封账2已取消封账
*/
private Long status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,78 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 日记账绑定封账批次未封账数据batch_id为NULL业务对象 oa_journal_account
*
* @author Joshi
* @date 2025-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaJournalAccountBo extends BaseEntity {
/**
* 日记账记录ID主键
*/
private Long journalId;
/**
* 账户ID关联账户表
*/
private Long accountId;
/**
* 记账日期
*/
private Date recordDate;
/**
* 对方科目
*/
private String oppositeSubject;
/**
* 业务摘要
*/
private String summary;
/**
* 收入金额(元)
*/
private BigDecimal incomeAmount;
/**
* 支出金额(元)
*/
private BigDecimal expendAmount;
/**
* 账户余额(元)
*/
private BigDecimal balance;
/**
* 封账批次ID关联accounting_batch表NULL表示未封账
*/
private Long batchId;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,75 @@
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;
}

View File

@@ -0,0 +1,94 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
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;
/**
* 日记账绑定封账批次未封账数据batch_id为NULL视图对象 oa_journal_account
*
* @author Joshi
* @date 2025-09-09
*/
@Data
@ExcelIgnoreUnannotated
public class OaJournalAccountVo {
private static final long serialVersionUID = 1L;
/**
* 日记账记录ID主键
*/
@ExcelProperty(value = "日记账记录ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "主=键")
private Long journalId;
/**
* 账户ID关联账户表
*/
@ExcelProperty(value = "账户ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联账户表")
private Long accountId;
/**
* 记账日期
*/
@ExcelProperty(value = "记账日期")
private Date recordDate;
/**
* 对方科目
*/
@ExcelProperty(value = "对方科目")
private String oppositeSubject;
/**
* 业务摘要
*/
@ExcelProperty(value = "业务摘要")
private String summary;
/**
* 收入金额(元)
*/
@ExcelProperty(value = "收入金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private BigDecimal incomeAmount;
/**
* 支出金额(元)
*/
@ExcelProperty(value = "支出金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private BigDecimal expendAmount;
/**
* 账户余额(元)
*/
@ExcelProperty(value = "账户余额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private BigDecimal balance;
/**
* 封账批次ID关联accounting_batch表NULL表示未封账
*/
@ExcelProperty(value = "封账批次ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联accounting_batch表NULL表示未封账")
private Long batchId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}