Parcourir la source

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

wangzaijun il y a 7 mois
Parent
commit
024f5cca48
23 fichiers modifiés avec 402 ajouts et 15 suppressions
  1. 29 0
      service-base/src/main/java/com/simuwang/base/common/enums/OpenStatusType.java
  2. 2 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailFileInfoMapper.java
  3. 2 0
      service-base/src/main/java/com/simuwang/base/mapper/EmailFundNavMapper.java
  4. 1 1
      service-base/src/main/java/com/simuwang/base/mapper/EmailParseInfoMapper.java
  5. 74 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/EmailFundNavAssetVO.java
  6. 21 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/FundFileInfoVO.java
  7. 1 1
      service-base/src/main/java/com/simuwang/base/pojo/vo/FundReportFrequencyVO.java
  8. 4 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/IdVO.java
  9. 17 0
      service-base/src/main/resources/mapper/EmailFileInfoMapper.xml
  10. 17 1
      service-base/src/main/resources/mapper/EmailFundNavMapper.xml
  11. 6 0
      service-base/src/main/resources/mapper/EmailParseInfoMapper.xml
  12. 22 2
      service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailSendHistoryController.java
  13. 13 5
      service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailController.java
  14. 46 0
      service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailDetailController.java
  15. 18 0
      service-manage/src/main/java/com/simuwang/manage/api/fund/FundInformationController.java
  16. 2 0
      service-manage/src/main/java/com/simuwang/manage/service/CompanyEmailConfigService.java
  17. 15 0
      service-manage/src/main/java/com/simuwang/manage/service/EmailFundInfoService.java
  18. 15 0
      service-manage/src/main/java/com/simuwang/manage/service/ParseEmailDetailService.java
  19. 3 2
      service-manage/src/main/java/com/simuwang/manage/service/ParseEmailService.java
  20. 24 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java
  21. 28 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/EmailFundInfoServiceImpl.java
  22. 26 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailDetailServiceImpl.java
  23. 16 3
      service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

+ 29 - 0
service-base/src/main/java/com/simuwang/base/common/enums/OpenStatusType.java

