3 Achegas a66ef7278f ... a3a9798068

Autor SHA1 Mensaxe Data
  wangzaijun a3a9798068 feat:新增支持文件链接来解析报告的接口 hai 1 día
  wangzaijun 6f4538a171 fix:印章标识和联系人标识优化 hai 1 día
  wangzaijun 112e653488 fix:优化掉一些字段 hai 1 día

+ 12 - 0
mo-daq/src/main/java/com/smppw/modaq/application/api/ParseApi.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
 import com.smppw.modaq.application.service.EmailParseApiService;
 import com.smppw.modaq.domain.dto.UploadReportParams;
 import com.smppw.modaq.domain.dto.UploadReportResult;
+import com.smppw.modaq.domain.dto.UploadUrlReportParams;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -51,6 +52,17 @@ public class ParseApi {
     }
 
     /**
+     * 批量解析(http链接)
+     *
+     * @param params 参数
+     * @return 解析结果
+     */
+    @PostMapping("upload-url-parse")
+    public ResponseEntity<List<UploadReportResult>> uploadUrlReport(@RequestBody UploadUrlReportParams params) {
+        return ResponseEntity.ok(this.service.uploadUrlReport(params));
+    }
+
+    /**
      * 批量上传文件流并解析
      *
      * @param files 文件流对象

+ 3 - 4
mo-daq/src/main/java/com/smppw/modaq/application/components/report/parser/ai/AbstractAIReportParser.java

@@ -30,7 +30,7 @@ public abstract class AbstractAIReportParser<T extends ReportData> extends Abstr
     @Value("${email.report.ai-parser-url}")
     private String aiParserUrl;
 
-    protected String aiFileId;
+//    protected String aiFileId;
 
     protected Map<String, Object> allInfoMap;
 
@@ -50,7 +50,6 @@ public abstract class AbstractAIReportParser<T extends ReportData> extends Abstr
         // 解构话返回解析数据
         T reportData = this.buildReportData(params, params.getFilename());
         if (reportData != null) {
-            reportData.setAiFileId(this.aiFileId);
             reportData.setAiParse(true);
         }
         return reportData;
@@ -112,7 +111,7 @@ public abstract class AbstractAIReportParser<T extends ReportData> extends Abstr
     protected void init() {
         super.init();
         // 先初始化为null
-        this.aiFileId = null;
+//        this.aiFileId = null;
         this.allInfoMap = MapUtil.newHashMap(128);
     }
 
@@ -144,7 +143,7 @@ public abstract class AbstractAIReportParser<T extends ReportData> extends Abstr
         try {
             body = HttpUtil.get(this.aiParserUrl, paramsMap);
             JSONObject jsonResult = JSONUtil.parseObj(body);
-            this.aiFileId = MapUtil.getStr(jsonResult, "file_id");
+//            this.aiFileId = MapUtil.getStr(jsonResult, "file_id");
             String content = StrUtil.split(jsonResult.getStr("content"), "```").get(1);
             String aiParserContent = "{" + StrUtil.subAfter(content, "{", false) + "}";
             if (StrUtil.isNotBlank(aiParserContent)) {

+ 9 - 0
mo-daq/src/main/java/com/smppw/modaq/application/service/EmailParseApiService.java

@@ -3,6 +3,7 @@ package com.smppw.modaq.application.service;
 import com.smppw.modaq.domain.dto.MailboxInfoDTO;
 import com.smppw.modaq.domain.dto.UploadReportParams;
 import com.smppw.modaq.domain.dto.UploadReportResult;
+import com.smppw.modaq.domain.dto.UploadUrlReportParams;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
@@ -37,6 +38,14 @@ public interface EmailParseApiService {
     List<UploadReportResult> uploadReport(UploadReportParams params);
 
     /**
+     * 批量文件解析(http链接)
+     *
+     * @param params 上传参数
+     * @return /
+     */
+    List<UploadReportResult> uploadUrlReport(UploadUrlReportParams params);
+
+    /**
      * 批量上传文件解析
      *
      * @param files 文件流对象

+ 93 - 50
mo-daq/src/main/java/com/smppw/modaq/application/service/EmailParseApiServiceImpl.java

@@ -1,19 +1,14 @@
 package com.smppw.modaq.application.service;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.exceptions.ExceptionUtil;
 import cn.hutool.core.util.StrUtil;
-import com.smppw.modaq.application.util.EmailUtil;
-import com.smppw.modaq.common.conts.DateConst;
+import cn.hutool.http.HttpUtil;
 import com.smppw.modaq.common.enums.ReportParseStatus;
-import com.smppw.modaq.domain.dto.EmailContentInfoDTO;
 import com.smppw.modaq.domain.dto.MailboxInfoDTO;
 import com.smppw.modaq.domain.dto.UploadReportParams;
 import com.smppw.modaq.domain.dto.UploadReportResult;
-import com.smppw.modaq.domain.entity.EmailFileInfoDO;
-import com.smppw.modaq.domain.entity.EmailParseInfoDO;
+import com.smppw.modaq.domain.dto.UploadUrlReportParams;
 import com.smppw.modaq.domain.entity.MailboxInfoDO;
 import com.smppw.modaq.domain.mapper.MailboxInfoMapper;
 import com.smppw.modaq.domain.service.EmailParseService;
@@ -22,7 +17,9 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.*;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Date;
@@ -101,6 +98,41 @@ public class EmailParseApiServiceImpl implements EmailParseApiService {
     }
 
     @Override
+    public List<UploadReportResult> uploadUrlReport(UploadUrlReportParams params) {
+        List<UploadReportParams.ReportInfo> reportInfos = ListUtil.list(false);
+        List<UploadUrlReportParams.UrlReportInfo> urlReportInfos = params.getReportInfos();
+        for (UploadUrlReportParams.UrlReportInfo urlReportInfo : urlReportInfos) {
+            String reportUrl = urlReportInfo.getReportUrl();
+            String filename;
+            if (StrUtil.isNotBlank(getFileExtension(urlReportInfo.getReportName()))) {
+                filename = reportUrl;
+            } else {
+                filename = urlReportInfo.getReportName() + "." + getFileExtension(reportUrl);
+            }
+            File saveFile = this.emailParseService.generateSavePath("upload", new Date(), filename);
+            if (!saveFile.exists()) {
+                if (!saveFile.getParentFile().exists()) {
+                    saveFile.getParentFile().mkdirs();
+                }
+                HttpUtil.downloadFile(reportUrl, saveFile);
+            }
+            UploadReportParams.ReportInfo reportInfo = new UploadReportParams.ReportInfo(saveFile.getAbsolutePath());
+            reportInfo.setReportName(filename);
+            reportInfo.setReportType(urlReportInfo.getReportType());
+            reportInfo.setPdfPwd(urlReportInfo.getPdfPwd());
+            reportInfos.add(reportInfo);
+        }
+        UploadReportParams req = new UploadReportParams();
+        req.setReportInfos(reportInfos);
+        if (StrUtil.isBlank(params.getTitle())) {
+            req.setTitle("报告上传解析-url");
+        } else {
+            req.setTitle(params.getTitle());
+        }
+        return this.emailParseService.uploadReportResults(req);
+    }
+
+    @Override
     public List<UploadReportResult> batchUploadReport(MultipartFile[] files) {
         List<UploadReportResult> dataList = ListUtil.list(false);
         UploadReportParams params = new UploadReportParams();
@@ -253,49 +285,60 @@ public class EmailParseApiServiceImpl implements EmailParseApiService {
 //        return contentInfoDTO;
 //    }
 
-    private List<EmailContentInfoDTO> buildEmailContentInfoDTO(Integer emailId,
-                                                               EmailParseInfoDO emailParseInfoDO,
-                                                               List<EmailFileInfoDO> emailFileInfoDOList) {
-        List<EmailContentInfoDTO> emailContentInfoDTOList = CollUtil.newArrayList();
-        String emailDate = DateUtil.format(emailParseInfoDO.getEmailDate(), DateConst.YYYY_MM_DD_HH_MM_SS);
-        String parseDate = DateUtil.format(new Date(), DateConst.YYYY_MM_DD_HH_MM_SS);
-        for (EmailFileInfoDO fileInfoDO : emailFileInfoDOList) {
-            EmailContentInfoDTO contentInfoDTO = new EmailContentInfoDTO();
-            contentInfoDTO.setEmailId(emailId);
-            contentInfoDTO.setFileId(fileInfoDO.getId());
-            contentInfoDTO.setSenderEmail(emailParseInfoDO.getSenderEmail());
-            contentInfoDTO.setEmailAddress(emailParseInfoDO.getEmail());
-            contentInfoDTO.setEmailDate(emailDate);
-            contentInfoDTO.setEmailTitle(emailParseInfoDO.getEmailTitle());
-            contentInfoDTO.setParseDate(parseDate);
-            contentInfoDTO.setFileName(fileInfoDO.getFileName());
-            contentInfoDTO.setFilePath(fileInfoDO.getFilePath());
-            Integer emailType = EmailUtil.getEmailTypeBySubject(emailParseInfoDO.getEmailTitle());
-            contentInfoDTO.setEmailType(emailType);
-            String emailContent = readHtmlFileContent(fileInfoDO.getFilePath());
-            contentInfoDTO.setEmailContent(emailContent);
-            contentInfoDTO.setAiFileId(fileInfoDO.getAiFileId());
-            emailContentInfoDTOList.add(contentInfoDTO);
-        }
-        return emailContentInfoDTOList;
-    }
+//    private List<EmailContentInfoDTO> buildEmailContentInfoDTO(Integer emailId,
+//                                                               EmailParseInfoDO emailParseInfoDO,
+//                                                               List<EmailFileInfoDO> emailFileInfoDOList) {
+//        List<EmailContentInfoDTO> emailContentInfoDTOList = CollUtil.newArrayList();
+//        String emailDate = DateUtil.format(emailParseInfoDO.getEmailDate(), DateConst.YYYY_MM_DD_HH_MM_SS);
+//        String parseDate = DateUtil.format(new Date(), DateConst.YYYY_MM_DD_HH_MM_SS);
+//        for (EmailFileInfoDO fileInfoDO : emailFileInfoDOList) {
+//            EmailContentInfoDTO contentInfoDTO = new EmailContentInfoDTO();
+//            contentInfoDTO.setEmailId(emailId);
+//            contentInfoDTO.setFileId(fileInfoDO.getId());
+//            contentInfoDTO.setSenderEmail(emailParseInfoDO.getSenderEmail());
+//            contentInfoDTO.setEmailAddress(emailParseInfoDO.getEmail());
+//            contentInfoDTO.setEmailDate(emailDate);
+//            contentInfoDTO.setEmailTitle(emailParseInfoDO.getEmailTitle());
+//            contentInfoDTO.setParseDate(parseDate);
+//            contentInfoDTO.setFileName(fileInfoDO.getFileName());
+//            contentInfoDTO.setFilePath(fileInfoDO.getFilePath());
+//            Integer emailType = EmailUtil.getEmailTypeBySubject(emailParseInfoDO.getEmailTitle());
+//            contentInfoDTO.setEmailType(emailType);
+//            String emailContent = readHtmlFileContent(fileInfoDO.getFilePath());
+//            contentInfoDTO.setEmailContent(emailContent);
+////            contentInfoDTO.setAiFileId(fileInfoDO.getAiFileId());
+//            emailContentInfoDTOList.add(contentInfoDTO);
+//        }
+//        return emailContentInfoDTOList;
+//    }
 
-    public static String readHtmlFileContent(String filePath) {
-        if (StrUtil.isNotBlank(filePath) && filePath.endsWith("html")) {
-            StringBuilder content = new StringBuilder();
-            try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
-                String line;
-                while ((line = reader.readLine()) != null) {
-                    // 追加每一行到StringBuilder中
-                    content.append(line).append("\n");
-                }
-            } catch (IOException e) {
-                System.err.println("Error reading the file: " + e.getMessage());
-                return null;
-            }
-            return content.toString();
+//    public static String readHtmlFileContent(String filePath) {
+//        if (StrUtil.isNotBlank(filePath) && filePath.endsWith("html")) {
+//            StringBuilder content = new StringBuilder();
+//            try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
+//                String line;
+//                while ((line = reader.readLine()) != null) {
+//                    // 追加每一行到StringBuilder中
+//                    content.append(line).append("\n");
+//                }
+//            } catch (IOException e) {
+//                System.err.println("Error reading the file: " + e.getMessage());
+//                return null;
+//            }
+//            return content.toString();
+//        }
+//        return null;
+//    }
+
+    private static String getFileExtension(String fileName) {
+        if (fileName == null || fileName.isEmpty()) {
+            return "";
+        }
+        int lastDotIndex = fileName.lastIndexOf('.');
+        // 后缀不存在的情况:无点、点在开头(隐藏文件无后缀)、点在末尾
+        if (lastDotIndex == -1 || lastDotIndex == 0 || lastDotIndex == fileName.length() - 1) {
+            return "";
         }
-        return null;
+        return fileName.substring(lastDotIndex + 1);
     }
-
 }

+ 2 - 11
mo-daq/src/main/java/com/smppw/modaq/domain/dto/UploadReportParams.java

@@ -8,7 +8,6 @@ import com.smppw.modaq.common.conts.EmailTypeConst;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.io.File;
 import java.util.List;
 
 @Setter
@@ -41,17 +40,14 @@ public class UploadReportParams {
         /**
          * 报告路径,必传
          */
