package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.bean.dto.AccountSubjectDto; import com.ruoyi.account.bean.dto.AccountSubjectImportDto; import com.ruoyi.account.bean.vo.AccountSubjectVo; import com.ruoyi.account.mapper.AccountSubjectMapper; import com.ruoyi.account.pojo.AccountSubject; import com.ruoyi.account.service.AccountSubjectService; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 总账科目表 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-05-07 04:45:30 */ @Service @RequiredArgsConstructor public class AccountSubjectServiceImpl extends ServiceImpl implements AccountSubjectService { private final AccountSubjectMapper accountSubjectMapper; @Override public IPage baseList(Page page, AccountSubjectDto accountSubjectDto) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (accountSubjectDto != null && StringUtils.isNotEmpty(accountSubjectDto.getSubjectCode())) { queryWrapper.like(AccountSubject::getSubjectCode, accountSubjectDto.getSubjectCode()); } if (accountSubjectDto != null && StringUtils.isNotEmpty(accountSubjectDto.getSubjectName())) { queryWrapper.like(AccountSubject::getSubjectName, accountSubjectDto.getSubjectName()); } if (accountSubjectDto != null && StringUtils.isNotEmpty(accountSubjectDto.getSubjectType())) { queryWrapper.eq(AccountSubject::getSubjectType, accountSubjectDto.getSubjectType()); } queryWrapper.orderByDesc(AccountSubject::getId); Page entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); Page paramPage = page(entityPage, queryWrapper); Page resultPage = new Page<>(paramPage.getCurrent(), paramPage.getSize(), paramPage.getTotal()); List records = new ArrayList<>(paramPage.getRecords().size()); for (AccountSubject item : paramPage.getRecords()) { AccountSubjectVo vo = new AccountSubjectVo(); BeanUtils.copyProperties(item, vo); records.add(vo); } resultPage.setRecords(records); return resultPage; } @Override public void exportAccountSubject(HttpServletResponse response) { List list = accountSubjectMapper.selectList(null); List importDtos = list.stream().map(accountSubject -> { AccountSubjectImportDto accountSubjectImportDto = new AccountSubjectImportDto(); BeanUtils.copyProperties(accountSubject, accountSubjectImportDto); return accountSubjectImportDto; }).collect(Collectors.toList()); ExcelUtil util = new ExcelUtil<>(AccountSubjectImportDto.class); util.exportExcel(response, importDtos , "总账科目"); } }