@@ -0,0 +1,29 @@
+package com.simuwang.base.common.enums;
+
+import java.util.stream.Stream;
+
+/**
+ * FileName: OpenStatusType
+ * Author:   chenjianhua
+ * Date:     2024/9/13 9:14
+ * Description: ${DESCRIPTION}
+ */
+public enum OpenStatusType {
+    YES(1, "是"), NO(0, "否");
+
+    private final Integer code;
+    private final String msg;
+
+    OpenStatusType(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

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

@@ -2,6 +2,7 @@ package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.EmailFileInfoDO;
 import com.simuwang.base.pojo.dos.EmailParseInfoDO;
+import com.simuwang.base.pojo.vo.FundFileInfoVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -16,4 +17,5 @@ public interface EmailFileInfoMapper {
 
     List<EmailParseInfoDO> queryByEmailId(@Param("emailId") Integer emailId);
 
+    List<FundFileInfoVO> searchFundFileInfo(@Param("fundId") String fundId, @Param("fileType")Integer fileType);
 }

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

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.EmailFundNavDO;
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +12,5 @@ public interface EmailFundNavMapper {
 
     void batchInsert(@Param("itemDoList") List<EmailFundNavDO> emailFundNavDOList);
 
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
 }

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

@@ -14,7 +14,7 @@ public interface EmailParseInfoMapper {
 
     void updateParseStatus(@Param("id") Integer id, @Param("parseStatus") int parseStatus);
 
-    List<EmailParseInfoVO> searchEmailList(@Param("emailTitle") String emailTitle, @Param("emailType") Integer emailType, @Param("parseStatus")  Integer parseStatus);
+    List<EmailParseInfoVO> searchEmailList(@Param("emailTitle") String emailTitle, @Param("emailType") Integer emailType, @Param("parseStatus")  Integer parseStatus,@Param("startDate")String startDate,@Param("endDate")String endDate);
 
     EmailParseInfoVO searchEmailById(@Param("id") Integer id);
 

+ 74 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailFundNavAssetVO.java

@@ -0,0 +1,74 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class EmailFundNavAssetVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 基金id
+     */
+    private String fundId;
+    /**
+     * 邮件解析的基金名称
+     */
+    private String fundName;
+    /**
+     * 邮件解析的备案编码
+     */
+    private String registerNumber;
+    /**
+     * 净值日期
+     */
+    private String priceDate;
+    /**
+     * 单位净值
+     */
+    private BigDecimal nav;
+    /**
+     * 累计单位净值
+     */
+    private BigDecimal cumulativeNavWithdrawal;
+    /**
+     * 是否入库 0-没有,1-有
+     */
+    private Integer isStored;
+    /**
+     * 异常情况:1-无异常,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     */
+    private Integer exceptionStatus;
+    /**
+     * 资产份额
+     */
+    private BigDecimal assetShare;
+    /**
+     * 资产净值(基金规模)
+     */
+    private BigDecimal assetNet;
+
+    /**
+     * 匹配的基金ID
+     */
+    private String targetFundId;
+
+    /**
+     * 匹配的基金名称
+     */
+    private String targetFundName;
+
+    /**
+     *  邮件主题
+     */
+    private String emailTitle;
+
+    /**
+     *  更新日期
+     */
+    private String upateTime;
+}

+ 21 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundFileInfoVO.java

@@ -0,0 +1,21 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+/**
+ * 基金关联文件信息
+ * Author:   chenjianhua
+ * Date:     2024/9/13 9:51
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FundFileInfoVO {
+
+    private String fundId;
+
+    private String fundName;
+
+    private String fileName;
+
+    private String filePath;
+}

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

@@ -16,7 +16,7 @@ import java.util.Date;
 @Data
 public class FundReportFrequencyVO {
     /**
-     * 基金ID
+     * 基金ID,批量保存的时候使用逗号隔开
      */
     private String fundId;
     /**

+ 4 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/IdVO.java

@@ -25,4 +25,8 @@ public class IdVO {
      * 批量ID集合
      */
     private List<Integer> idList;
+    /**
+     * 批量CompanyId集合
+     */
+    private List<String> companyIdList;
 }

+ 17 - 0
service-base/src/main/resources/mapper/EmailFileInfoMapper.xml

@@ -34,5 +34,22 @@
         where email - id = #{emailId}
           and isvalid = 1
     </select>
+    <select id="searchFundFileInfo" resultType="com.simuwang.base.pojo.vo.FundFileInfoVO">
+        SELECT DISTINCT
+            efn.fund_id as "fundId",
+            efn.fund_name as "fundName",
+            efi.file_name as "fileName",
+            efi.file_path as "filePath"
+        FROM
+            EMAIL_FILE_INFO efi
+                JOIN EMAIL_FUND_NAV efn
+                     ON efi.id = efn.file_id
+                JOIN EMAIL_PARSE_INFO epi
+                     ON epi.id = efi.email_id
+        WHERE efi.isvalid = 1
+          AND efn.isvalid = 1
+          AND epi.isvalid = 1
+          AND epi.EMAIL_TYPE = #{fileType} and efn.fund_id=#{fundId}
+    </select>
 
 </mapper>

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

@@ -29,8 +29,24 @@
              #{itemDo.nav},#{itemDo.cumulativeNavWithdrawal},#{itemDo.isStored},#{itemDo.exceptionStatus},
             #{itemDo.isvalid}, #{itemDo.creatorId}, #{itemDo.createTime}, #{itemDo.updaterId}, #{itemDo.updateTime})
         </foreach>
-
     </insert>
+    <resultMap id="BaseSearchMap" type="com.simuwang.base.pojo.vo.EmailFundNavAssetVO">
+        <id column="id" property="id"/>
+        <result column="fund_id" property="fundId"/>
+        <result column="fund_name" property="fundName"/>
+        <result column="register_number" property="registerNumber"/>
+        <result column="price_date" property="priceDate"/>
+        <result column="nav" property="nav"/>
+        <result column="cumulative_nav_withdrawal" property="cumulativeNavWithdrawal"/>
+        <result column="asset_net" property="assetNet"/>
+        <result column="asset_share" property="assetShare"/>
+        <result column="is_stored" property="isStored"/>
+        <result column="exception_status" property="exceptionStatus"/>
+        <result column="target_fund_id" property="targetFundId"/>
+    </resultMap>
+    <select id="searchNavDetail" resultType="com.simuwang.base.pojo.vo.EmailFundNavAssetVO">
+
+    </select>
 
 
 </mapper>

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

@@ -77,6 +77,12 @@
             <if test="parseStatus !=null and parseStatus != ''">
                 and epi.parse_status = #{parseStatus}
             </if>
+            <if test="startDate !=null and startDate != ''">
+                and epi.parse_date <![CDATA[ >= ]]> #{startDate}
+            </if>
+            <if test="endDate !=null and endDate != ''">
+                and epi.parse_date <![CDATA[ <= ]]> #{endDate}
+            </if>
         </where>
     </sql>
     <select id="searchEmailList" resultMap="TableResultMap">

+ 22 - 2
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailSendHistoryController.java

@@ -87,7 +87,7 @@ public class CompanyEmailSendHistoryController extends BaseController {
     }
     /**
      * 根据ID批量删除邮箱发送历史数据
-     * @param comyanyEmailIdVO
+     * @param comyanyEmailIdVO 已选行的idList
      * @return
      */
     @PostMapping("delete-email-history")
@@ -133,7 +133,7 @@ public class CompanyEmailSendHistoryController extends BaseController {
 
     /**
      * 根据ID删除邮箱配置
-     * @param comyanyEmailIdVO
+     * @param comyanyEmailIdVO --id
      * @return
      */
     @PostMapping("delete-email-config")
@@ -144,6 +144,26 @@ public class CompanyEmailSendHistoryController extends BaseController {
         }catch (Exception e){
             vo = new ResultVo(ResultCode.DELETE_FAILED);
             logger.error(e.getMessage(),e);
+            vo.setMsg(e.getMessage());
+        }
+        return vo;
+    }
+
+
+    /**
+     * 根据IDList发送数据确实邮件
+     * @param comyanyEmailIdVO  已选行的companyIdList
+     * @return
+     */
+    @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;
     }

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

