浏览代码

Merge branch 'develop' of http://112.74.196.215:3000/Tech2/data-daq into develop

wangzaijun 7 月之前
父节点
当前提交
5451ef3348

+ 9 - 13
service-base/src/main/java/com/simuwang/base/common/util/QuartzUtils.java

@@ -110,9 +110,8 @@ public class QuartzUtils {
      * @param jobKeyName 定时任务名称
      * @throws SchedulerException
      */
-    public static void pauseScheduleJob(Scheduler scheduler, String jobKeyName) {
-        String[] jobNameGroupArr = jobKeyName.split("\\.");
-        JobKey jobKey = JobKey.jobKey(jobNameGroupArr[1], jobNameGroupArr[0]);
+    public static void pauseScheduleJob(Scheduler scheduler, String jobKeyName,String groupName) {
+        JobKey jobKey = JobKey.jobKey(jobKeyName, groupName);
         try {
             scheduler.pauseJob(jobKey);
         } catch (SchedulerException e) {
@@ -127,9 +126,8 @@ public class QuartzUtils {
      * @param jobKeyName 定时任务名称
      * @throws SchedulerException
      */
-    public static void resumeScheduleJob(Scheduler scheduler, String jobKeyName) {
-        String[] jobNameGroupArr = jobKeyName.split("\\.");
-        JobKey jobKey = JobKey.jobKey(jobNameGroupArr[1], jobNameGroupArr[0]);
+    public static void resumeScheduleJob(Scheduler scheduler, String jobKeyName,String groupName) {
+        JobKey jobKey = JobKey.jobKey(jobKeyName, groupName);
         try {
             scheduler.resumeJob(jobKey);
         } catch (SchedulerException e) {
@@ -144,9 +142,8 @@ public class QuartzUtils {
      * @param jobKeyName 定时任务名称
      * @throws SchedulerException
      */
-    public static void runOnce(Scheduler scheduler, String jobKeyName) {
-        String[] jobNameGroupArr = jobKeyName.split("\\.");
-        JobKey jobKey = JobKey.jobKey(jobNameGroupArr[1], jobNameGroupArr[0]);
+    public static void runOnce(Scheduler scheduler, String jobKeyName,String groupName) {
+        JobKey jobKey = JobKey.jobKey(jobKeyName, groupName);
         try {
             scheduler.triggerJob(jobKey);
         } catch (SchedulerException e) {
@@ -162,7 +159,7 @@ public class QuartzUtils {
      * @throws SchedulerException
      */
     public static void updateScheduleJob(Scheduler scheduler, QuartzBean quartzBean) {
-        deleteScheduleJob(scheduler, quartzBean.getGroupName() + "." + quartzBean.getJobName());
+        deleteScheduleJob(scheduler, quartzBean.getJobName(),quartzBean.getGroupName());
         createScheduleJob(scheduler, quartzBean);
     }
 
@@ -173,9 +170,8 @@ public class QuartzUtils {
      * @param jobKeyName 定时任务名称
      * @throws SchedulerException
      */
-    public static void deleteScheduleJob(Scheduler scheduler, String jobKeyName) {
-        String[] jobNameGroupArr = jobKeyName.split("\\.");
-        JobKey jobKey = JobKey.jobKey(jobNameGroupArr[1], jobNameGroupArr[0]);
+    public static void deleteScheduleJob(Scheduler scheduler, String jobKeyName,String groupName) {
+        JobKey jobKey = JobKey.jobKey(jobKeyName, groupName);
         try {
             if (ObjectUtils.isEmpty(jobKey)) {
                 return;

+ 2 - 2
service-base/src/main/java/com/simuwang/base/mapper/EmailParseInfoMapper.java

@@ -17,9 +17,9 @@ public interface EmailParseInfoMapper {
 
     void updateParseStatus(@Param("id") Integer id, @Param("parseStatus") int parseStatus);
 
-    List<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery);
+    List<EmailParseInfoDO> searchEmailList(EmailParseQuery emailParseQuery);
 
-    EmailParseInfoVO searchEmailById(@Param("id") Integer id);
+    EmailParseInfoDO searchEmailById(@Param("id") Integer id);
 
     Integer searchEmailCount(@Param("parseDate") String parseDate, @Param("parseStatus")Integer parseStatus);
 

+ 11 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailFileInfoDO.java

@@ -3,6 +3,7 @@ package com.simuwang.base.pojo.dos;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.simuwang.base.pojo.vo.EmailFileInfoVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -60,4 +61,14 @@ public class EmailFileInfoDO {
      */
     @TableField(value = "updatetime")
     private Date updateTime;
+
+    public EmailFileInfoVO toVO() {
+        EmailFileInfoVO vo = new EmailFileInfoVO();
+        vo.setEmailId(this.emailId);
+        vo.setFilePath(this.filePath);
+        vo.setFileName(this.fileName);
+        vo.setFundId(this.fundId);
+        vo.setEmailId(this.id);
+        return vo;
+    }
 }

+ 13 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailParseInfoDO.java

@@ -3,6 +3,8 @@ package com.simuwang.base.pojo.dos;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.EmailParseInfoVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -70,4 +72,15 @@ public class EmailParseInfoDO {
      */
     @TableField(value = "updatetime")
     private Date updateTime;
+
+    public EmailParseInfoVO toVO() {
+        EmailParseInfoVO vo = new EmailParseInfoVO();
+        vo.setEmail(this.email);
+        vo.setEmailTitle(this.emailTitle);
+        vo.setEmailType(this.emailType);
+        vo.setParseStatus(this.parseStatus);
+        vo.setParseDate(DateUtils.format(this.parseDate,DateUtils.YYYY_MM_DD_HH_MM_SS));
+        vo.setId(this.id);
+        return vo;
+    }
 }

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dto/query/EmailParseQuery.java

@@ -19,7 +19,7 @@ public class EmailParseQuery extends PageQuery {
      */
     private Integer emailType;
     /**
-     * 解析状态:1-成功,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     * 解析状态:1-成功,2-失败
      */
     private Integer parseStatus;
 

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailParseInfoVO.java

@@ -21,7 +21,7 @@ public class EmailParseInfoVO {
     /**
      * 解析日期
      */
-    private Date parseDate;
+    private String parseDate;
     /**
      * 邮件主题
      */

+ 7 - 16
service-base/src/main/resources/mapper/EmailParseInfoMapper.xml

@@ -37,13 +37,6 @@
         <result column="email_title" property="emailTitle"/>
         <result column="email_type" property="emailType"/>
         <result column="parse_status" property="parseStatus"/>
-        <!--关联属性的映射关系-->
-        <collection property="emailFileInfoList" ofType="com.simuwang.base.pojo.vo.EmailFileInfoVO">
-            <id property="id" column="fid"/>
-            <result property="fileName" column="file_name"/>
-            <result property="filePath" column="file_path"/>
-            <result property="emailId" column="email_id"/>
-        </collection>
     </resultMap>
     <sql id="selectEmailParse">
         SELECT
@@ -54,15 +47,13 @@
             epi.email_title,
             epi.email_type,
             epi.parse_status,
-            efi.id AS fid,
-            efi.file_name,
-            efi.file_path,
-            efi.email_id
+            epi.isvalid,
+            epi.creatorid,
+            epi.createtime,
+            epi.updatetime,
+            epi.updaterid
         FROM
             PPW_EMAIL.email_parse_info epi
-                LEFT JOIN PPW_EMAIL.email_file_info efi
-                          ON epi.id = efi.email_id
-                              AND efi.isvalid = 1
     </sql>
     <!-- 查询条件 -->
     <sql id="sqlwhereSearch">
@@ -85,12 +76,12 @@
             </if>
         </where>
     </sql>
-    <select id="searchEmailList" resultMap="TableResultMap">
+    <select id="searchEmailList" resultMap="BaseResultMap">
         <include refid="selectEmailParse"/>
         <include refid="sqlwhereSearch"/>
      limit #{offset},#{pageSize}
     </select>
-    <select id="searchEmailById" resultMap="TableResultMap">
+    <select id="searchEmailById" resultMap="BaseResultMap">
         <include refid="selectEmailParse"/>
         where epi.isvalid =1 and epi.id =#{id}
     </select>

+ 7 - 7
service-daq/src/main/java/com/simuwang/daq/service/NavEmailParser.java

@@ -207,16 +207,16 @@ public class NavEmailParser extends AbstractEmailParser {
         Document doc = Jsoup.parse(emailContent);
         Element table = doc.select("table").first();
         Elements rows = table.select("tr");
-        String excelFilePath = "/data/file/content/" + emailContentInfoDTO.getEmailAddress() + "/" + emailContentInfoDTO.getEmailDate().substring(0, 10).replaceAll("-", "") + "/"
+        String excelFilePath = path + "/content/" + emailContentInfoDTO.getEmailAddress() + "/" + emailContentInfoDTO.getEmailDate().substring(0, 10).replaceAll("-", "") + "/"
                 + emailContentInfoDTO.getFileName().replace(".html", ".xlsx");
-        File savefile = new File(excelFilePath);
-        if (!savefile.exists()) {
-            if (!savefile.getParentFile().exists()) {
-                savefile.getParentFile().mkdirs();
-                savefile.getParentFile().setExecutable(true);
+        File saveFile = new File(excelFilePath);
+        if (!saveFile.exists()) {
+            if (!saveFile.getParentFile().exists()) {
+                saveFile.getParentFile().mkdirs();
+                saveFile.getParentFile().setExecutable(true);
             }
         }
-        try (OutputStream outputStream = new FileOutputStream(savefile)) {
+        try (OutputStream outputStream = new FileOutputStream(saveFile)) {
             // 创建一个新的Excel工作簿
             Workbook workbook = new XSSFWorkbook();
             Sheet sheet = workbook.createSheet("Sheet1");

+ 3 - 0
service-deploy/src/main/resources/application.yml

@@ -44,6 +44,8 @@ spring:
         connection-timeout: 300000
         # keepalive time
         keepalive-time: 60000
+  task:
+    groupName: PPW_EMAIL
 
 email-rule:
   nav: "净值,业绩报酬,规模"
@@ -54,6 +56,7 @@ email:
   file:
     path: /data/file/nav
 
+
 # 配置
 simuwang:
   # 是否启用quartz定时任务功能

+ 3 - 3
service-manage/src/main/java/com/simuwang/manage/init/QuartzConfig.java

@@ -36,7 +36,7 @@ public class QuartzConfig implements ApplicationRunner {
     @Autowired
     private EmailConfigService emailConfigService;
 
-    @Value("${spring.application.name}")
+    @Value("${spring.task.groupName}")
     private String groupName;
     private String JOB_CLASS="com.simuwang.manage.task.ParseSchedulerTask";
 
@@ -71,9 +71,9 @@ public class QuartzConfig implements ApplicationRunner {
                 quartzBean.setJobParam(JSON.toJSONString(paramDTO));
                 QuartzUtils.createScheduleJob(scheduler,quartzBean);
                 if(mailboxInfoDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-                    QuartzUtils.resumeScheduleJob(scheduler,quartzBean.getJobName());
+                    QuartzUtils.resumeScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
                 }else{
-                    QuartzUtils.pauseScheduleJob(scheduler,quartzBean.getJobName());
+                    QuartzUtils.pauseScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
                 }
             }catch (Exception e) {
                 logger.error(e.getMessage(),e);

+ 6 - 6
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java

@@ -47,7 +47,7 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     @Autowired
     private Scheduler scheduler;
 
-    @Value("${spring.application.name}")
+    @Value("${spring.task.groupName}")
     private String groupName;
 
     @Autowired
@@ -79,7 +79,7 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     }
     private void addJob(MailboxInfoVO mailboxInfoVO) {
         try{
-            QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoVO.getEmail());
+            QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoVO.getEmail(),groupName);
             MailboxInfoDO infoDO = emailConfigMapper.selectEmailConfigByEmail(mailboxInfoVO.getEmail());
             QuartzBean quartzBean = new QuartzBean();
             quartzBean.setCronExpression(infoDO.getCron());
@@ -130,7 +130,7 @@ public class EmailConfigServiceImpl implements EmailConfigService {
         //删除定时任务
         for(Integer id : idList){
             MailboxInfoDO mailboxInfoDO = emailConfigMapper.searchEmailConfigById(id);
-            QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoDO.getEmail());
+            QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
         }
         emailConfigMapper.deleteEmailConfigByIds(idList);
     }
@@ -157,9 +157,9 @@ public class EmailConfigServiceImpl implements EmailConfigService {
         emailConfigMapper.updateById(mailboxInfoDO);
         //设置定时任务
         if(openStatusVO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-            QuartzUtils.resumeScheduleJob(scheduler,mailboxInfoDO.getEmail());
+            QuartzUtils.resumeScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
         }else{
-            QuartzUtils.pauseScheduleJob(scheduler,mailboxInfoDO.getEmail());
+            QuartzUtils.pauseScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
         }
 
     }
@@ -176,7 +176,7 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     @Override
     public void runOnce(Integer id) {
         MailboxInfoDO mailboxInfoDO = emailConfigMapper.searchEmailConfigById(id);
-        QuartzUtils.runOnce(scheduler,mailboxInfoDO.getEmail());
+        QuartzUtils.runOnce(scheduler,mailboxInfoDO.getEmail(),groupName);
     }
 
     @Override

+ 16 - 4
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

@@ -3,6 +3,7 @@ package com.simuwang.manage.service.impl;
 import com.simuwang.base.common.enums.ParseStatus;
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.common.util.StringUtil;
 import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
 import com.simuwang.base.mapper.EmailTypeRuleMapper;
@@ -25,6 +26,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * FileName: ParseEmailServiceImpl
@@ -75,16 +77,26 @@ public class ParseEmailServiceImpl implements ParseEmailService {
 
     @Override
     public MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery){
-        if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom)){
-            emailParseQuery.setEndDate(DateUtils.dateTimeNow());
+        if(emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
+            emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
+        }
+        if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom) && !emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
+            emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
             emailParseQuery.setStartDate( DateUtil.RangeTime(emailParseQuery.getTimeRange().getFloatDateSymbel(),DateUtil.getTodayDate()));
         }else{
             //自定义时间,把结束时间延后一天,确保时间判断能查到结束日期当天的数据
             emailParseQuery.setEndDate(DateUtil.getAroundDate(DateUtils.parse(emailParseQuery.getEndDate(),DateUtils.YYYY_MM_DD),1));
         }
-        List<EmailParseInfoVO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailParseQuery);
+        List<EmailParseInfoDO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailParseQuery);
+        List<EmailParseInfoVO> emailParseInfoVOList = emailParseInfoDOList.stream()
+                .map(EmailParseInfoDO::toVO).collect(Collectors.toList());
+        for(EmailParseInfoVO vo : emailParseInfoVOList){
+            List<EmailFileInfoDO> emailFileInfoList = emailFileInfoMapper.queryByEmailId(vo.getId());
+            List<EmailFileInfoVO> emailFileInfoVOList = emailFileInfoList.stream().map(EmailFileInfoDO::toVO).collect(Collectors.toList());
+            vo.setEmailFileInfoList(emailFileInfoVOList);
+        }
         long total = emailParseInfoMapper.countEmailList(emailParseQuery);
-        return MybatisPage.of(total,emailParseInfoDOList);
+        return MybatisPage.of(total,emailParseInfoVOList);
     }
 
     @Override