Преглед изворни кода

feat: 数据看板前端返回结构调整

chenjianhua пре 6 месеци
родитељ
комит
27be2cf967

+ 5 - 3
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailParseFailAnalysisVO.java

@@ -2,6 +2,8 @@ package com.simuwang.base.pojo.vo;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * FileName: EmailParseFailAnalysisVO
  * Author:   chenjianhua
@@ -13,13 +15,13 @@ public class EmailParseFailAnalysisVO {
     /**
      * 净值类型邮件返回结构
      */
-    private NavFailAnalysisVO navFailAnalysisVO;
+    private List<NameValueVO> navFailAnalysisVO;
     /**
      * 估值表类型邮件返回结构
      */
-    private ValuationFailAnalysisVO valuationFailAnalysisVO;
+    private List<NameValueVO> valuationFailAnalysisVO;
     /**
      * 报告类型邮件返回结构
      */
-    private ReportFailAnalysisVO reportFailAnalysisVO;
+    private List<NameValueVO> reportFailAnalysisVO;
 }

+ 16 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/NameValueVO.java

@@ -0,0 +1,16 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+/**
+ * FileName: NameValueVO
+ * Author:   chenjianhua
+ * Date:     2024/10/14 17:20
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class NameValueVO {
+    private Long value;
+
+    private String name;
+}

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

@@ -900,78 +900,133 @@ public class EmailParseService {
         }
         return null;
     }
-    public EmailParseCountBoardVO searchEmailCount(DataboardQuery databoardQuery) {
+    public List<NameValueVO> searchEmailCount(DataboardQuery databoardQuery) {
         List<Map<String, Object>> dataList = emailParseInfoMapper.searchEmailDataBoard(databoardQuery);
-        EmailParseCountBoardVO result = new EmailParseCountBoardVO();
-        Integer total = 0;
+        List<NameValueVO> result = new ArrayList<>();
+        Long total = 0L;
         for(Map<String, Object> data : dataList){
+            NameValueVO vo = new NameValueVO();
             if(1 == ((Integer)data.get("parse_status")).intValue()){
-                result.setSuccess(((Long)data.get("total")).intValue());
+                vo.setValue((Long) data.get("total"));
+                vo.setName("解析成功");
             }else{
-                result.setFail(((Long)data.get("total")).intValue());
+                vo.setValue((Long) data.get("total"));
+                vo.setName("解析失败");
             }
-            total+=((Long)data.get("total")).intValue();
+            total+=(Long)data.get("total");
+            result.add(vo);
         }
-        result.setTotal(total);
+        NameValueVO vo = new NameValueVO();
+        vo.setName("解析总数");
+        vo.setValue(total);
+        result.add(vo);
         return result;
     }
 
-    public EmailParseTypeBoardVO searchEmailTypeCount(DataboardQuery databoardQuery) {
+    public List<NameValueVO> searchEmailTypeCount(DataboardQuery databoardQuery) {
         //邮件类型,1-净值,2-估值表,3-定期报告
         List<Map<String, Object>> dataList = emailParseInfoMapper.searchEmailTypeCount(databoardQuery);
-        EmailParseTypeBoardVO result = new EmailParseTypeBoardVO();
+        List<NameValueVO> result = new ArrayList<>();
         Integer total = 0;
         for(Map<String, Object> data : dataList){
+            NameValueVO vo = new NameValueVO();
             Integer emailType = (Integer) data.get("email_type");
             Long totalType = (Long)data.get("total");
             if(1 == emailType){
-                result.setNav(totalType.intValue());
+                vo.setName("净值规模");
+                vo.setValue(totalType);
             }else if(2 == emailType){
-                result.setValuation(totalType.intValue());
+                vo.setName("估值表");
+                vo.setValue(totalType);
             }else{
-                result.setReport(totalType.intValue());
+                vo.setName("定期报告");
+                vo.setValue(totalType);
             }
-            total+=totalType.intValue();
+            result.add(vo);
         }
-        result.setTotal(total);
         return result;
     }
 
     public EmailParseFailAnalysisVO parseFailAnalysis(DataboardQuery databoardQuery) {
-        EmailParseFailAnalysisVO emailParseFailAnalysisVO = new EmailParseFailAnalysisVO();
-        NavFailAnalysisVO navFailAnalysisVO = new NavFailAnalysisVO();
+        EmailParseFailAnalysisVO result = new EmailParseFailAnalysisVO();
+        //净值规模
+        List<NameValueVO> navNameValueVOS = new ArrayList<>();
+        NameValueVO pdfNoDataVO = new NameValueVO();
+        databoardQuery.setEmailType(1);
         Long pdfNoData = emailParseInfoMapper.countpdfNoData(databoardQuery,"无法从PDF文件中获取到数据");
-        navFailAnalysisVO.setPdfNoData(pdfNoData);
+        pdfNoDataVO.setName("无法从PDF文件中获取到数据");
+        pdfNoDataVO.setValue(pdfNoData);
+        navNameValueVOS.add(pdfNoDataVO);
+        NameValueVO priceDateMissVO = new NameValueVO();
         Long priceDateMiss = emailParseInfoMapper.countpdfNoData(databoardQuery,"缺少净值日期");
-        navFailAnalysisVO.setPriceDateMiss(priceDateMiss);
+        priceDateMissVO.setValue(priceDateMiss);
+        priceDateMissVO.setName("缺少净值日期");
+        navNameValueVOS.add(priceDateMissVO);
+        NameValueVO navMissVO = new NameValueVO();
         Long navMiss = emailParseInfoMapper.countpdfNoData(databoardQuery,"单位净值和累计净值和资产净值均缺失");
-        navFailAnalysisVO.setNavMiss(navMiss);
+        navMissVO.setName("单位净值和累计净值和资产净值均缺失");
+        navMissVO.setValue(navMiss);
+        navNameValueVOS.add(navMissVO);
+        NameValueVO fundNameNumberMissVO = new NameValueVO();
         Long fundNameNumberMiss = emailParseInfoMapper.countpdfNoData(databoardQuery,"单位净值和累计净值和资产净值均缺失");
-        navFailAnalysisVO.setFundNameNumberMiss(fundNameNumberMiss);
-        emailParseFailAnalysisVO.setNavFailAnalysisVO(navFailAnalysisVO);
-        ValuationFailAnalysisVO valuationFailAnalysisVO = new ValuationFailAnalysisVO();
+        fundNameNumberMissVO.setName("单位净值和累计净值和资产净值均缺失");
+        fundNameNumberMissVO.setValue(fundNameNumberMiss);
+        navNameValueVOS.add(fundNameNumberMissVO);
+        result.setNavFailAnalysisVO(navNameValueVOS);
+        //估值表规模
+        databoardQuery.setEmailType(2);
+        List<NameValueVO> valuationNameValueVOS = new ArrayList<>();
+        NameValueVO fileTypeErrorVO = new NameValueVO();
         Long fileTypeError = emailParseInfoMapper.countpdfNoData(databoardQuery,"文件格式错误");
-        valuationFailAnalysisVO.setFileTypeError(fileTypeError);
+        fileTypeErrorVO.setName("文件格式错误");
+        fileTypeErrorVO.setValue(fileTypeError);
+        valuationNameValueVOS.add(fileTypeErrorVO);
+        NameValueVO columnMissVO = new NameValueVO();
         Long columnMiss = emailParseInfoMapper.countpdfNoData(databoardQuery,"无市值列或无数量列");
-        valuationFailAnalysisVO.setColumnMiss(columnMiss);
+        columnMissVO.setName("无市值列或无数量列");
+        columnMissVO.setValue(columnMiss);
+        valuationNameValueVOS.add(columnMissVO);
+        NameValueVO numbericMissVO = new NameValueVO();
         Long numbericMiss = emailParseInfoMapper.countpdfNoData(databoardQuery,"非数值数据");
-        valuationFailAnalysisVO.setNumbericMiss(numbericMiss);
+        numbericMissVO.setName("非数值数据");
+        numbericMissVO.setValue(numbericMiss);
+        valuationNameValueVOS.add(numbericMissVO);
+        NameValueVO noDataVO = new NameValueVO();
         Long noData = emailParseInfoMapper.countpdfNoData(databoardQuery,"无数据");
-        valuationFailAnalysisVO.setNoData(noData);
+        noDataVO.setValue(noData);
+        noDataVO.setName("无数据");
+        valuationNameValueVOS.add(noDataVO);
+        NameValueVO templateErrorVO = new NameValueVO();
         Long templateError = emailParseInfoMapper.countpdfNoData(databoardQuery,"模板不支持");
-        valuationFailAnalysisVO.setTemplateError(templateError);
-        emailParseFailAnalysisVO.setValuationFailAnalysisVO(valuationFailAnalysisVO);
-        ReportFailAnalysisVO reportFailAnalysisVO = new ReportFailAnalysisVO();
+        templateErrorVO.setValue(templateError);
+        templateErrorVO.setName("模板不支持");
+        valuationNameValueVOS.add(templateErrorVO);
+        result.setValuationFailAnalysisVO(valuationNameValueVOS);
+        //定期报告
+        databoardQuery.setEmailType(3);
+        List<NameValueVO> reportNameValueVOS = new ArrayList<>();
+        NameValueVO scannedFileVO = new NameValueVO();
         Long scannedFile = emailParseInfoMapper.countpdfNoData(databoardQuery,"报告为扫描件");
-        reportFailAnalysisVO.setScannedFile(scannedFile);
+        scannedFileVO.setName("报告为扫描件");
+        scannedFileVO.setValue(scannedFile);
+        reportNameValueVOS.add(scannedFileVO);
+        NameValueVO errorAmacFileTypeVO = new NameValueVO();
         Long errorAmacFileType = emailParseInfoMapper.countpdfNoData(databoardQuery,"报告不是基协统一格式");
-        reportFailAnalysisVO.setErrorAmacFileType(errorAmacFileType);
+        errorAmacFileTypeVO.setName("报告不是基协统一格式");
+        errorAmacFileTypeVO.setValue(errorAmacFileType);
+        reportNameValueVOS.add(errorAmacFileTypeVO);
+        NameValueVO watermarkFileErrorVO = new NameValueVO();
         Long watermarkFileError = emailParseInfoMapper.countpdfNoData(databoardQuery,"报告水印干扰导致部分没有解析");
-        reportFailAnalysisVO.setWatermarkFileError(watermarkFileError);
+        watermarkFileErrorVO.setName("报告水印干扰导致部分没有解析");
+        watermarkFileErrorVO.setValue(watermarkFileError);
+        reportNameValueVOS.add(watermarkFileErrorVO);
+        NameValueVO noReportVO = new NameValueVO();
         Long noReport = emailParseInfoMapper.countpdfNoData(databoardQuery,"报告不是定期报告");
-        reportFailAnalysisVO.setNoReport(noReport);
-        emailParseFailAnalysisVO.setReportFailAnalysisVO(reportFailAnalysisVO);
-        return emailParseFailAnalysisVO;
+        noReportVO.setName("报告不是定期报告");
+        noReportVO.setValue(noReport);
+        reportNameValueVOS.add(noReportVO);
+        result.setReportFailAnalysisVO(reportNameValueVOS);
+        return result;
     }
 
     public EmailParseDataViewVO dataOverview(DataboardQuery databoardQuery) {

+ 6 - 8
service-manage/src/main/java/com/simuwang/manage/api/databoard/DataboardController.java

@@ -1,10 +1,7 @@
 package com.simuwang.manage.api.databoard;
 
 import com.simuwang.base.pojo.dto.query.DataboardQuery;
-import com.simuwang.base.pojo.vo.EmailParseCountBoardVO;
-import com.simuwang.base.pojo.vo.EmailParseDataViewVO;
-import com.simuwang.base.pojo.vo.EmailParseFailAnalysisVO;
-import com.simuwang.base.pojo.vo.EmailParseTypeBoardVO;
+import com.simuwang.base.pojo.vo.*;
 import com.simuwang.daq.service.EmailParseService;
 import com.simuwang.logging.SystemLog;
 import com.smppw.common.pojo.ResultVo;
@@ -12,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,8 +33,8 @@ public class DataboardController {
      */
     @SystemLog("邮件总数")
     @RequestMapping("/email-count")
-    public ResultVo<EmailParseCountBoardVO> emailCount(DataboardQuery databoardQuery){
-        EmailParseCountBoardVO data = emailParseService.searchEmailCount(databoardQuery);
+    public ResultVo<List<NameValueVO>> emailCount(DataboardQuery databoardQuery){
+        List<NameValueVO> data = emailParseService.searchEmailCount(databoardQuery);
         return new ResultVo<>(data);
     }
 
@@ -46,8 +44,8 @@ public class DataboardController {
      * @return
      */
     @RequestMapping("/email-type-count")
-    public ResultVo<EmailParseTypeBoardVO> emailTypeCount(DataboardQuery databoardQuery){
-        EmailParseTypeBoardVO data = emailParseService.searchEmailTypeCount(databoardQuery);
+    public ResultVo<List<NameValueVO>> emailTypeCount(DataboardQuery databoardQuery){
+        List<NameValueVO> data = emailParseService.searchEmailTypeCount(databoardQuery);
         return new ResultVo<>(data);
     }