@@ -10,6 +10,7 @@ import com.simuwang.daq.service.EmailParseApiService;
 import com.simuwang.manage.api.base.BaseController;
 import com.simuwang.manage.service.ParseEmailService;
 import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.TimeRange;
 import com.smppw.common.pojo.enums.status.ResultCode;
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
@@ -74,13 +75,20 @@ public class ParseEmailController extends BaseController {
      * @param emailTitle -邮件标题
      * @param emailType -邮件类型
      * @param parseStatus 解析状态:1-成功,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     * @param emailType -邮件类型
+     * @param timeRange Last1Week-近一周,Last1Month-近一个月,Last3Months-近三月,LastHalfYear-近半年,Last1Year-近一年,FromSetup-全部,Custom-自定义
+     * @param startDate -开始时间,timeRange。Custom才有数据
+     * @param endDate -结束时间,timeRange。Custom才有数据
      * @return
      */
     @GetMapping("/search-email-list")
     public TableDataInfo searchEmailList(@RequestParam(value = "emailTitle",required = false)String emailTitle,
                                          @RequestParam(value = "emailType",required = false)Integer emailType,
-                                         @RequestParam(value = "parseStatus",required = false)Integer parseStatus){
-        List<EmailParseInfoVO> result = parseEmailService.searchEmailList(emailTitle,emailType,parseStatus);
+                                         @RequestParam(value = "parseStatus",required = false)Integer parseStatus,
+                                         @RequestParam(value = "timeRange",required = false)TimeRange timeRange,
+                                         @RequestParam(value = "startDate",required = false)String startDate,
+                                         @RequestParam(value = "endDate",required = false)String endDate){
+        List<EmailParseInfoVO> result = parseEmailService.searchEmailList(emailTitle,emailType,parseStatus,timeRange,startDate,endDate);
         return getDataTable(result);
     }
 
@@ -97,12 +105,12 @@ public class ParseEmailController extends BaseController {
 
     /**
      * 解析邮件数据统计
-     * @param parseDate
+     * @param timeRange Last1Week-近一周,Last1Month-近一个月,Last3Months-近三月,LastHalfYear-近半年,Last1Year-近一年,FromSetup-全部,Custom-自定义
      * @return
      */
     @GetMapping("/search-email-count")
-    public ResultVo searchEmailCount(@RequestParam("parseDate") String parseDate){
-        Map<String,Integer> result = parseEmailService.searchEmailCount(parseDate);
+    public ResultVo searchEmailCount(TimeRange timeRange){
+        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange);
         return ResultVo.ok(result);
     }
 

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

@@ -0,0 +1,46 @@
+package com.simuwang.manage.api.email;
+
+import com.simuwang.base.common.page.TableDataInfo;
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
+import com.simuwang.manage.api.base.BaseController;
+import com.simuwang.manage.service.ParseEmailDetailService;
+import com.smppw.common.pojo.enums.TimeRange;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
+/**
+ *  数据详情
+ * Author:   chenjianhua
+ * Date:     2024/9/10 11:21
+ * Description: ${DESCRIPTION}
+ */
+@RestController
+@RequestMapping("/v1/detail")
+public class ParseEmailDetailController extends BaseController {
+
+    @Autowired
+    private ParseEmailDetailService parseEmailDetailService;
+    /**
+     * 数据详情页面展示查询接口
+     * @param fundName
+     * @param fundName
+     * @param exceptionStatus
+     * @param priceStartDate
+     * @param priceEndDate
+     * @param updateStartDate
+     * @param updateEndDate
+     * @return
+     */
+    @GetMapping("/search-nav-detail")
+    public TableDataInfo searchNavDetail(@RequestParam(value = "fundName",required = false)String fundName,
+                                         @RequestParam(value = "emailTitle",required = false)String emailTitle,
+                                         @RequestParam(value = "exceptionStatus",required = false)Integer exceptionStatus,
+                                         @RequestParam(value = "priceStartDate",required = false)String priceStartDate,
+                                         @RequestParam(value = "priceEndDate",required = false)String priceEndDate,
+                                         @RequestParam(value = "updateStartDate",required = false)String updateStartDate,
+                                         @RequestParam(value = "updateEndDate",required = false)String updateEndDate){
+        List<EmailFundNavAssetVO> result = parseEmailDetailService.searchNavDetail(fundName,emailTitle,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
+        return getDataTable(result);
+    }
+}

+ 18 - 0
service-manage/src/main/java/com/simuwang/manage/api/fund/FundInformationController.java

@@ -1,13 +1,16 @@
 package com.simuwang.manage.api.fund;
 
 import com.simuwang.base.common.page.TableDataInfo;
+import com.simuwang.base.pojo.vo.FundFileInfoVO;
 import com.simuwang.base.pojo.vo.FundInformationVO;
 import com.simuwang.base.pojo.vo.FundReportFrequencyVO;
 import com.simuwang.manage.api.base.BaseController;
+import com.simuwang.manage.service.EmailFundInfoService;
 import com.simuwang.manage.service.FundInformationService;
 import com.simuwang.manage.service.FundReportFrequencyService;
 import com.smppw.common.pojo.ResultVo;
 import com.smppw.common.pojo.enums.status.ResultCode;
+import org.apache.ibatis.annotations.Param;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +37,8 @@ public class FundInformationController extends BaseController {
 
     @Autowired
     private FundReportFrequencyService fundReportFrequencyService;
+    @Autowired
+    private EmailFundInfoService emailFundInfoService;
     /**
      * 基金搜索输入框查询
      * @param keyword
@@ -85,5 +90,18 @@ public class FundInformationController extends BaseController {
         }
         return vo;
     }
+    /**
+     * 查询基金关联的数据文件
+     * @param fundId 基金ID
+     * @param fileType  文件类型,估值表转2,定期报告传3
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/search-fund-file")
+    public TableDataInfo searchFundFileInfo(@RequestParam("fundId")String fundId,@RequestParam("fileType")Integer fileType,@RequestParam(value = "pageNum",required = false)Integer pageNum,@RequestParam(value ="pageSize",required = false)Integer pageSize){
+        List<FundFileInfoVO> result = emailFundInfoService.searchFundFileInfo(fundId,fileType);
+        return getDataTable(result);
+    }
 
 }

+ 2 - 0
service-manage/src/main/java/com/simuwang/manage/service/CompanyEmailConfigService.java

@@ -17,4 +17,6 @@ public interface CompanyEmailConfigService {
     void deleteCompanyEmailConfig(Integer id);
 
     void updateCompanyEmailConfig(CompanyEmailConfigVO companyEmailConfigVO);
+
+    void sendCompanyEmail(List<String> idList);
 }

+ 15 - 0
service-manage/src/main/java/com/simuwang/manage/service/EmailFundInfoService.java

@@ -0,0 +1,15 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.pojo.vo.FundFileInfoVO;
+
+import java.util.List;
+
+/**
+ * FileName: EmailFundInfoService
+ * Author:   chenjianhua
+ * Date:     2024/9/13 9:55
+ * Description: ${DESCRIPTION}
+ */
+public interface EmailFundInfoService {
+    List<FundFileInfoVO> searchFundFileInfo(String fundId, Integer fileType);
+}

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

@@ -0,0 +1,15 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
+
+import java.util.List;
+
+/**
+ * FileName: ParseEmailDetailService
+ * Author:   chenjianhua
+ * Date:     2024/9/12 23:08
+ * Description: ${DESCRIPTION}
+ */
+public interface ParseEmailDetailService {
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
+}

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

@@ -3,6 +3,7 @@ package com.simuwang.manage.service;
 import com.simuwang.base.pojo.vo.EmailFileInfoVO;
 import com.simuwang.base.pojo.vo.EmailParseInfoVO;
 import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
+import com.smppw.common.pojo.enums.TimeRange;
 
 import java.util.List;
 import java.util.Map;
@@ -19,11 +20,11 @@ public interface ParseEmailService {
 
     EmailTypeRuleVO searchEmailType();
 
-    List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus);
+    List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus,TimeRange timeRange,String startDate,String endDate);
 
     EmailParseInfoVO searchEmailById(Integer id);
 
-    Map<String, Integer> searchEmailCount(String parseDate);
+    Map<String, Integer> searchEmailCount(TimeRange timeRange);
 
     EmailFileInfoVO getEmailFileById(Integer fileId);
 }

+ 24 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -1,5 +1,6 @@
 package com.simuwang.manage.service.impl;
 
+import com.simuwang.base.common.enums.OpenStatusType;
 import com.simuwang.base.mapper.CompanyEmailConfigMapper;
 import com.simuwang.base.pojo.dos.CompanyEmailConfigDO;
 import com.simuwang.base.pojo.vo.CompanyEmailConfigVO;
@@ -7,6 +8,7 @@ import com.simuwang.manage.service.CompanyEmailConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -65,4 +67,26 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             companyEmailConfigMapper.updateCompanyEmailConfig(configDO);
         }
     }
