Bläddra i källkod

feat:报告解析开始

wangzaijun 1 månad sedan
förälder
incheckning
b860a68b65

+ 22 - 22
mo-daq/src/main/java/com/smppw/modaq/application/components/report/parser/ReportParserConstant.java

@@ -27,14 +27,14 @@ public final class ReportParserConstant {
     public static final String PARSER_EXCEL_MONTHLY = "report-parser:excel:monthly";
 //    public static final String PARSER_PYTHON_MONTHLY = "report-parser:python:monthly";
 
-//    public static final String PARSER_PDF_QUARTERLY = "report-parser:pdf:quarterly";
+    public static final String PARSER_PDF_QUARTERLY = "report-parser:pdf:quarterly";
 //    public static final String PARSER_WORD_QUARTERLY = "report-parser:word:quarterly";
-//    public static final String PARSER_EXCEL_QUARTERLY = "report-parser:excel:quarterly";
+    public static final String PARSER_EXCEL_QUARTERLY = "report-parser:excel:quarterly";
 //    public static final String PARSER_PYTHON_QUARTERLY = "report-parser:python:quarterly";
 //
-//    public static final String PARSER_PDF_ANNUALLY = "report-parser:pdf:annually";
+    public static final String PARSER_PDF_ANNUALLY = "report-parser:pdf:annually";
 //    public static final String PARSER_WORD_ANNUALLY = "report-parser:word:annually";
-//    public static final String PARSER_EXCEL_ANNUALLY = "report-parser:excel:annually";
+    public static final String PARSER_EXCEL_ANNUALLY = "report-parser:excel:annually";
 //    public static final String PARSER_PYTHON_ANNUALLY = "report-parser:python:annually";
 
     static {
@@ -49,28 +49,28 @@ public final class ReportParserConstant {
 //                        ReportParserFileType.PYTHON, PARSER_PYTHON_MONTHLY
                 ));
 
-        REPORT_PARSER_BEAN_MAP.put(ReportType.WEEKLY,
-                Map.of(ReportParserFileType.PDF, PARSER_PDF_WEEKLY,
-//                        ReportParserFileType.WORD, PARSER_WORD_WEEKLY,
-                        ReportParserFileType.EXCEL, PARSER_EXCEL_WEEKLY
-
-//                        ReportParserFileType.PYTHON, PARSER_PYTHON_WEEKLY
-                ));
+//        REPORT_PARSER_BEAN_MAP.put(ReportType.WEEKLY,
+//                Map.of(ReportParserFileType.PDF, PARSER_PDF_WEEKLY,
+////                        ReportParserFileType.WORD, PARSER_WORD_WEEKLY,
+//                        ReportParserFileType.EXCEL, PARSER_EXCEL_WEEKLY
+//
+////                        ReportParserFileType.PYTHON, PARSER_PYTHON_WEEKLY
+//                ));
 
-//        REPORT_PARSER_BEAN_MAP.put(ReportType.QUARTERLY,
-//                Map.of(ReportParserFileType.PDF, PARSER_PDF_QUARTERLY,
+        REPORT_PARSER_BEAN_MAP.put(ReportType.QUARTERLY,
+                Map.of(ReportParserFileType.PDF, PARSER_PDF_QUARTERLY,
 //                        ReportParserFileType.WORD, PARSER_WORD_QUARTERLY,
-//                        ReportParserFileType.EXCEL, PARSER_EXCEL_QUARTERLY,
-//
+                        ReportParserFileType.EXCEL, PARSER_EXCEL_QUARTERLY
+
 //                        ReportParserFileType.PYTHON, PARSER_PYTHON_QUARTERLY
-//                ));
-//
-//        REPORT_PARSER_BEAN_MAP.put(ReportType.ANNUALLY,
-//                Map.of(ReportParserFileType.PDF, PARSER_PDF_ANNUALLY,
+                ));
+
+        REPORT_PARSER_BEAN_MAP.put(ReportType.ANNUALLY,
+                Map.of(ReportParserFileType.PDF, PARSER_PDF_ANNUALLY,
 //                        ReportParserFileType.WORD, PARSER_WORD_ANNUALLY,
-//                        ReportParserFileType.EXCEL, PARSER_EXCEL_ANNUALLY,
-//
+                        ReportParserFileType.EXCEL, PARSER_EXCEL_ANNUALLY
+
 //                        ReportParserFileType.PYTHON, PARSER_PYTHON_ANNUALLY
-//                ));
+                ));
     }
 }

