浏览代码

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

wangzaijun 7 月之前
父节点
当前提交
55f6d82635

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

@@ -16,7 +16,7 @@ public interface EmailFileInfoMapper {
 
 
     EmailFileInfoDO getEmailFileById(@Param("id") Integer fileId);
     EmailFileInfoDO getEmailFileById(@Param("id") Integer fileId);
 
 
-    List<EmailParseInfoDO> queryByEmailId(@Param("emailId") Integer emailId);
+    List<EmailFileInfoDO> queryByEmailId(@Param("emailId") Integer emailId);
 
 
     List<FundFileInfoVO> searchFundFileInfo(@Param("fundId") String fundId, @Param("fileType")Integer fileType);
     List<FundFileInfoVO> searchFundFileInfo(@Param("fundId") String fundId, @Param("fileType")Integer fileType);
 
 

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

@@ -12,5 +12,5 @@ public interface EmailFundNavMapper {
 
 
     void batchInsert(@Param("itemDoList") List<EmailFundNavDO> emailFundNavDOList);
     void batchInsert(@Param("itemDoList") List<EmailFundNavDO> emailFundNavDOList);
 
 
-    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, Integer isStored, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
 }
 }

+ 1 - 1
service-base/src/main/resources/mapper/CompanyEmailHistoryMapper.xml

@@ -47,7 +47,7 @@
         <if test="email != null and email !=''">
         <if test="email != null and email !=''">
             and cec.email like concat('',#{email},'')
             and cec.email like concat('',#{email},'')
         </if>
         </if>
-        <if test="sendStatus != null and sendStatus !=''">
+        <if test="sendStatus != null">
             and cesh.send_status=#{sendStatus}
             and cesh.send_status=#{sendStatus}
         </if>
         </if>
         group by cec.company_id
         group by cec.company_id

+ 72 - 3
service-daq/src/main/java/com/simuwang/daq/service/EmailParseApiServiceImpl.java

@@ -1,16 +1,28 @@
 package com.simuwang.daq.service;
 package com.simuwang.daq.service;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.exceptions.ExceptionUtil;
+import cn.hutool.core.map.MapUtil;
+import com.simuwang.base.common.conts.DateConst;
+import com.simuwang.base.common.util.EmailUtil;
 import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
+import com.simuwang.base.pojo.dos.EmailFileInfoDO;
 import com.simuwang.base.pojo.dos.EmailParseInfoDO;
 import com.simuwang.base.pojo.dos.EmailParseInfoDO;
+import com.simuwang.base.pojo.dto.EmailContentInfoDTO;
+import com.simuwang.base.pojo.dto.EmailFundNavDTO;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * @author mozuwen
  * @author mozuwen
@@ -46,11 +58,68 @@ public class EmailParseApiServiceImpl implements EmailParseApiService {
             log.info("邮件不存在 ->邮件id:{}", emailId);
             log.info("邮件不存在 ->邮件id:{}", emailId);
             return;
             return;
         }
         }
-        List<EmailParseInfoDO> emailParseInfoDOList = emailFileInfoMapper.queryByEmailId(emailId);
-        if (CollUtil.isNotEmpty(emailParseInfoDOList)) {
+        List<EmailFileInfoDO> emailFileInfoDOList = emailFileInfoMapper.queryByEmailId(emailId);
+        if (CollUtil.isNotEmpty(emailFileInfoDOList)) {
             log.info("该邮件不存在附件 -> 邮件id:{}", emailId);
             log.info("该邮件不存在附件 -> 邮件id:{}", emailId);
             return;
             return;
         }
         }
-        // todo 走解析流程
+        // 邮件字段识别映射表
+        Map<String, List<String>> emailFieldMap = emailParseService.getEmailFieldMapping();
+        // 邮件类型配置
+        Map<Integer, List<String>> emailTypeMap = emailParseService.getEmailType();
+
+        // 解析流程
+        List<EmailContentInfoDTO> emailContentInfoDTOList = buildEmailContentInfoDTO(emailParseInfoDO, emailFileInfoDOList, emailTypeMap);
+
+        List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
+        Map<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavMap = MapUtil.newHashMap();
+        for (EmailContentInfoDTO emailContentInfoDTO : emailContentInfoDTOList) {
+            try {
+                List<EmailFundNavDTO> fundNavDTOList = emailParseService.parseEmail(emailContentInfoDTO, emailFieldMap);
+                fileNameNavMap.put(emailContentInfoDTO, fundNavDTOList);
+                emailFundNavDTOList.addAll(fundNavDTOList);
+            } catch (Exception e) {
+                log.error("堆栈信息:{}", ExceptionUtil.stacktraceToString(e));
+            }
+        }
+        // 保存相关信息 -> 邮件信息表,邮件文件表,邮件净值表,邮件规模表,基金净值表
+        emailParseService.saveRelatedTable(emailParseInfoDO.getEmail(), emailContentInfoDTOList, fileNameNavMap);
+    }
+
+    private List<EmailContentInfoDTO> buildEmailContentInfoDTO(EmailParseInfoDO emailParseInfoDO, List<EmailFileInfoDO> emailParseInfoDOList, Map<Integer, List<String>> emailTypeMap) {
+        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 : emailParseInfoDOList) {
+            EmailContentInfoDTO contentInfoDTO = new EmailContentInfoDTO();
+            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(), emailTypeMap);
+            contentInfoDTO.setEmailType(emailType);
+            String emailContent = getEmailContent(fileInfoDO.getFilePath());
+            contentInfoDTO.setEmailContent(emailContent);
+            emailContentInfoDTOList.add(contentInfoDTO);
+        }
+        return emailContentInfoDTOList;
     }
     }