+
+    @Override
+    public void sendCompanyEmail(List<String> companyIdList) {
+        for(String companyId : companyIdList){
+            List<CompanyEmailConfigVO> configVOs = companyEmailConfigMapper.searchEmailConfig(companyId);
+            if(configVOs .size() > 0){
+                List<String> emailList = new ArrayList<>();
+                for(CompanyEmailConfigVO configVO : configVOs){
+                    if(configVO.getOpenStatus().equals(OpenStatusType.YES.getCode())){
+                        //获取开启的邮箱地址
+                        emailList.add(configVO.getEmail());
+                    }
+                }
+                //把缺失数据的邮件发送到该公司名下的邮箱地址
+                sendEmail(companyId,emailList);
+            }
+        }
+    }
+    //邮件校验处理
+    private void sendEmail(String companyId, List<String> emailList) {
+
+    }
 }

+ 28 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailFundInfoServiceImpl.java

@@ -0,0 +1,28 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.mapper.EmailFileInfoMapper;
+import com.simuwang.base.pojo.vo.FundFileInfoVO;
+import com.simuwang.manage.service.EmailFundInfoService;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * FileName: EmailFundInfoServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/9/13 9:55
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class EmailFundInfoServiceImpl implements EmailFundInfoService {
+
+    @Autowired
+    private EmailFileInfoMapper emailFileInfoMapper;
+
+    @Override
+    public List<FundFileInfoVO> searchFundFileInfo(String fundId, Integer fileType) {
+        return emailFileInfoMapper.searchFundFileInfo(fundId,fileType);
+    }
+}

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

