InvAccountExpensesServiceImpl.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.ydtech.modules.inv.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ydtech.core.page.PageRequest;
  7. import com.ydtech.modules.inv.dao.InvAccountExpensesMapper;
  8. import com.ydtech.modules.inv.model.InvAccountExpenses;
  9. import com.ydtech.modules.inv.service.InvAccountExpensesService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.util.List;
  13. import java.util.Objects;
  14. import java.util.stream.Collectors;
  15. /**
  16. * @author Administrator
  17. * @description 针对表【ins_account_expenses(费用支出明细表)】的数据库操作Service实现
  18. * @createDate 2024-01-10 18:13:14
  19. */
  20. @Service
  21. public class InvAccountExpensesServiceImpl extends ServiceImpl<InvAccountExpensesMapper, InvAccountExpenses>
  22. implements InvAccountExpensesService {
  23. @Autowired
  24. InvAccountExpensesMapper invAccountExpensesMapper;
  25. @Override
  26. public IPage<InvAccountExpenses> selectExpensesList(InvAccountExpenses accountExpenses) {
  27. PageRequest pageRequest = new PageRequest();
  28. pageRequest.setPageNum(accountExpenses.getPageNo());
  29. pageRequest.setPageSize(accountExpenses.getPageSize());
  30. Page page = PageRequest.buildPageRequest(pageRequest);
  31. return invAccountExpensesMapper.selectExpensesList(page,accountExpenses);
  32. }
  33. public InvAccountExpenses getDetail(String id) {
  34. return invAccountExpensesMapper.selectById(id);
  35. }
  36. @Override
  37. public List<InvAccountExpenses> selectTreeList() {
  38. LambdaQueryWrapper<InvAccountExpenses> wrapper = new LambdaQueryWrapper<>();
  39. return getTree(invAccountExpensesMapper.selectList(wrapper));
  40. }
  41. /**
  42. * 组装树形结构结果集方法
  43. */
  44. public List<InvAccountExpenses> getTree(List<InvAccountExpenses> list){
  45. return list.stream().filter(accountExpenses -> accountExpenses.getParentId().equals("0"))
  46. .peek(accountExpenses -> accountExpenses.setChild(getChildren(accountExpenses,list))).collect(Collectors.toList());
  47. }
  48. public List<InvAccountExpenses> getChildren(InvAccountExpenses user,List<InvAccountExpenses> userList){
  49. return userList.stream().filter(u -> Objects.equals(u.getParentId(),user.getExpensesId())).map(
  50. u -> {
  51. u.setChild(getChildren(u,userList));
  52. return u;
  53. }
  54. ).collect(Collectors.toList());
  55. }
  56. }