diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaFinanceMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaFinanceMapper.java index 71dacf9..18f79c5 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaFinanceMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaFinanceMapper.java @@ -37,6 +37,8 @@ public interface SysOaFinanceMapper extends BaseMapperPlus selectPageFinanceList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + Page selectMainPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + /** * 项目进出账查询 diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaFinanceServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaFinanceServiceImpl.java index 505047c..1f92144 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaFinanceServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaFinanceServiceImpl.java @@ -59,8 +59,24 @@ public class SysOaFinanceServiceImpl implements ISysOaFinanceService { */ @Override public TableDataInfo selectPageFinanceList(SysOaFinanceBo bo, PageQuery pageQuery) { - Page sysOaFinanceVoPage = baseMapper.selectPageFinanceList(pageQuery.build(), this.buildQueryWrapper(bo)); - return TableDataInfo.build(sysOaFinanceVoPage); + // 先查询主表分页数据 + Page mainPage = baseMapper.selectMainPageList(pageQuery.build(), this.buildQueryWrapper(bo)); + List records = mainPage.getRecords(); + if (records != null && !records.isEmpty()) { + // 获取所有主表ID + List financeIds = records.stream().map(SysOaFinanceVo::getFinanceId).collect(java.util.stream.Collectors.toList()); + // 批量查询子表数据 + List details = sysOaDetailMapper.selectList(new LambdaQueryWrapper() + .in(SysOaDetail::getFinanceId, financeIds)); + // 按financeId分组 + Map> detailMap = details.stream().collect(java.util.stream.Collectors.groupingBy(SysOaDetail::getFinanceId)); + // 封装子表数据 + for (SysOaFinanceVo vo : records) { + vo.setDetailList(detailMap.getOrDefault(vo.getFinanceId(), new ArrayList<>())); + } + } + mainPage.setRecords(records); + return TableDataInfo.build(mainPage); } /** @@ -201,7 +217,7 @@ public class SysOaFinanceServiceImpl implements ISysOaFinanceService { lqw.eq(Objects.nonNull(bo.getReceiveAccountId()) && bo.getReceiveAccountId()!=-1L, "sof.receive_account_id", bo.getReceiveAccountId()); lqw.between(bo.getBeginCreateTime()!= null && bo.getEndCreateTime()!= null, "sof.create_time", bo.getBeginCreateTime(), bo.getEndCreateTime()); - lqw.orderByDesc("create_time"); + lqw.orderByDesc("sof.create_time"); return lqw; } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaFinanceMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaFinanceMapper.xml index 1712b92..73aa2cf 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaFinanceMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaFinanceMapper.xml @@ -97,6 +97,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.getCustomSqlSegment} + +