Pārlūkot izejas kodu

fix:手动刷遗漏的时间段内的报告

wangzaijun 5 dienas atpakaļ
vecāks
revīzija
11befaee06

+ 16 - 2
mo-daq/src/main/java/com/smppw/modaq/application/components/report/parser/ai/AIQuarterlyReportParser.java

@@ -1,6 +1,7 @@
 package com.smppw.modaq.application.components.report.parser.ai;
 
 import com.smppw.modaq.application.components.report.parser.ReportParserConstant;
+import com.smppw.modaq.common.enums.ReportParseStatus;
 import com.smppw.modaq.common.exception.ReportParseException;
 import com.smppw.modaq.domain.dto.report.QuarterlyReportData;
 import com.smppw.modaq.domain.dto.report.ReportBaseInfoDTO;
@@ -9,6 +10,8 @@ import com.smppw.modaq.domain.dto.report.ReportParserParams;
 import com.smppw.modaq.domain.mapper.EmailFieldMappingMapper;
 import org.springframework.stereotype.Component;
 
+import java.util.Map;
+
 @Component(ReportParserConstant.PARSER_AI_QUARTERLY)
 public class AIQuarterlyReportParser extends AbstractAIReportParser<QuarterlyReportData> {
     public AIQuarterlyReportParser(EmailFieldMappingMapper fieldMappingMapper) {
@@ -22,7 +25,11 @@ public class AIQuarterlyReportParser extends AbstractAIReportParser<QuarterlyRep
 
     @Override
     protected String prompt() {
-        return "";
+        return """
+                识别文件中的基金基本情况、基金净值表现、主要财务指标、投资组合情况、基金份额变动情况,
+                基金净值表现、主要财务指标可能包好分级基金数据,投资组合情况包含期末基金资产组合情况、报告期末按行业分类的股票投资组合,
+                要求准确识别金额等小数的位数,去掉金额单位、英文和多余的空格,结果用json返回
+                """;
     }
 
     @Override
@@ -32,7 +39,14 @@ public class AIQuarterlyReportParser extends AbstractAIReportParser<QuarterlyRep
     }
 
     @Override
+    @SuppressWarnings("unchecked")
     protected ReportFundInfoDTO buildFundInfo(ReportParserParams params) {
-        return null;
+        // 获取并移除基金基本情况信息
+        Object fundInfo = this.allInfoMap.remove("基金基本情况");
+        if (fundInfo == null) {
+            throw new ReportParseException(ReportParseStatus.PARSE_FUND_INFO_FAIL, params.getFilename());
+        }
+        Map<String, Object> fundInfoMap = (Map<String, Object>) fundInfo;
+        return this.buildDto(params.getFileId(), ReportFundInfoDTO.class, fundInfoMap);
     }
 }

+ 10 - 2
mo-daq/src/main/java/com/smppw/modaq/application/task/ParseSchedulerTask.java

@@ -1,6 +1,7 @@
 package com.smppw.modaq.application.task;
 
 import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.exceptions.ExceptionUtil;
 import com.smppw.modaq.application.service.EmailParseApiService;
 import com.smppw.modaq.common.conts.EmailTypeConst;
@@ -30,8 +31,15 @@ public class ParseSchedulerTask {
 
     @PostConstruct
     public void executeOnStartup() {
-        this.letter();
-//        this.report();
+        try {
+            // 定期报告从 我的文件夹.报告公告 文件夹获取邮件
+            this.emailParseApiService.parseEmail(
+                    DateUtil.parseDateTime("2025-04-30 10:02:00"),
+                    DateUtil.parseDateTime("2025-04-30 10:35:00"),
+                    ListUtil.of("其他文件夹/报告公告"), EmailTypeConst.REPORT_EMAIL_TYPES);
+        } catch (Exception e) {
+            logger.error(ExceptionUtil.getMessage(e));
+        }
     }
 
     /**