gaoluyang
昨天 90b3ad820eea45d021835197eac5bc3ad55b12ed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package cn.iocoder.yudao.module.finance.dal.mysql.ledger;
 
import cn.iocoder.yudao.module.finance.dal.dataobject.ledger.FinLedgerEntryDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
 
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
 
/**
 * 总账 / 明细账 Mapper
 *
 * 只统计已过账(status = posted)的凭证分录;总账、明细账的余额在 Service 层按期间重算,
 * 保证口径与凭证状态一致
 *
 * @author 超级管理员
 */
@Mapper
public interface FinLedgerMapper {
 
    /**
     * 查询指定科目(可多个)在指定日期区间内的已过账分录
     *
     * @param subjectCodes 科目编码集合
     * @param startDate    开始日期(含)
     * @param endDate      结束日期(含)
     * @param status       凭证状态
     * @return 分录列表(按凭证日期、凭证编号、行号升序)
     */
    List<FinLedgerEntryDO> selectEntryList(@Param("subjectCodes") Collection<String> subjectCodes,
                                           @Param("startDate") LocalDate startDate,
                                           @Param("endDate") LocalDate endDate,
                                           @Param("status") Integer status);
 
    /**
     * 查询指定科目(可多个)在指定日期之前的已过账分录净额,即期初余额
     *
     * @param subjectCodes 科目编码集合
     * @param date         日期(不含)
     * @param status       凭证状态
     * @return 净额,借方为正、贷方为负
     */
    BigDecimal selectBalanceBeforeDate(@Param("subjectCodes") Collection<String> subjectCodes,
                                       @Param("date") LocalDate date,
                                       @Param("status") Integer status);
 
}