+        @Getter
         private String reportPath;
-        /**
-         * 报告路径转file对象
-         */
-        private transient File reportFile;
 
         public String getReportName() {
             if (StrUtil.isNotBlank(this.reportName)) {
                 return this.reportName;
             }
-            return FileUtil.getName(this.reportFile);
+            return FileUtil.getName(this.reportPath);
         }
 
         public Integer getReportType() {
@@ -61,11 +57,6 @@ public class UploadReportParams {
             return EmailUtil.getEmailTypeBySubject(this.reportPath);
         }
 
-        public String getReportPath() {
-            this.reportFile = FileUtil.file(reportPath);
-            return reportPath;
-        }
-
         public ReportInfo() {
         }
 

+ 50 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/dto/UploadUrlReportParams.java

@@ -0,0 +1,50 @@
+package com.smppw.modaq.domain.dto;
+
+import cn.hutool.core.collection.ListUtil;
+import com.smppw.modaq.common.conts.EmailTypeConst;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Setter
+@Getter
+public class UploadUrlReportParams {
+    private String title;
+    private List<UrlReportInfo> reportInfos;
+
+    public UploadUrlReportParams() {
+        this.reportInfos = ListUtil.list(false);
+    }
+
+    @Setter
+    @Getter
+    public static class UrlReportInfo {
+        /**
+         * 报告名称
+         */
+        private String reportName;
+        /**
+         * 报告类型
+         *
+         * @see EmailTypeConst
+         */
+        private Integer reportType;
+        /**
+         * 如果pdf有密码,可以传密码过来
+         */
+        private String pdfPwd;
+        /**
+         * 报告路径,必传
+         */
+        private String reportUrl;
+
+        public UrlReportInfo() {
+        }
+
+        public UrlReportInfo(String reportName, String reportUrl) {
+            this.reportName = reportName;
+            this.reportUrl = reportUrl;
+        }
+    }
+}

+ 0 - 10
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportData.java

@@ -18,11 +18,6 @@ public abstract class ReportData implements Serializable {
     @Serial
     private static final long serialVersionUID = Constants.DEFAULT_SERIAL_ID;
     /**
-     * 报告路径
-     */
-    @Setter
-    private String reportPath;
-    /**
      * 报告基本信息
      */
     private final ReportBaseInfoDTO baseInfo;
@@ -35,11 +30,6 @@ public abstract class ReportData implements Serializable {
      */
     @Setter
     private Boolean aiParse;
-    /**
-     * ai解析时上传的文件的id(方便重复使用)
-     */
-    @Setter
-    private String aiFileId;
 
     public ReportData(ReportBaseInfoDTO baseInfo, ReportFundInfoDTO fundInfo) {
         this.baseInfo = baseInfo;

+ 4 - 4
mo-daq/src/main/java/com/smppw/modaq/domain/entity/EmailFileInfoDO.java

@@ -35,10 +35,10 @@ public class EmailFileInfoDO {
      * 是否ai解析
      */
     private Boolean aiParse;
-    /**
-     * ai解析时上传的文件的id(方便重复使用)
-     */
-    private String aiFileId;
+//    /**
+//     * ai解析时上传的文件的id(方便重复使用)
+//     */
+//    private String aiFileId;
     /**
      * 当前报告解析状态
      */

+ 34 - 19
mo-daq/src/main/java/com/smppw/modaq/domain/service/EmailParseService.java

@@ -343,7 +343,6 @@ public class EmailParseService {
             entity.setParseStatus(result.getStatus());
             entity.setFailReason(result.getMsg());
             entity.setAiParse(result.getData().getAiParse());
-            entity.setAiFileId(result.getData().getAiFileId());
             entityList.add(entity);
         }
         return entityList;
@@ -368,7 +367,6 @@ public class EmailParseService {
                 } catch (Exception ex) {
                     log.warn("报告{} 压缩包解压失败:{}", reportPath, ExceptionUtil.stacktraceToString(ex));
                     ReportData reportData = new ReportData.DefaultReportData();
-                    reportData.setReportPath(reportPath);
                     dataList.add(new ParseResult<>(ReportParseStatus.ARCHIVE_FAIL, reportData));
                 }
             } else {
@@ -431,7 +429,9 @@ public class EmailParseService {
                     && ReportParseUtils.containsAny(emailTitle, ReportParseUtils.MONTHLY_REPORT_KEYWORDS)) {
                 type = EmailTypeConst.REPORT_EMAIL_TYPE;
             }
-            emailFile.setEmailType(type);
+            if (EmailTypeConst.SUPPORT_EMAIL_TYPES.contains(type)) {
+                emailFile.setEmailType(type);
+            }
         }
     }
 
@@ -516,7 +516,6 @@ public class EmailParseService {
         this.checkEmailFileInfo(emailTitle, dtos);
         // 解析邮件报告
         for (EmailZipFileDTO zipFile : dtos) {
-//            EmailFileInfoDO emailFile = this.saveEmailFileInfo(emailId, zipFile.getFilename(), zipFile.getFilepath());
             // 解析并保存报告
             ParseResult<ReportData> parseResult = this.parseReportAndHandleResult(emailTitle, emailInfo.getSenderEmail(), zipFile);
             if (!Objects.equals(1, parseResult.getStatus())) {
@@ -525,7 +524,6 @@ public class EmailParseService {
             if (parseResult.getData() == null) {
                 parseResult.setData(new ReportData.DefaultReportData());
             }
-            parseResult.getData().setReportPath(zipFile.getFilepath());
             resultList.add(parseResult);
         }
     }
@@ -561,11 +559,13 @@ public class EmailParseService {
         ReportParserFileType fileType = ReportParserFileType.getBySuffix(zipFile.getExtName());
         // 不支持的格式
         if (fileType == null) {
-            return new ParseResult<>(ReportParseStatus.NO_SUPPORT_TEMPLATE, null, fileName);
+            ReportData reportData = this.buildNvlReportData(fileId, reportType, null, fileName);
+            return new ParseResult<>(ReportParseStatus.NO_SUPPORT_TEMPLATE, reportData, fileName);
         }
         // 不是定期报告的判断逻辑放在不支持的格式下面
         if (reportType == null) {
-            return new ParseResult<>(ReportParseStatus.NOT_A_REPORT, null, fileName);
+            ReportData reportData = this.buildNvlReportData(fileId, ReportType.OTHER, null, fileName);
+            return new ParseResult<>(ReportParseStatus.NOT_A_REPORT, reportData, fileName);
         }
 
         // docx转pdf
@@ -661,7 +661,7 @@ public class EmailParseService {
                 }
             }
             // ocr信息提取(印章、联系人、基金名称和产品代码)
-            reportData = this.ocrReportData(fileId, reportType, reportData, fileName, senderEmail, images);
+            reportData = this.ocrReportData(fileId, reportType, monthlyType, reportData, fileName, senderEmail, images);
             result.setData(reportData);
             if (log.isInfoEnabled()) {
                 log.info("报告{} 解析耗时{}ms,结果是:{}", fileName, (System.currentTimeMillis() - start), reportData);
@@ -726,12 +726,17 @@ public class EmailParseService {
     /**
      * ocr 提取信息(包括首页的基金名称或报告日期,尾页的印章或联系人等信息)
      *
-     * @param reportData 报告解析结果
-     * @param fileName   报告名称
-     * @param images     报告的收益和尾页png图片
+     * @param fileId      文件表ID
+     * @param reportType  报告类型
+     * @param monthlyType 月报类型
+     * @param reportData  报告解析结果
+     * @param fileName    报告名称
+     * @param senderEmail 邮件发送人邮箱
+     * @param images      报告的收益和尾页png图片
      */
     private ReportData ocrReportData(Integer fileId,
                                      ReportType reportType,
+                                     ReportMonthlyType monthlyType,
                                      ReportData reportData,
                                      String fileName,
                                      String senderEmail,
@@ -754,18 +759,25 @@ public class EmailParseService {
             }
             // ocr识别尾页是否包含印章和联系人信息
             if (parseRes != null && reportData.getBaseInfo() != null) {
-                if (TG_EMAIL_LIST.contains(senderEmail)) {
-                    reportData.getBaseInfo().setWithSeals(true);
-                } else {
-                    reportData.getBaseInfo().setWithSeals(parseRes.getWithSeals());
-                    if (fileName.contains("用印") && !Objects.equals(true, reportData.getBaseInfo().getWithSeals())) {
+                // 协会报告才设置印章标识
+                boolean isAmac = reportType == ReportType.ANNUALLY || reportType == ReportType.QUARTERLY
+                        || (reportType == ReportType.MONTHLY && ReportMonthlyType.AMAC == monthlyType);
+                if (isAmac) {
+                    if (TG_EMAIL_LIST.contains(senderEmail)) {
                         reportData.getBaseInfo().setWithSeals(true);
+                    } else {
+                        reportData.getBaseInfo().setWithSeals(parseRes.getWithSeals());
+                        if (fileName.contains("用印") && !Objects.equals(true, reportData.getBaseInfo().getWithSeals())) {
+                            reportData.getBaseInfo().setWithSeals(true);
+                        }
                     }
+                } else {
+                    // 管理人报告才设置联系人标识
+                    reportData.getBaseInfo().setWithContacts(parseRes.getWithContacts());
                 }
-                reportData.getBaseInfo().setWithContacts(parseRes.getWithContacts());
             }
             // 首页和尾页不相等时解析首页的数据
-            if (images.size() != 1) {
+            if (images.size() != 1 || parseRes == null) {
                 try {
                     parseRes = new OCRReportParser().parse(fileName, this.ocrParserUrl, images.get(0));
                 } catch (Exception e) {
@@ -851,6 +863,9 @@ public class EmailParseService {
         if (reportData != null) {
             return reportData;
         }
+        if (reportType == null) {
+            reportType = ReportType.OTHER;
+        }
         ReportBaseInfoDTO baseInfo = new ReportBaseInfoDTO(fileId);
         baseInfo.setReportName(fileName);
         baseInfo.setReportType(reportType.name());
@@ -901,7 +916,7 @@ public class EmailParseService {
 
     private EmailFileInfoDO saveEmailFileInfo(Integer emailId, String fileName, String filePath) {
         EmailFileInfoDO emailFileInfoDO = buildEmailFileInfoDO(emailId, fileName, filePath);
-        emailFileInfoDO.setAiFileId(null);
+//        emailFileInfoDO.setAiFileId(null);
         if (emailFileInfoDO.getId() != null) {
             this.emailFileInfoMapper.updateTimeById(emailFileInfoDO.getId(), new Date());
             return emailFileInfoDO;

+ 3 - 4
mo-daq/src/main/resources/mapper/EmailFileInfoMapper.xml

@@ -7,7 +7,7 @@
         <result column="file_name" property="fileName"/>
         <result column="file_path" property="filePath"/>
         <result column="ai_parse" property="aiParse"/>
-        <result column="ai_file_id" property="aiFileId"/>
+<!--        <result column="ai_file_id" property="aiFileId"/>-->
         <result column="isvalid" property="isvalid"/>
         <result column="creatorid" property="creatorId"/>
         <result column="createtime" property="createTime"/>
@@ -38,7 +38,7 @@
 <!--    </select>-->
 
     <select id="queryByEmailId" resultMap="BaseResultMap">
-        select id, file_name, file_path,ai_parse,ai_file_id
+        select id, file_name, file_path,ai_parse
         from mo_email_file_info
         where email_id = #{emailId}
           and isvalid = 1
@@ -238,8 +238,7 @@
     <update id="batchUpdateByFileId">
         <foreach collection="entityList" item="entity">
             update mo_email_file_info
-            set ai_file_id = #{entity.aiFileId},
-                ai_parse = #{entity.aiParse},
+            set ai_parse = #{entity.aiParse},
                 parse_status = #{entity.parseStatus},
                 fail_reason = #{entity.failReason},
                 updatetime = now()