Bläddra i källkod

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

wangzaijun 7 månader sedan
förälder
incheckning
218038cd90

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

@@ -21,7 +21,7 @@ public interface EmailParseInfoMapper {
 
     EmailParseInfoDO searchEmailById(@Param("id") Integer id);
 
-    Integer searchEmailCount(@Param("parseDate") String parseDate, @Param("parseStatus")Integer parseStatus);
+    Integer searchEmailCount(@Param("startDate") String startDate,@Param("endDate") String endDate, @Param("parseStatus")Integer parseStatus);
 
     EmailParseInfoDO queryById(@Param("id") Integer id);
 

+ 2 - 2
service-base/src/main/resources/mapper/CompanyEmailConfigMapper.xml

@@ -6,7 +6,7 @@
         <if test="companyId != null and companyId != ''">company_id,</if>
         <if test="companyName != null and companyName != ''">company_name,</if>
         <if test="email != null and email != ''">email,</if>
-        <if test="openStatus != null and openStatus != ''">open_status,</if>
+        <if test="openStatus != null">open_status,</if>
         <if test="remark != null and remark != ''">remark,</if>
         <if test="creatorId != null and creatorId != ''">creatorid,</if>
         <if test="updaterId != null and updaterId != ''">updaterId,</if>
@@ -17,7 +17,7 @@
         <if test="companyId != null and companyId != ''">#{companyId},</if>
         <if test="companyName != null and companyName != ''">#{companyName},</if>
         <if test="email != null and email != ''">#{email},</if>
-        <if test="openStatus != null and openStatus != ''">#{openStatus},</if>
+        <if test="openStatus != null">#{openStatus},</if>
         <if test="remark != null and remark != ''">#{remark},</if>
         <if test="creatorId != null and creatorId != ''">#{creatorId},</if>
         <if test="updaterId != null and updaterId != ''">#{updaterId},</if>

+ 6 - 0
service-base/src/main/resources/mapper/EmailParseInfoMapper.xml

@@ -94,6 +94,12 @@
         <if test="parseStatus != null and parseStatus == -1">
             and parse_status != 1
         </if>
+        <if test="startDate != null  and startDate != ''">
+            and parse_date >= #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and parse_date <![CDATA[ <= ]]> #{endDate}
+        </if>
     </select>
 
     <select id="queryById" resultMap="BaseResultMap">

+ 10 - 22
service-daq/src/main/java/com/simuwang/daq/service/ValuationEmailParser.java

@@ -136,29 +136,17 @@ public class ValuationEmailParser extends AbstractEmailParser {
             return null;
         }
         List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
-        Map<String, List<AssetsValuationResult.Record>> dateSuccessRecordMap = parseSuccessList.stream().collect(Collectors.groupingBy(AssetsValuationResult.Record::getDate));
-        for (Map.Entry<String, List<AssetsValuationResult.Record>> successRecordEntry : dateSuccessRecordMap.entrySet()) {
-            String date = successRecordEntry.getKey();
-            List<AssetsValuationResult.Record> recordList = successRecordEntry.getValue();
-            String fundName = recordList.stream().map(AssetsValuationResult.Record::getParseValuationInfo)
-                    .filter(Objects::nonNull).map(ParseValuationInfo::getFundName).distinct().findFirst().orElse(null);
-            String registerNumber = recordList.stream().map(AssetsValuationResult.Record::getParseValuationInfo)
-                    .filter(Objects::nonNull).map(ParseValuationInfo::getRegisterNumber).distinct().findFirst().orElse(null);
-            String nav = recordList.stream().map(AssetsValuationResult.Record::getNav).filter(Objects::nonNull).distinct().findFirst().orElse(null);
-            String cumulativeNavWithdrawal = recordList.stream().map(AssetsValuationResult.Record::getCumulativeNavWithdrawal).filter(Objects::nonNull).distinct().findFirst().orElse(null);
-            String assetNet = recordList.stream().map(AssetsValuationResult.Record::getAssetNet).filter(Objects::nonNull).distinct().findFirst().orElse(null);
-            String assetShare = recordList.stream().map(AssetsValuationResult.Record::getAssetShare).filter(Objects::nonNull).distinct().findFirst().orElse(null);
-            List<String> fundIdList = recordList.stream().map(AssetsValuationResult.Record::getFundId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-
+        // 考虑一个估值表匹配到多个基金的情况
+        for (AssetsValuationResult.Record record : parseSuccessList) {
             EmailFundNavDTO fundNavDTO = new EmailFundNavDTO();
-            fundNavDTO.setFundName(fundName);
-            fundNavDTO.setRegisterNumber(registerNumber);
-            fundNavDTO.setPriceDate(date);
-            fundNavDTO.setNav(nav);
-            fundNavDTO.setCumulativeNavWithdrawal(cumulativeNavWithdrawal);
-            fundNavDTO.setAssetNet(assetNet);
-            fundNavDTO.setAssetShare(assetShare);
-            fundNavDTO.setFundIdList(fundIdList);
+            fundNavDTO.setFundName(record.getParseValuationInfo() != null ? record.getParseValuationInfo().getFundName() : null);
+            fundNavDTO.setRegisterNumber(record.getParseValuationInfo() != null ? record.getParseValuationInfo().getRegisterNumber() : null);
+            fundNavDTO.setPriceDate(record.getDate());
+            fundNavDTO.setNav(record.getNav());
+            fundNavDTO.setCumulativeNavWithdrawal(record.getCumulativeNavWithdrawal());
+            fundNavDTO.setAssetNet(record.getAssetNet());
+            fundNavDTO.setAssetShare(record.getAssetShare());
+            fundNavDTO.setFundIdList(StrUtil.isNotBlank(record.getFundId()) ? ListUtil.toList(record.getFundId()) : null);
             emailFundNavDTOList.add(fundNavDTO);
         }
         return emailFundNavDTOList;

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailController.java

@@ -89,8 +89,8 @@ public class ParseEmailController{
      * @return
      */
     @GetMapping("/search-email-count")
-    public ResultVo searchEmailCount(@RequestParam("timeRange") TimeRange timeRange){
-        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange);
+    public ResultVo searchEmailCount(@RequestParam("timeRange") TimeRange timeRange,@RequestParam(value = "startDate",required = false)String startDate,@RequestParam(value = "endDate",required = false)String endDate){
+        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange,startDate,endDate);
         return ResultVo.ok(result);
     }
 

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

@@ -69,14 +69,8 @@ public class QuartzConfig implements ApplicationRunner {
                 paramDTO.setHost(mailboxInfoDO.getServer());
                 paramDTO.setProtocol(mailboxInfoDO.getProtocol());
                 quartzBean.setJobParam(JSON.toJSONString(paramDTO));
-                QuartzUtils.createScheduleJob(scheduler,quartzBean);
-                if(mailboxInfoDO.getOpenStatus() == null){
-                    continue;
-                }
-                if(mailboxInfoDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-                    QuartzUtils.resumeScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
-                }else{
-                    QuartzUtils.pauseScheduleJob(scheduler,quartzBean.getJobName(),quartzBean.getGroupName());
+                if(mailboxInfoDO.getOpenStatus() != null && mailboxInfoDO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
+                    QuartzUtils.createScheduleJob(scheduler,quartzBean);
                 }
             }catch (Exception e) {
                 logger.error(e.getMessage(),e);

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/ParseEmailService.java

@@ -26,7 +26,7 @@ public interface ParseEmailService {
 
     MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery);
 
-    Map<String, Integer> searchEmailCount(TimeRange timeRange);
+    Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate);
 
     EmailFileInfoVO getEmailFileById(Integer fileId);
 

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

@@ -156,12 +156,24 @@ public class EmailConfigServiceImpl implements EmailConfigService {
         mailboxInfoDO.setUpdateTime(DateUtils.getNowDate());
         emailConfigMapper.updateById(mailboxInfoDO);
         //设置定时任务
+        QuartzUtils.deleteScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
         if(openStatusVO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
-            QuartzUtils.resumeScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
-        }else{
-            QuartzUtils.pauseScheduleJob(scheduler,mailboxInfoDO.getEmail(),groupName);
+            QuartzBean quartzBean = new QuartzBean();
+            quartzBean.setCronExpression(mailboxInfoDO.getCron());
+            quartzBean.setStatus(mailboxInfoDO.getOpenStatus());
+            quartzBean.setGroupName(groupName);
+            quartzBean.setJobName(mailboxInfoDO.getEmail());
+            quartzBean.setJobClass(JOB_CLASS);
+            //请求参数
+            MailboxInfoDTO paramDTO = new MailboxInfoDTO();
+            paramDTO.setAccount(mailboxInfoDO.getEmail());
+            paramDTO.setPassword(mailboxInfoDO.getPassword());
+            paramDTO.setPort(mailboxInfoDO.getPort());
+            paramDTO.setHost(mailboxInfoDO.getServer());
+            paramDTO.setProtocol(mailboxInfoDO.getProtocol());
+            quartzBean.setJobParam(JSON.toJSONString(paramDTO));
+            QuartzUtils.createScheduleJob(scheduler,quartzBean);
         }
-
     }
     @Override
     public List<MailboxInfoDO> getAll() {

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

@@ -79,7 +79,7 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     @Override
     public MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery){
         if(emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
-            emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
+            emailParseQuery.setEndDate(DateUtil.getTodayDate());
         }
         if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom) && !emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
             emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
@@ -101,14 +101,23 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public Map<String, Integer> searchEmailCount(TimeRange timeRange) {
+    public Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate) {
+        if(timeRange.equals(TimeRange.FromSetup)){
+            endDate= DateUtil.getTodayDate();
+        }
+        if(!timeRange.equals(TimeRange.Custom) && !timeRange.equals(TimeRange.FromSetup)){
+            endDate = DateUtils.getAroundToday(1);
+            startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),DateUtil.getTodayDate());
+        }else{
+            //自定义时间,把结束时间延后一天,确保时间判断能查到结束日期当天的数据
+            endDate = DateUtil.getAroundDate(DateUtils.parse(endDate,DateUtils.YYYY_MM_DD),1);
+        }
         Map<String, Integer> result = new HashMap<>();
-        String parseDate = getParseDate(timeRange, DateUtils.getDate());
-        Integer parseTotal = emailParseInfoMapper.searchEmailCount(parseDate,null);
+        Integer parseTotal = emailParseInfoMapper.searchEmailCount(startDate,endDate,null);
         result.put("parseTotal",parseTotal);
-        Integer parseSuccess = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Success.getCode());
+        Integer parseSuccess = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Success.getCode());
         result.put("parseSuccess",parseSuccess);
-        Integer parseFail = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Fail.getCode());
+        Integer parseFail = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Fail.getCode());
         result.put("parseFail",parseFail);
         return result;
     }