+
+    public static String getEmailContent(String filePath) {
+        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();
+    }
+
 }
 }

+ 2 - 2
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -120,13 +120,13 @@ public class EmailParseService {
         }
         }
     }
     }
 
 
-    private List<EmailFundNavDTO> parseEmail(EmailContentInfoDTO emailContentInfoDTO, Map<String, List<String>> emailFieldMap) {
+    public List<EmailFundNavDTO> parseEmail(EmailContentInfoDTO emailContentInfoDTO, Map<String, List<String>> emailFieldMap) {
         Integer emailType = emailContentInfoDTO.getEmailType();
         Integer emailType = emailContentInfoDTO.getEmailType();
         AbstractEmailParser emailParser = emailParserFactory.getInstance(emailType);
         AbstractEmailParser emailParser = emailParserFactory.getInstance(emailType);
         return emailParser.parse(emailContentInfoDTO, emailFieldMap);
         return emailParser.parse(emailContentInfoDTO, emailFieldMap);
     }
     }
 
 
-    private void saveRelatedTable(String emailAddress, List<EmailContentInfoDTO> emailContentInfoDTOList, Map<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavMap) {
+    public void saveRelatedTable(String emailAddress, List<EmailContentInfoDTO> emailContentInfoDTOList, Map<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavMap) {
         String emailTitle = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailTitle() : null;
         String emailTitle = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailTitle() : null;
         String emailDate = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailDate() : null;
         String emailDate = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailDate() : null;
         Integer emailType = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailType() : null;
         Integer emailType = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailType() : null;

+ 17 - 50
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailSendHistoryController.java

@@ -75,15 +75,9 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("delete-company-email")
     @PostMapping("delete-company-email")
-    public ResultVo deleteEmail(@RequestBody IdVO comyanyEmailIdVO){
-        ResultVo vo = new ResultVo(ResultCode.DELETE_SUCCESS);
-        try{
-            companyEmailSendHistoryService.deleteEmail(comyanyEmailIdVO.getCompanyId());
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.SAVE_FAILED);
-            logger.error(e.getMessage(),e);
-        }
-        return vo;
+    public boolean deleteEmail(@RequestBody IdVO comyanyEmailIdVO){
+        companyEmailSendHistoryService.deleteEmail(comyanyEmailIdVO.getCompanyId());
+        return true;
     }
     }
     /**
     /**
      * 根据ID批量删除邮箱发送历史数据
      * 根据ID批量删除邮箱发送历史数据
@@ -91,10 +85,9 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("delete-email-history")
     @PostMapping("delete-email-history")
-    public ResultVo deleteEmailHistory(@RequestBody IdVO comyanyEmailIdVO){
-        ResultVo vo = new ResultVo(ResultCode.DELETE_SUCCESS);
+    public boolean deleteEmailHistory(@RequestBody IdVO comyanyEmailIdVO){
         companyEmailSendHistoryService.deleteEmailHistory(comyanyEmailIdVO.getIdList());
         companyEmailSendHistoryService.deleteEmailHistory(comyanyEmailIdVO.getIdList());
-        return vo;
+        return true;
     }
     }
 
 
     /**
     /**
@@ -103,15 +96,9 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("save-email-config")
     @PostMapping("save-email-config")
-    public ResultVo saveCompanyEmailConfig(@RequestBody List<CompanyEmailConfigVO> companyEmailConfigVOList){
-        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS);
-        try{
-            companyEmailConfigService.saveCompanyEmailConfig(companyEmailConfigVOList);
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.SAVE_FAILED);
-            logger.error(e.getMessage(),e);
-        }
-        return vo;
+    public boolean saveCompanyEmailConfig(@RequestBody List<CompanyEmailConfigVO> companyEmailConfigVOList){
+        companyEmailConfigService.saveCompanyEmailConfig(companyEmailConfigVOList);
+        return true;
     }
     }
 
 
     /**
     /**
@@ -120,15 +107,9 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("update-email-config")
     @PostMapping("update-email-config")
-    public ResultVo updateCompanyEmailConfig(@RequestBody CompanyEmailConfigVO companyEmailConfigVO){
-        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS);
-        try{
-            companyEmailConfigService.updateCompanyEmailConfig(companyEmailConfigVO);
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.SAVE_FAILED);
-            logger.error(e.getMessage(),e);
-        }
-        return vo;
+    public boolean updateCompanyEmailConfig(@RequestBody CompanyEmailConfigVO companyEmailConfigVO){
+        companyEmailConfigService.updateCompanyEmailConfig(companyEmailConfigVO);
+        return true;
     }
     }
 
 
     /**
     /**
@@ -137,16 +118,9 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("delete-email-config")
     @PostMapping("delete-email-config")
-    public ResultVo deleteCompanyEmailConfig(@RequestBody IdVO comyanyEmailIdVO){
-        ResultVo vo = new ResultVo(ResultCode.DELETE_SUCCESS);
-        try{
-            companyEmailConfigService.deleteCompanyEmailConfig(comyanyEmailIdVO.getId());
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.DELETE_FAILED);
-            logger.error(e.getMessage(),e);
-            vo.setMsg(e.getMessage());
-        }
-        return vo;
+    public boolean deleteCompanyEmailConfig(@RequestBody IdVO comyanyEmailIdVO){
+        companyEmailConfigService.deleteCompanyEmailConfig(comyanyEmailIdVO.getId());
+        return true;
     }
     }
 
 
 
 
@@ -156,15 +130,8 @@ public class CompanyEmailSendHistoryController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("send-company-email")
     @PostMapping("send-company-email")
-    public ResultVo sendCompanyEmail(@RequestBody IdVO comyanyEmailIdVO){
-        ResultVo vo = new ResultVo(ResultCode.SUCCESS);
-        try{
-            companyEmailConfigService.sendCompanyEmail(comyanyEmailIdVO.getCompanyIdList());
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.SUBMIT_FAILED);
-            vo.setMsg(e.getMessage());
-            logger.error(e.getMessage(),e);
-        }
-        return vo;
+    public boolean sendCompanyEmail(@RequestBody IdVO comyanyEmailIdVO){
+        companyEmailConfigService.sendCompanyEmail(comyanyEmailIdVO.getCompanyIdList());
+        return true;
     }
     }
 }
 }

+ 1 - 0
service-manage/src/main/java/com/simuwang/manage/api/email/EmailConfigController.java

@@ -57,6 +57,7 @@ public class EmailConfigController extends BaseController {
                 return vo;
                 return vo;
             }
             }
             emailConfigService.saveEmailConfig(mailboxInfoVO);
             emailConfigService.saveEmailConfig(mailboxInfoVO);
+            vo.setData(true);
         }catch (Exception e){
         }catch (Exception e){
             vo.setCode(ResultCode.SAVE_FAILED.getCode());
             vo.setCode(ResultCode.SAVE_FAILED.getCode());
             logger.error(e.getMessage(),e);
             logger.error(e.getMessage(),e);

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

@@ -48,16 +48,9 @@ public class ParseEmailController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("/save-email-type")
     @PostMapping("/save-email-type")
-    public ResultVo saveEmailType(@RequestBody EmailTypeRuleVO emailTypeRuleVO){
-        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS);
-        try{
-            parseEmailService.saveEmailType(emailTypeRuleVO);
-        }catch (Exception e){
-            logger.error(e.getMessage(),e);
-            vo.setCode(ResultCode.SAVE_SUCCESS.getCode());
-            vo.setMsg(e.getMessage());
-        }
-        return vo;
+    public boolean saveEmailType(@RequestBody EmailTypeRuleVO emailTypeRuleVO){
+        parseEmailService.saveEmailType(emailTypeRuleVO);
+        return true;
     }
     }
 
 
     /**
     /**
@@ -148,6 +141,6 @@ public class ParseEmailController extends BaseController {
     @GetMapping("/reparse/{id}")
     @GetMapping("/reparse/{id}")
     public ResultVo reparse(@PathVariable("id")Integer id){
     public ResultVo reparse(@PathVariable("id")Integer id){
         emailParseApiService.reparseEmail(id);
         emailParseApiService.reparseEmail(id);
-        return ResultVo.ok(null);
+        return ResultVo.ok(true);
     }
     }
 }
 }

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

@@ -34,13 +34,13 @@ public class ParseEmailDetailController extends BaseController {
      */
      */
     @GetMapping("/search-nav-detail")
     @GetMapping("/search-nav-detail")
     public TableDataInfo searchNavDetail(@RequestParam(value = "fundName",required = false)String fundName,
     public TableDataInfo searchNavDetail(@RequestParam(value = "fundName",required = false)String fundName,
-                                         @RequestParam(value = "emailTitle",required = false)String emailTitle,
+                                         @RequestParam(value = "isStored",required = false)Integer isStored,
                                          @RequestParam(value = "exceptionStatus",required = false)Integer exceptionStatus,
                                          @RequestParam(value = "exceptionStatus",required = false)Integer exceptionStatus,
                                          @RequestParam(value = "priceStartDate",required = false)String priceStartDate,
                                          @RequestParam(value = "priceStartDate",required = false)String priceStartDate,
                                          @RequestParam(value = "priceEndDate",required = false)String priceEndDate,
                                          @RequestParam(value = "priceEndDate",required = false)String priceEndDate,
                                          @RequestParam(value = "updateStartDate",required = false)String updateStartDate,
                                          @RequestParam(value = "updateStartDate",required = false)String updateStartDate,
                                          @RequestParam(value = "updateEndDate",required = false)String updateEndDate){
                                          @RequestParam(value = "updateEndDate",required = false)String updateEndDate){
-        List<EmailFundNavAssetVO> result = parseEmailDetailService.searchNavDetail(fundName,emailTitle,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
+        List<EmailFundNavAssetVO> result = parseEmailDetailService.searchNavDetail(fundName,isStored,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
         return getDataTable(result);
         return getDataTable(result);
     }
     }
 }
 }

+ 3 - 9
service-manage/src/main/java/com/simuwang/manage/api/fund/FundInformationController.java

@@ -80,15 +80,9 @@ public class FundInformationController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping("/save-frequency")
     @PostMapping("/save-frequency")
-    public ResultVo saveFundReportFrequency(@RequestBody FundReportFrequencyVO fundReportFrequency){
-        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS);
-        try{
-            fundReportFrequencyService.saveFundReportFrequency(fundReportFrequency);
-        }catch (Exception e){
-            vo = new ResultVo(ResultCode.SAVE_FAILED);
-            logger.error(e.getMessage(),e);
-        }
-        return vo;
+    public boolean saveFundReportFrequency(@RequestBody FundReportFrequencyVO fundReportFrequency){
+        fundReportFrequencyService.saveFundReportFrequency(fundReportFrequency);
+        return true;
     }
     }
     /**
     /**
      * 查询基金关联的数据文件
      * 查询基金关联的数据文件

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

@@ -11,5 +11,5 @@ import java.util.List;
  * Description: ${DESCRIPTION}
  * Description: ${DESCRIPTION}
  */
  */
 public interface ParseEmailDetailService {
 public interface ParseEmailDetailService {
-    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, Integer isStored, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
 }
 }

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailDetailServiceImpl.java

@@ -20,7 +20,7 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
     @Autowired
     @Autowired
     private EmailFundNavMapper emailFundNavMapper;
     private EmailFundNavMapper emailFundNavMapper;
     @Override
     @Override
-    public List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate) {
-        return emailFundNavMapper.searchNavDetail(fundName,emailTitle,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
+    public List<EmailFundNavAssetVO> searchNavDetail(String fundName, Integer isStored, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate) {
+        return emailFundNavMapper.searchNavDetail(fundName,isStored,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
     }
     }
 }
 }