1
0
Просмотр исходного кода

feat: 邮件解析详情增加异常字段

chenjianhua 7 месяцев назад
Родитель
Сommit
01e54b92bf

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

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.EmailFileInfoDO;
+import com.simuwang.base.pojo.dos.EmailParseDetailDO;
 import com.simuwang.base.pojo.dto.query.EmailFileQuery;
 import com.simuwang.base.pojo.dto.query.FundFilePageQuery;
 import com.simuwang.base.pojo.vo.EmailParseDetailVO;
@@ -23,7 +24,7 @@ public interface EmailFileInfoMapper {
 
     List<FundFileInfoVO> searchFundFileInfo(FundFilePageQuery fundFilePageQuery);
 
-    List<EmailParseDetailVO> searchEmailDetailById(EmailFileQuery emailFileQuery);
+    List<EmailParseDetailDO> searchEmailDetailById(EmailFileQuery emailFileQuery);
 
     long countFundFileInfo(FundFilePageQuery fundFilePageQuery);
 

+ 90 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailParseDetailDO.java

@@ -0,0 +1,90 @@
+package com.simuwang.base.pojo.dos;
+
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.EmailParseDetailVO;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * FileName: EmailParseDetailDO
+ * Author:   chenjianhua
+ * Date:     2024/9/18 18:38
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class EmailParseDetailDO {
+    /**
+     * 邮件解析的基金名称
+     */
+    private String fundId;
+    /**
+     * 邮件解析的基金名称
+     */
+    private String fundName;
+    /**
+     * 邮件解析的备案编码
+     */
+    private String registerNumber;
+    /**
+     * 净值日期
+     */
+    private String priceDate;
+    /**
+     * 单位净值
+     */
+    private BigDecimal nav;
+    /**
+     * 累计单位净值
+     */
+    private BigDecimal cumulativeNavWithdrawal;
+    /**
+     * 资产份额
+     */
+    private BigDecimal assetShare;
+    /**
+     * 资产净值(基金规模)
+     */
+    private BigDecimal assetNet;
+    /**
+     * 净值入库情况 0-未入库,1-入库
+     */
+    private Integer navIsStored;
+    /**
+     * 净值异常情况:1-无异常,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     */
+    private Integer navExceptionStatus;
+
+    /**
+     * 规模入库情况 0-未入库,1-入库
+     */
+    private Integer assetIsStored;
+    /**
+     * 规模异常情况:1-无异常,2-资产净值<=0
+     */
+    private Integer assetExceptionStatus;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    public EmailParseDetailVO toVO() {
+        EmailParseDetailVO vo = new EmailParseDetailVO();
+        vo.setFundId(this.fundId);
+        vo.setFundName(this.fundName);
+        vo.setRegisterNumber(this.registerNumber);
+        vo.setPriceDate(this.priceDate);
+        vo.setNav(this.nav);
+        vo.setCumulativeNavWithdrawal(this.cumulativeNavWithdrawal);
+        vo.setAssetNet(this.assetNet);
+        vo.setAssetShare(this.assetShare);
+        vo.setUpdateTime(DateUtils.format(this.updateTime,DateUtils.YYYY_MM_DD_HH_MM_SS));
+        vo.setNavIsStored(this.navIsStored);
+        vo.setNavExceptionStatus(this.navExceptionStatus);
+        vo.setAssetIsStored(this.assetIsStored);
+        vo.setAssetExceptionStatus(this.assetExceptionStatus);
+        return vo;
+    }
+}

+ 5 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailParseDetailVO.java

@@ -56,4 +56,9 @@ public class EmailParseDetailVO {
      */
     private Integer assetExceptionStatus;
 
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+
 }

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

@@ -60,7 +60,7 @@
         limit #{offset},#{pageSize}
     </select>
 
-    <resultMap id="BaseDetailMap" type="com.simuwang.base.pojo.vo.EmailParseDetailVO">
+    <resultMap id="BaseDetailMap" type="com.simuwang.base.pojo.dos.EmailParseDetailDO">
         <result column="fund_id" property="fundId"/>
         <result column="fund_name" property="fundName"/>
         <result column="register_number" property="registerNumber"/>
@@ -73,6 +73,7 @@
         <result column="nav_exception_status" property="navExceptionStatus"/>
         <result column="asset_is_stored" property="assetIsStored"/>
         <result column="asset_exception_status" property="assetExceptionStatus"/>
+        <result column="updatetime" property="updateTime"/>
     </resultMap>
     <select id="searchEmailDetailById" resultMap="BaseDetailMap">
         SELECT distinct
@@ -87,7 +88,17 @@
             nav.is_stored as nav_is_stored,
             nav.exception_status as nav_exception_status,
             asset.is_stored as asset_is_stored,
-            asset.exception_status as asset_exception_status
+            asset.exception_status as asset_exception_status,
+            case
+            when nav.updatetime is null then
+            asset.updatetime
+            when asset.updatetime is null then
+            nav.updatetime
+            when nav.updatetime >= asset.updatetime then
+                nav.updatetime
+            else
+                asset.updatetime
+         end as updatetime
         FROM
             PPW_EMAIL.EMAIL_FILE_INFO efi
                 LEFT JOIN PPW_EMAIL.email_fund_nav nav

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

@@ -8,6 +8,7 @@ import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
 import com.simuwang.base.mapper.EmailTypeRuleMapper;
 import com.simuwang.base.pojo.dos.EmailFileInfoDO;
+import com.simuwang.base.pojo.dos.EmailParseDetailDO;
 import com.simuwang.base.pojo.dos.EmailParseInfoDO;
 import com.simuwang.base.pojo.dos.EmailTypeRuleDO;
 import com.simuwang.base.pojo.dto.query.EmailFileQuery;
@@ -133,7 +134,8 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     @Override
     public MybatisPage<EmailParseDetailVO> searchEmailDetailById(EmailFileQuery emailFileQuery) {
         //根据邮件ID获取附件信息
-        List<EmailParseDetailVO> result = emailFileInfoMapper.searchEmailDetailById(emailFileQuery);
+        List<EmailParseDetailDO> dataList = emailFileInfoMapper.searchEmailDetailById(emailFileQuery);
+        List<EmailParseDetailVO> result = dataList.stream().map(EmailParseDetailDO::toVO).collect(Collectors.toList());
         long total = emailFileInfoMapper.countEmailDetailById(emailFileQuery);
         return MybatisPage.of(total,result);
     }