+ 4 - 0
mo-daq/src/main/java/com/smppw/modaq/common/conts/EmailTypeConst.java

@@ -22,4 +22,8 @@ public class EmailTypeConst {
      */
     public final static Integer REPORT_LETTER_EMAIL_TYPE = 4;
 
+    /**
+     * 除定期报告和确认函的其他类型的报告
+     */
+    public final static Integer REPORT_OTHER_TYPE = 5;
 }

+ 5 - 4
mo-daq/src/main/java/com/smppw/modaq/common/enums/ReportType.java

@@ -4,11 +4,12 @@ import lombok.Getter;
 
 @Getter
 public enum ReportType {
+    OTHER(-2, "其他报告", new String[]{"观点", "分红公告", "周报", "预警公告"}),
     LETTER(-1, "交易流水确认函", new String[]{"确认单", "确认函", "确认"}),
-    WEEKLY(4, "周", new String[]{"周", "周度", "周报"}),
-    MONTHLY(0, "月", new String[]{"月", "月度", "月报"});
-//    QUARTERLY(1, "季", new String[]{"季", "季度", "季报"}),
-//    ANNUALLY(2, "年", new String[]{"年度", "年报"});
+    MONTHLY(0, "月", new String[]{"月", "月度", "月报"}),
+    QUARTERLY(1, "季", new String[]{"季", "季度", "季报"}),
+    ANNUALLY(2, "年", new String[]{"年度", "年报"}),
+    ;
 
     private final int type;
     private final String label;

+ 32 - 32
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/BaseReportLevelDTO.java

@@ -1,32 +1,32 @@
-//package com.smppw.modaq.domain.dto.report;
-//
-//import com.smppw.modaq.domain.entity.report.BaseReportDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-//@Setter
-//@Getter
-//public abstract class BaseReportLevelDTO<T extends BaseReportDO> extends BaseReportDTO<T> {
-//    /**
-//     * 基金分级
-//     */
-//    private String level;
-//
-//    public BaseReportLevelDTO() {
-//        super();
-//    }
-//
-//    public BaseReportLevelDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    public BaseReportLevelDTO(Integer fileId, String level) {
-//        super(fileId);
-//        this.level = level;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return super.toString() + ", level='" + this.level + "'";
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import com.smppw.modaq.domain.entity.report.BaseReportDO;
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public abstract class BaseReportLevelDTO<T extends BaseReportDO> extends BaseReportDTO<T> {
+    /**
+     * 基金分级
+     */
+    private String level;
+
+    public BaseReportLevelDTO() {
+        super();
+    }
+
+    public BaseReportLevelDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    public BaseReportLevelDTO(Integer fileId, String level) {
+        super(fileId);
+        this.level = level;
+    }
+
+    @Override
+    public String toString() {
+        return super.toString() + ", level='" + this.level + "'";
+    }
+}

+ 61 - 61
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportAssetAllocationDTO.java

@@ -1,61 +1,61 @@
-//package com.smppw.modaq.infrastructure.dto.report;
-//
-//import com.simuwang.base.pojo.dos.report.ReportAssetAllocationDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-///**
-// * @author wangzaijun
-// * @date 2024/9/26 16:43
-// * @description 基金资产组合情况
-// */
-//@Setter
-//@Getter
-//public class ReportAssetAllocationDTO extends BaseReportDTO<ReportAssetAllocationDO> {
-//    /**
-//     * 资产大类
-//     */
-//    private String assetType;
-//    /**
-//     * 资产明细
-//     */
-//    private String assetDetails;
-//    /**
-//     * 市值
-//     */
-//    private String marketValue;
-//    /**
-//     * 备注
-//     */
-//    private String remark;
-//
-//    public ReportAssetAllocationDTO() {
-//        super();
-//    }
-//
-//    public ReportAssetAllocationDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    @Override
-//    public ReportAssetAllocationDO toEntity() {
-//        ReportAssetAllocationDO entity = new ReportAssetAllocationDO();
-//        entity.setFileId(this.getFileId());
-//        entity.setAssetType(this.assetType);
-//        entity.setColumnName(this.assetDetails);
-//        entity.setMarketValue(this.toBigDecimal(this.marketValue));
-//        entity.setRemark(this.remark);
-//        return entity;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return "{" +
-//                super.toString() +
-//                ", assetType='" + assetType + '\'' +
-//                ", assetDetails='" + assetDetails + '\'' +
-//                ", marketValue=" + marketValue +
-//                ", remark='" + remark + '\'' +
-//                '}';
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import com.smppw.modaq.domain.entity.report.ReportAssetAllocationDO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:43
+ * @description 基金资产组合情况
+ */
+@Setter
+@Getter
+public class ReportAssetAllocationDTO extends BaseReportDTO<ReportAssetAllocationDO> {
+    /**
+     * 资产大类
+     */
+    private String assetType;
+    /**
+     * 资产明细
+     */
+    private String assetDetails;
+    /**
+     * 市值
+     */
+    private String marketValue;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public ReportAssetAllocationDTO() {
+        super();
+    }
+
+    public ReportAssetAllocationDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    @Override
+    public ReportAssetAllocationDO toEntity() {
+        ReportAssetAllocationDO entity = new ReportAssetAllocationDO();
+        entity.setFileId(this.getFileId());
+        entity.setAssetType(this.assetType);
+        entity.setColumnName(this.assetDetails);
+        entity.setMarketValue(this.toBigDecimal(this.marketValue));
+        entity.setRemark(this.remark);
+        return entity;
+    }
+
+    @Override
+    public String toString() {
+        return "{" +
+                super.toString() +
+                ", assetType='" + assetType + '\'' +
+                ", assetDetails='" + assetDetails + '\'' +
+                ", marketValue=" + marketValue +
+                ", remark='" + remark + '\'' +
+                '}';
+    }
+}

+ 92 - 92
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportFinancialIndicatorsDTO.java

@@ -1,92 +1,92 @@
-//package com.smppw.modaq.infrastructure.dto.report;
-//
-//import cn.hutool.core.util.StrUtil;
-//import com.simuwang.base.pojo.dos.report.ReportFinancialIndicatorsDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-//import java.util.regex.Matcher;
-//import java.util.regex.Pattern;
-//
-//@Setter
-//@Getter
-//public class ReportFinancialIndicatorsDTO extends BaseReportLevelDTO<ReportFinancialIndicatorsDO> {
-//    /**
-//     * 年度
-//     */
-//    private String yearly;
-//    /**
-//     * 期末基金净资产
-//     */
-//    private String assetNet;
-//    /**
-//     * 报告期期末单位净值
-//     */
-//    private String nav;
-//    /**
-//     * 本期利润
-//     */
-//    private String profit;
-//    /**
-//     * 本期已实现收益
-//     */
-//    private String realizedIncome;
-//    /**
-//     * 期末可供分配利润
-//     */
-//    private String undistributedProfit;
-//    /**
-//     * 期末可供分配基金份额利润
-//     */
-//    private String undistributedShareProfit;
-//    /**
-//     * 基金份额累计净值增长率
-//     */
-//    private String shareNavRet;
-//
-//    public ReportFinancialIndicatorsDTO() {
-//        super();
-//    }
-//
-//    public ReportFinancialIndicatorsDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    public ReportFinancialIndicatorsDTO(Integer fileId, String level) {
-//        super(fileId, level);
-//    }
-//
-//    @Override
-//    public ReportFinancialIndicatorsDO toEntity() {
-//        ReportFinancialIndicatorsDO entity = new ReportFinancialIndicatorsDO();
-//        entity.setFileId(this.getFileId());
-//        entity.setLevel(this.getLevel());
-//        entity.setFundAssetSize(this.toBigDecimal(this.assetNet));
-//        entity.setNav(this.toBigDecimal(this.nav));
-//        entity.setProfit(this.toBigDecimal(this.profit));
-//        entity.setRealizedIncome(this.toBigDecimal(this.realizedIncome));
-//        entity.setUndistributedProfit(this.toBigDecimal(this.undistributedProfit));
-//        if (StrUtil.isNotBlank(this.yearly)) {
-//            Matcher matcher = Pattern.compile("\\d+").matcher(this.yearly);
-//            if (matcher.find()) {
-//                entity.setEndDate(Integer.parseInt(matcher.group()));
-//            }
-//        }
-//        return entity;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return "{" +
-//                super.toString() +
-//                ", yearly=" + yearly +
-//                ", assetNet=" + assetNet +
-//                ", nav=" + nav +
-//                ", profit=" + profit +
-//                ", undistributedProfit=" + undistributedProfit +
-//                ", realizedIncome=" + realizedIncome +
-//                ", undistributedShareProfit=" + undistributedShareProfit +
-//                ", shareNavRet=" + shareNavRet +
-//                '}';
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import cn.hutool.core.util.StrUtil;
+import com.smppw.modaq.domain.entity.report.ReportFinancialIndicatorsDO;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Setter
+@Getter
+public class ReportFinancialIndicatorsDTO extends BaseReportLevelDTO<ReportFinancialIndicatorsDO> {
+    /**
+     * 年度
+     */
+    private String yearly;
+    /**
+     * 期末基金净资产
+     */
+    private String assetNet;
+    /**
+     * 报告期期末单位净值
+     */
+    private String nav;
+    /**
+     * 本期利润
+     */
+    private String profit;
+    /**
+     * 本期已实现收益
+     */
+    private String realizedIncome;
+    /**
+     * 期末可供分配利润
+     */
+    private String undistributedProfit;
+    /**
+     * 期末可供分配基金份额利润
+     */
+    private String undistributedShareProfit;
+    /**
+     * 基金份额累计净值增长率
+     */
+    private String shareNavRet;
+
+    public ReportFinancialIndicatorsDTO() {
+        super();
+    }
+
+    public ReportFinancialIndicatorsDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    public ReportFinancialIndicatorsDTO(Integer fileId, String level) {
+        super(fileId, level);
+    }
+
+    @Override
+    public ReportFinancialIndicatorsDO toEntity() {
+        ReportFinancialIndicatorsDO entity = new ReportFinancialIndicatorsDO();
+        entity.setFileId(this.getFileId());
+        entity.setLevel(this.getLevel());
+        entity.setFundAssetSize(this.toBigDecimal(this.assetNet));
+        entity.setNav(this.toBigDecimal(this.nav));
+        entity.setProfit(this.toBigDecimal(this.profit));
+        entity.setRealizedIncome(this.toBigDecimal(this.realizedIncome));
+        entity.setUndistributedProfit(this.toBigDecimal(this.undistributedProfit));
+        if (StrUtil.isNotBlank(this.yearly)) {
+            Matcher matcher = Pattern.compile("\\d+").matcher(this.yearly);
+            if (matcher.find()) {
+                entity.setEndDate(Integer.parseInt(matcher.group()));
+            }
+        }
+        return entity;
+    }
+
+    @Override
+    public String toString() {
+        return "{" +
+                super.toString() +
+                ", yearly=" + yearly +
+                ", assetNet=" + assetNet +
+                ", nav=" + nav +
+                ", profit=" + profit +
+                ", undistributedProfit=" + undistributedProfit +
+                ", realizedIncome=" + realizedIncome +
+                ", undistributedShareProfit=" + undistributedShareProfit +
+                ", shareNavRet=" + shareNavRet +
+                '}';
+    }
+}

+ 61 - 61
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportInvestmentIndustryDTO.java

@@ -1,61 +1,61 @@
-//package com.smppw.modaq.infrastructure.dto.report;
-//
-//import com.simuwang.base.pojo.dos.report.ReportInvestmentIndustryDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-///**
-// * @author wangzaijun
-// * @date 2024/9/26 16:49
-// * @description 按行业分类的股票投资组合
-// */
-//@Setter
-//@Getter
-//public class ReportInvestmentIndustryDTO extends BaseReportDTO<ReportInvestmentIndustryDO> {
-//    /**
-//     * 行业分类名称
-//     */
-//    private String industryName;
-//    /**
-//     * 投资地区: 1-境内, 2-港股通
-//     */
-//    private Integer investType;
-//    /**
-//     * 公允价值,市值
-//     */
-//    private String marketValue;
-//    /**
-//     * 占基金资产净值的比例,占净值比,权重
-//     */
-//    private String ratio;
-//
-//    public ReportInvestmentIndustryDTO() {
-//        super();
-//    }
-//
-//    public ReportInvestmentIndustryDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    @Override
-//    public ReportInvestmentIndustryDO toEntity() {
-//        ReportInvestmentIndustryDO entity = new ReportInvestmentIndustryDO();
-//        entity.setFileId(this.getFileId());
-//        entity.setIndustryName(this.industryName);
-//        entity.setInvestType(this.investType);
-//        entity.setMarketValue(this.toBigDecimal(this.marketValue));
-//        entity.setRatio(this.toBigDecimal(this.ratio));
-//        return entity;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return "{" +
-//                super.toString() +
-//                ", industryName='" + industryName + '\'' +
-//                ", investType=" + investType +
-//                ", marketValue=" + marketValue +
-//                ", ratio=" + ratio +
-//                '}';
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import com.smppw.modaq.domain.entity.report.ReportInvestmentIndustryDO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:49
+ * @description 按行业分类的股票投资组合
+ */
+@Setter
+@Getter
+public class ReportInvestmentIndustryDTO extends BaseReportDTO<ReportInvestmentIndustryDO> {
+    /**
+     * 行业分类名称
+     */
+    private String industryName;
+    /**
+     * 投资地区: 1-境内, 2-港股通
+     */
+    private Integer investType;
+    /**
+     * 公允价值,市值
+     */
+    private String marketValue;
+    /**
+     * 占基金资产净值的比例,占净值比,权重
+     */
+    private String ratio;
+
+    public ReportInvestmentIndustryDTO() {
+        super();
+    }
+
+    public ReportInvestmentIndustryDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    @Override
+    public ReportInvestmentIndustryDO toEntity() {
+        ReportInvestmentIndustryDO entity = new ReportInvestmentIndustryDO();
+        entity.setFileId(this.getFileId());
+        entity.setIndustryName(this.industryName);
+        entity.setInvestType(this.investType);
+        entity.setMarketValue(this.toBigDecimal(this.marketValue));
+        entity.setRatio(this.toBigDecimal(this.ratio));
+        return entity;
+    }
+
+    @Override
+    public String toString() {
+        return "{" +
+                super.toString() +
+                ", industryName='" + industryName + '\'' +
+                ", investType=" + investType +
+                ", marketValue=" + marketValue +
+                ", ratio=" + ratio +
+                '}';
+    }
+}

+ 72 - 72
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportNetReportDTO.java

@@ -1,72 +1,72 @@
-//package com.smppw.modaq.infrastructure.dto.report;
-//
-//import com.simuwang.base.pojo.dos.report.ReportNetReportDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-///**
-// * @author wangzaijun
-// * @date 2024/9/26 16:53
-// * @description 基协报告净值月报
-// */
-//@Setter
-//@Getter
-//public class ReportNetReportDTO extends BaseReportLevelDTO<ReportNetReportDO> {
-//    /**
-//     * 估值日期
-//     */
-//    private String valuationDate;
-//    /**
-//     * 累计净值
-//     */
-//    private String cumulativeNavWithdrawal;
-//    /**
-//     * 基金份额总额
-//     */
-//    private String assetShare;
-//    /**
-//     * 基金资产净值
-//     */
-//    private String assetNet;
-//    /**
-//     * 单位净值
-//     */
-//    private String nav;
-//
-//    public ReportNetReportDTO() {
-//        super();
-//    }
-//
-//    public ReportNetReportDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    public ReportNetReportDTO(Integer fileId, String level) {
-//        super(fileId, level);
-//    }
-//
-//    @Override
-//    public ReportNetReportDO toEntity() {
-//        ReportNetReportDO entity = new ReportNetReportDO();
-//        entity.setFileId(this.getFileId());
-//        entity.setLevel(this.getLevel());
-//        entity.setValuationDate(this.toDate(this.valuationDate));
-//        entity.setCumulativeNav(this.toBigDecimal(this.cumulativeNavWithdrawal));
-//        entity.setEndTotalShares(this.toBigDecimal(this.assetShare));
-//        entity.setFundAssetSize(this.toBigDecimal(this.assetNet));
-//        entity.setNav(this.toBigDecimal(this.nav));
-//        return entity;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return "{" +
-//                super.toString() +
-//                ", valuationDate='" + valuationDate + '\'' +
-//                ", cumulativeNavWithdrawal=" + cumulativeNavWithdrawal +
-//                ", assetShare=" + assetShare +
-//                ", fundAssetSize=" + assetNet +
-//                ", nav=" + nav +
-//                '}';
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import com.smppw.modaq.domain.entity.report.ReportNetReportDO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:53
+ * @description 基协报告净值月报
+ */
+@Setter
+@Getter
+public class ReportNetReportDTO extends BaseReportLevelDTO<ReportNetReportDO> {
+    /**
+     * 估值日期
+     */
+    private String valuationDate;
+    /**
+     * 累计净值
+     */
+    private String cumulativeNavWithdrawal;
+    /**
+     * 基金份额总额
+     */
+    private String assetShare;
+    /**
+     * 基金资产净值
+     */
+    private String assetNet;
+    /**
+     * 单位净值
+     */
+    private String nav;
+
+    public ReportNetReportDTO() {
+        super();
+    }
+
+    public ReportNetReportDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    public ReportNetReportDTO(Integer fileId, String level) {
+        super(fileId, level);
+    }
+
+    @Override
+    public ReportNetReportDO toEntity() {
+        ReportNetReportDO entity = new ReportNetReportDO();
+        entity.setFileId(this.getFileId());
+        entity.setLevel(this.getLevel());
+        entity.setValuationDate(this.toDate(this.valuationDate));
+        entity.setCumulativeNav(this.toBigDecimal(this.cumulativeNavWithdrawal));
+        entity.setEndTotalShares(this.toBigDecimal(this.assetShare));
+        entity.setFundAssetSize(this.toBigDecimal(this.assetNet));
+        entity.setNav(this.toBigDecimal(this.nav));
+        return entity;
+    }
+
+    @Override
+    public String toString() {
+        return "{" +
+                super.toString() +
+                ", valuationDate='" + valuationDate + '\'' +
+                ", cumulativeNavWithdrawal=" + cumulativeNavWithdrawal +
+                ", assetShare=" + assetShare +
+                ", fundAssetSize=" + assetNet +
+                ", nav=" + nav +
+                '}';
+    }
+}

+ 72 - 72
mo-daq/src/main/java/com/smppw/modaq/domain/dto/report/ReportShareChangeDTO.java

@@ -1,72 +1,72 @@
-//package com.smppw.modaq.infrastructure.dto.report;
-//
-//import com.simuwang.base.pojo.dos.report.ReportShareChangeDO;
-//import lombok.Getter;
-//import lombok.Setter;
-//
-///**
-// * @author wangzaijun
-// * @date 2024/9/26 16:40
-// * @description 基金份额变动情况
-// */
-//@Setter
-//@Getter
-//public class ReportShareChangeDTO extends BaseReportLevelDTO<ReportShareChangeDO> {
-//    /**
-//     * 报告期期初基金份额总额
-//     */
-//    private String initTotalShares;
-//    /**
-//     * 减: 报告期期间基金总赎回份额
-//     */
-//    private String redemption;
-//    /**
-//     * 期末基金总份额/期末基金实缴总额
-//     */
-//    private String sharePerAsset;
-//    /**
-//     * 报告期期间基金拆分变动份额
-//     */
-//    private String splitChangeShare;
-//    /**
-//     * 报告期期间基金总申购份额
-//     */
-//    private String subscription;
-//
-//    public ReportShareChangeDTO() {
-//        super();
-//    }
-//
-//    public ReportShareChangeDTO(Integer fileId) {
-//        super(fileId);
-//    }
-//
-//    public ReportShareChangeDTO(Integer fileId, String level) {
-//        super(fileId, level);
-//    }
-//
-//    @Override
-//    public ReportShareChangeDO toEntity() {
-//        ReportShareChangeDO entity = new ReportShareChangeDO();
-//        entity.setFileId(this.getFileId());
-//        entity.setLevel(this.getLevel());
-//        entity.setRedemption(this.toBigDecimal(this.redemption));
-//        entity.setInitTotalShares(this.toBigDecimal(this.initTotalShares));
-//        entity.setSharePerAsset(this.toBigDecimal(this.sharePerAsset));
-//        entity.setSplit(this.toBigDecimal(this.splitChangeShare));
-//        entity.setSubscription(this.toBigDecimal(this.subscription));
-//        return entity;
-//    }
-//
-//    @Override
-//    public String toString() {
-//        return "{" +
-//                super.toString() +
-//                ", initTotalShares=" + initTotalShares +
-//                ", redemption=" + redemption +
-//                ", sharePerAsset=" + sharePerAsset +
-//                ", splitChangeShare=" + splitChangeShare +
-//                ", subscription=" + subscription +
-//                '}';
-//    }
-//}
+package com.smppw.modaq.domain.dto.report;
+
+import com.smppw.modaq.domain.entity.report.ReportShareChangeDO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:40
+ * @description 基金份额变动情况
+ */
+@Setter
+@Getter
+public class ReportShareChangeDTO extends BaseReportLevelDTO<ReportShareChangeDO> {
+    /**
+     * 报告期期初基金份额总额
+     */
+    private String initTotalShares;
+    /**
+     * 减: 报告期期间基金总赎回份额
+     */
+    private String redemption;
+    /**
+     * 期末基金总份额/期末基金实缴总额
+     */
+    private String sharePerAsset;
+    /**
+     * 报告期期间基金拆分变动份额
+     */
+    private String splitChangeShare;
+    /**
+     * 报告期期间基金总申购份额
+     */
+    private String subscription;
+
+    public ReportShareChangeDTO() {
+        super();
+    }
+
+    public ReportShareChangeDTO(Integer fileId) {
+        super(fileId);
+    }
+
+    public ReportShareChangeDTO(Integer fileId, String level) {
+        super(fileId, level);
+    }
+
+    @Override
+    public ReportShareChangeDO toEntity() {
+        ReportShareChangeDO entity = new ReportShareChangeDO();
+        entity.setFileId(this.getFileId());
+        entity.setLevel(this.getLevel());
+        entity.setRedemption(this.toBigDecimal(this.redemption));
+        entity.setInitTotalShares(this.toBigDecimal(this.initTotalShares));
+        entity.setSharePerAsset(this.toBigDecimal(this.sharePerAsset));
+        entity.setSplit(this.toBigDecimal(this.splitChangeShare));
+        entity.setSubscription(this.toBigDecimal(this.subscription));
+        return entity;
+    }
+
+    @Override
+    public String toString() {
+        return "{" +
+                super.toString() +
+                ", initTotalShares=" + initTotalShares +
+                ", redemption=" + redemption +
+                ", sharePerAsset=" + sharePerAsset +
+                ", splitChangeShare=" + splitChangeShare +
+                ", subscription=" + subscription +
+                '}';
+    }
+}

+ 34 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/entity/report/ReportAssetAllocationDO.java

@@ -0,0 +1,34 @@
+package com.smppw.modaq.domain.entity.report;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:43
+ * @description 基金资产组合情况
+ */
+@Setter
+@Getter
+@TableName("mo_report_asset_allocation")
+public class ReportAssetAllocationDO extends BaseReportDO {
+    /**
+     * 资产大类
+     */
+    private String assetType;
+    /**
+     * 资产明细
+     */
+    private String columnName;
+    /**
+     * 市值
+     */
+    private BigDecimal marketValue;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 26 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/entity/report/ReportFinancialIndicatorsDO.java

@@ -0,0 +1,26 @@
+package com.smppw.modaq.domain.entity.report;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Setter
+@Getter
+@TableName("mo_report_financial_indicators")
+public class ReportFinancialIndicatorsDO extends BaseReportDO {
+    private String level;
+    /**
+     * 年度
+     */
+    private Integer endDate;
+    private BigDecimal fundAssetSize;
+    private BigDecimal nav;
+    private BigDecimal profit;
+    private BigDecimal realizedIncome;
+    /**
+     * 期末可供分配利润
+     */
+    private BigDecimal undistributedProfit;
+}

+ 42 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/entity/report/ReportInvestmentIndustryDO.java

@@ -0,0 +1,42 @@
+package com.smppw.modaq.domain.entity.report;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:49
+ * @description 按行业分类的股票投资组合
+ */
+@Setter
+@Getter
+@TableName("mo_report_invest_industry")
+public class ReportInvestmentIndustryDO extends BaseReportDO {
+    /**
+     * 行业分类编码
+     */
+    private String industryCode;
+    /**
+     * 行业分类名称
+     */
+    private String industryName;
+    /**
+     * 投资地区: 1-境内, 2-港股通
+     */
+    private Integer investType;
+    /**
+     * 行业标准编码
+     */
+    private String isbCode;
+    /**
+     * 公允价值
+     */
+    private BigDecimal marketValue;
+    /**
+     * 占基金资产净值的比例
+     */
+    private BigDecimal ratio;
+}

+ 38 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/entity/report/ReportNetReportDO.java

@@ -0,0 +1,38 @@
+package com.smppw.modaq.domain.entity.report;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:53
+ * @description 基协报告净值月报
+ */
+@Setter
+@Getter
+@TableName("mo_report_net_report")
+public class ReportNetReportDO extends BaseReportDO {
+    private String level;
+    private Date valuationDate;
+
+    /**
+     * 累计净值
+     */
+    private BigDecimal cumulativeNav;
+    /**
+     * 基金份额总额
+     */
+    private BigDecimal endTotalShares;
+    /**
+     * 基金资产净值
+     */
+    private BigDecimal fundAssetSize;
+    /**
+     * 单位净值
+     */
+    private BigDecimal nav;
+}

+ 42 - 0
mo-daq/src/main/java/com/smppw/modaq/domain/entity/report/ReportShareChangeDO.java

@@ -0,0 +1,42 @@
+package com.smppw.modaq.domain.entity.report;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/26 16:40
+ * @description 基金份额变动情况
+ */
+@Setter
+@Getter
+@TableName("mo_report_share_change")
+public class ReportShareChangeDO extends BaseReportDO {
+    /**
+     * 报告期期初基金份额总额
+     */
+    private BigDecimal initTotalShares;
+    /**
+     * 基金分级
+     */
+    private String level;
+    /**
+     * 减: 报告期期间基金总赎回份额
+     */
+    private BigDecimal redemption;
+    /**
+     * 期末基金总份额/期末基金实缴总额
+     */
+    private BigDecimal sharePerAsset;
+    /**
+     * 报告期期间基金拆分变动份额
+     */
+    private BigDecimal split;
+    /**
+     * 报告期期间基金总申购份额
+     */
+    private BigDecimal subscription;
+}

+ 1 - 1
mo-daq/src/main/java/com/smppw/modaq/domain/service/EmailParseService.java

@@ -414,7 +414,7 @@ public class EmailParseService {
 
     public Map<Integer, List<String>> getEmailType() {
         Map<Integer, List<String>> emailTypeMap = MapUtil.newHashMap(3, true);
-//        emailTypeMap.put(EmailTypeConst.REPORT_EMAIL_TYPE, ListUtil.toList("月报", "周报", "月度报告"));
+        emailTypeMap.put(EmailTypeConst.REPORT_EMAIL_TYPE, ListUtil.toList("月报", "周报", "月度报告"));
         emailTypeMap.put(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE,
                 ListUtil.toList("确认单", "确认函", "交易确认数据", "赎回确认", "申购确认", "分红确认", "确认表"));
         return emailTypeMap;