FundAliasServiceImpl.java 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.support.MybatisPage;
  3. import com.simuwang.base.mapper.CompanyInformationMapper;
  4. import com.simuwang.base.mapper.EmailFundAssetMapper;
  5. import com.simuwang.base.mapper.EmailFundNavMapper;
  6. import com.simuwang.base.mapper.FundAliasMapper;
  7. import com.simuwang.base.pojo.dos.FundAliasDO;
  8. import com.simuwang.base.pojo.dto.query.FundAliasPageQuery;
  9. import com.simuwang.base.pojo.vo.FundAliasVO;
  10. import com.simuwang.manage.service.EmailFundAssetService;
  11. import com.simuwang.manage.service.EmailFundNavService;
  12. import com.simuwang.manage.service.EmailFundInfoService;
  13. import com.simuwang.manage.service.FundAliasService;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.Date;
  17. import java.util.List;
  18. import java.util.stream.Collectors;
  19. /**
  20. * FileName: FunAliasServiceImpl
  21. * Author: chenjianhua
  22. * Date: 2024/9/14 16:18
  23. * Description: ${DESCRIPTION}
  24. */
  25. @Service
  26. public class FundAliasServiceImpl implements FundAliasService {
  27. @Autowired
  28. private FundAliasMapper fundAliasMapper;
  29. @Autowired
  30. private EmailFundNavMapper emailFundNavMapper;
  31. @Autowired
  32. private EmailFundAssetMapper emailFundAssetMapper;
  33. @Autowired
  34. private CompanyInformationMapper companyInformationMapper;
  35. @Autowired
  36. private EmailFundInfoService emailFundInfoService;
  37. @Autowired
  38. private EmailFundNavService emailFileNavService;
  39. @Autowired
  40. private EmailFundAssetService emailFundAssetService;
  41. @Override
  42. public MybatisPage<FundAliasVO> searchFundAlias(FundAliasPageQuery fundAliasPageQuery) {
  43. List<FundAliasDO> fundAliasDOList = fundAliasMapper.searchFundAlias(fundAliasPageQuery);
  44. List<FundAliasVO> fundAliasVOList = fundAliasDOList.stream().map(FundAliasDO::toVo).collect(Collectors.toList());
  45. for(FundAliasVO vo : fundAliasVOList){
  46. //异常净值数量
  47. Integer navTotal = emailFundNavMapper.countNoStoreNav(vo.getSourceFundName());
  48. vo.setNavTotal(navTotal);
  49. //异常净值数量
  50. Integer assetTotal = emailFundAssetMapper.countNoStoreAsset(vo.getSourceFundName());
  51. vo.setAssetTotal(assetTotal);
  52. //管理人
  53. if(vo.getTargetFundId() !=null){
  54. vo.setCompanyName(companyInformationMapper.getCompanyNameByFundId(vo.getTargetFundId()));
  55. }
  56. //最新净值日期
  57. vo.setPriceDate(emailFundNavMapper.getMaxPriceDate(vo.getSourceFundName()));
  58. }
  59. long total = fundAliasMapper.countFundAlias(fundAliasPageQuery);
  60. return MybatisPage.of(total,fundAliasVOList);
  61. }
  62. @Override
  63. public FundAliasVO searchFundAliasById(Integer id) {
  64. FundAliasDO fundAliasDO = fundAliasMapper.searchFundAliasById(id);
  65. return fundAliasDO.toVo();
  66. }
  67. @Override
  68. public void saveFundAlias(FundAliasVO fundAliasVO) {
  69. FundAliasDO fundAliasDO = new FundAliasDO();
  70. fundAliasDO.setSourceFundName(fundAliasVO.getSourceFundName());
  71. fundAliasDO.setTargetFundId(fundAliasVO.getTargetFundId());
  72. fundAliasDO.setSourceRegisterNumber(fundAliasVO.getSourceRegisterNumber());
  73. fundAliasDO.setTargetFundName(fundAliasVO.getTargetFundName());
  74. fundAliasDO.setTargetRegisterNumber(fundAliasVO.getTargetRegisterNumber());
  75. fundAliasDO.setId(fundAliasVO.getId());
  76. fundAliasDO.setIsvalid(1);
  77. fundAliasDO.setUpdateTime(new Date());
  78. fundAliasMapper.saveFundAlias(fundAliasDO);
  79. //将采集的净值数据匹配之后重新入库
  80. emailFileNavService.reparseFileNav(fundAliasVO.getSourceFundName(),fundAliasVO.getTargetFundId());
  81. //将采集的规模数据匹配之后重新入库
  82. emailFundAssetService.reparseFileAsset(fundAliasVO.getSourceFundName(),fundAliasVO.getTargetFundId());
  83. //处理采集数据,将采集的数据入库
  84. emailFundInfoService.reparseValuationFile(fundAliasVO.getSourceFundName());
  85. }
  86. }