EmailFundNavServiceImpl.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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.EmailFundNavMapper;
  6. import com.simuwang.base.pojo.dos.CompanyEmailSendHistoryDO;
  7. import com.simuwang.base.pojo.dos.EmailFundNavDO;
  8. import com.simuwang.base.pojo.dos.NavDO;
  9. import com.simuwang.daq.service.EmailParseService;
  10. import com.simuwang.manage.service.EmailFundNavService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.util.ArrayList;
  14. import java.util.Date;
  15. import java.util.List;
  16. import java.util.Map;
  17. import java.util.stream.Collectors;
  18. /**
  19. * FileName: EmailFileNavServiceImpl
  20. * Author: chenjianhua
  21. * Date: 2024/9/15 11:25
  22. * Description: ${DESCRIPTION}
  23. */
  24. @Service
  25. public class EmailFundNavServiceImpl implements EmailFundNavService {
  26. @Autowired
  27. private EmailFundNavMapper emailFundNavMapper;
  28. @Autowired
  29. private EmailParseService emailParseService;
  30. @Override
  31. public void reparseFileNav(String sourceFundName, String targetFundId) {
  32. List<EmailFundNavDO> fundNavDOList = emailFundNavMapper.selectNotMappingNav(sourceFundName);
  33. Map<String,List<EmailFundNavDO>> fundNavDOGroup = fundNavDOList.stream().collect(Collectors.groupingBy(e -> DateUtils.format(e.getPriceDate(),DateUtils.YYYY_MM_DD)));
  34. List<EmailFundNavDO> dataList = new ArrayList<>();
  35. //去重
  36. for(String priceDate : fundNavDOGroup.keySet()){
  37. List<EmailFundNavDO> doList = fundNavDOGroup.get(priceDate);
  38. dataList.add(doList.get(0));
  39. }
  40. if(fundNavDOList.size() > 0){
  41. //修改采集库的数据
  42. for(EmailFundNavDO fundNavDO : fundNavDOList){
  43. fundNavDO.setFundId(targetFundId);
  44. fundNavDO.setExceptionStatus(1);
  45. fundNavDO.setUpdateTime(new Date());
  46. }
  47. emailFundNavMapper.batchUpdate(fundNavDOList);
  48. //净值入库
  49. List<NavDO> navDOList = dataList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
  50. .map(e -> BeanUtil.copyProperties(e, NavDO.class)).collect(Collectors.toList());
  51. navDOList.forEach(e -> e.setUpdateTime(DateUtils.getNowDate()));
  52. emailParseService.saveNavDo(navDOList);
  53. }
  54. }
  55. }