wangzaijun 2 месяцев назад
Родитель
Сommit
66c5d7182b

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

@@ -17,9 +17,12 @@ public class ParseSchedulerTask {
         this.emailParseApiService = emailParseApiService;
     }
 
-    @Scheduled(cron = "0 0 4 * * ?") // 每天早上4点执行
+    /**
+     * 定时任务每2小时执行一次
+     */
+    @Scheduled(cron = "0 0 */2 * * ?")
     public void run() {
-        Date preDay = DateUtil.offsetDay(new Date(), -1);
+        Date preDay = DateUtil.offsetMinute(new Date(), -121);
         this.emailParseApiService.parseEmail(preDay, new Date());
     }
 }

+ 2 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/mapper/EmailParseInfoMapper.java

@@ -34,4 +34,6 @@ public interface EmailParseInfoMapper {
 //    Long countpdfNoData(@Param("item") DataboardQuery databoardQuery, @Param("errorInfo")String errorInfo);
 
     Long countEmailTotal(@Param("emailType") Integer emailType);
+
+    EmailParseInfoDO searchEmail(EmailParseInfoDO entity);
 }

+ 5 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/service/EmailParseService.java

@@ -368,6 +368,11 @@ public class EmailParseService {
             emailParseInfoMapper.updateParseTime(emailParseInfoDO.getId(), emailParseInfoDO.getParseDate());
             return emailParseInfoDO.getId();
         }
+        // 根据邮件发送人、邮件地址、邮箱日期、主题找到是否已经存在的记录(不管是否成功),已存在就不解析了
+        EmailParseInfoDO temp = this.emailParseInfoMapper.searchEmail(emailParseInfoDO);
+        if (temp != null) {
+            return null;
+        }
         emailParseInfoMapper.insert(emailParseInfoDO);
         return emailParseInfoDO.getId();
     }

+ 17 - 0
mo-daq/src/main/resources/mapper/EmailParseInfoMapper.xml

@@ -236,4 +236,21 @@
         </if>
     </select>
 
+    <select id="searchEmail" parameterType="com.smppw.modaq.domain.entity.EmailParseInfoDO" resultMap="BaseResultMap">
+        select *
+        from mo_email_parse_info where isvalid = 1
+        <if test="senderEmail !=null and senderEmail != ''">
+            and sender_email = #{senderEmail}
+        </if>
+        <if test="email != null  and email != ''">
+            and email = #{email}
+        </if>
+        <if test="emailDate != null">
+            and email_date = #{emailDate}
+        </if>
+        <if test="emailTitle != null  and emailTitle != ''">
+            and email_title = #{emailTitle}
+        </if>
+        limit 1
+    </select>
 </mapper>