EmailFundAssetServiceImpl.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.simuwang.manage.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.simuwang.base.common.util.DateUtils;
  5. import com.simuwang.base.mapper.EmailFundAssetMapper;
  6. import com.simuwang.base.pojo.dos.AssetDO;
  7. import com.simuwang.base.pojo.dos.EmailFundAssetDO;
  8. import com.simuwang.base.pojo.dos.EmailFundNavDO;
  9. import com.simuwang.base.pojo.dos.NavDO;
  10. import com.simuwang.daq.service.EmailParseService;
  11. import com.simuwang.manage.service.EmailFundAssetService;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16. import java.util.List;
  17. import java.util.Map;
  18. import java.util.stream.Collectors;
  19. /**
  20. * FileName: EmailFundAssetServiceImpl
  21. * Author: chenjianhua
  22. * Date: 2024/9/15 12:43
  23. * Description: ${DESCRIPTION}
  24. */
  25. @Service
  26. public class EmailFundAssetServiceImpl implements EmailFundAssetService {
  27. @Autowired
  28. private EmailFundAssetMapper emailFundAssetMapper;
  29. @Autowired
  30. private EmailParseService emailParseService;
  31. @Override
  32. public void reparseFileAsset(String sourceFundName, String targetFundId) {
  33. List<EmailFundAssetDO> fundAssetDOList = emailFundAssetMapper.selectNotMappingAsset(sourceFundName);
  34. Map<String,List<EmailFundAssetDO>> fundAssetDOGroup = fundAssetDOList.stream().collect(Collectors.groupingBy(e -> DateUtils.format(e.getPriceDate(),DateUtils.YYYY_MM_DD)));
  35. List<EmailFundAssetDO> dataList = new ArrayList<>();
  36. //去重
  37. for(String priceDate : fundAssetDOGroup.keySet()){
  38. List<EmailFundAssetDO> doList = fundAssetDOGroup.get(priceDate);
  39. dataList.add(doList.get(0));
  40. }
  41. if(fundAssetDOList.size() > 0){
  42. //修改采集库的数据
  43. for(EmailFundAssetDO fundNavDO : fundAssetDOList){
  44. fundNavDO.setFundId(targetFundId);
  45. fundNavDO.setExceptionStatus(1);
  46. fundNavDO.setIsvalid(1);
  47. fundNavDO.setIsStored(1);
  48. fundNavDO.setUpdateTime(new Date());
  49. fundNavDO.setCreateTime(new Date());
  50. }
  51. emailFundAssetMapper.batchUpdate(fundAssetDOList);
  52. //净值入库
  53. List<AssetDO> assetDOList = dataList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
  54. .map(e -> BeanUtil.copyProperties(e, AssetDO.class)).collect(Collectors.toList());
  55. emailParseService.saveAssetDo(assetDOList);
  56. }
  57. }
  58. }