@@ -0,0 +1,26 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.mapper.EmailFundNavMapper;
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
+import com.simuwang.manage.service.ParseEmailDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * FileName: ParseEmailDetailServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/9/12 23:08
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
+
+    @Autowired
+    private EmailFundNavMapper emailFundNavMapper;
+    @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);
+    }
+}

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

@@ -1,6 +1,7 @@
 package com.simuwang.manage.service.impl;
 
 import com.simuwang.base.common.enums.ParseStatus;
+import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
 import com.simuwang.base.mapper.EmailTypeRuleMapper;
@@ -11,6 +12,8 @@ import com.simuwang.base.pojo.vo.EmailFileInfoVO;
 import com.simuwang.base.pojo.vo.EmailParseInfoVO;
 import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
 import com.simuwang.manage.service.ParseEmailService;
+import com.smppw.common.pojo.enums.TimeRange;
+import com.smppw.utils.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -67,8 +70,12 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus) {
-        List<EmailParseInfoVO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailTitle,emailType,parseStatus);
+    public List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus,TimeRange timeRange,String startDate,String endDate) {
+        if(!timeRange.equals(TimeRange.Custom)){
+            endDate = DateUtil.getTodayDate();
+            startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),endDate);
+        }
+        List<EmailParseInfoVO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailTitle,emailType,parseStatus,startDate,endDate);
         return emailParseInfoDOList;
     }
 
@@ -78,8 +85,9 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public Map<String, Integer> searchEmailCount(String parseDate) {
+    public Map<String, Integer> searchEmailCount(TimeRange timeRange) {
         Map<String, Integer> result = new HashMap<>();
+        String parseDate = getParseDate(timeRange, DateUtils.getDate());
         Integer parseTotal = emailParseInfoMapper.searchEmailCount(parseDate,null);
         result.put("parseTotal",parseTotal);
         Integer parseSuccess = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Success.getCode());
@@ -89,6 +97,11 @@ public class ParseEmailServiceImpl implements ParseEmailService {
         return result;
     }
 
+    private String getParseDate(TimeRange timeRange, String date) {
+        String preDate =DateUtil.RangeTime(timeRange.getFloatDateSymbel(),date);
+        return preDate;
+    }
+
     @Override
     public EmailFileInfoVO getEmailFileById(Integer fileId) {
         EmailFileInfoDO emailFileInfoDO = emailFileInfoMapper.getEmailFileById(fileId);