Browse Source

build 新老两版报告

mamingxu 17 hours ago
parent
commit
5efb9b0db3

+ 27 - 1
easier-report-api/src/main/java/com/yaoyicloud/dto/ReportDTO.java

@@ -8,6 +8,8 @@ import lombok.AccessLevel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.Map;
+
 /**
  * 报告DTO
  *
@@ -18,7 +20,7 @@ import lombok.NoArgsConstructor;
 public class ReportDTO {
 
     /**
-     * 创建PLUS版报告参数
+     * 创建版报告参数
      *
      * @author snows
      * @date 2024/10/14
@@ -52,4 +54,28 @@ public class ReportDTO {
         private Integer levelCount;
 
     }
+
+    /**
+     * 老版报告数据接受
+     */
+    @Data
+    public static class OnCreateVersionReport {
+
+
+        @NotNull(message = "map数据必填")
+        private Map<String, Object> data;
+
+
+        @NotNull(message = "模版必填")
+        private String reportTempFile;
+
+        @NotNull(message = "导出pdf路径必填")
+        private String reportBastPath;
+
+        @NotNull(message = "reportType必填")
+        private ReportType reportType;
+
+        @NotNull(message = "reportType必填")
+        private  Long relationId;
+    }
 }

+ 31 - 33
easier-report-biz/src/main/java/com/yaoyicloud/controller/ReportController.java

@@ -10,18 +10,16 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import javax.servlet.http.HttpServletRequest;
-
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.ArrayList;
 import java.util.Base64;
 import java.util.HashMap;
-
+import java.util.List;
 import java.util.Map;
 
 
-import static com.yaoyicloud.config.SessionInterceptor.SESSION_MAP;
-
-
 /**
  * 报告控制器
  *
@@ -39,37 +37,37 @@ public class ReportController {
      * @param resource 请求参数
      * @return {@link Boolean } 结果
      */
-    @EasierLog("创建Plus版本审核报告")
+    @EasierLog("扬子江审核报告")
     @PostMapping("/report/create-report")
-    public Map<String, Object> createPlusVersionCheckReport(
-            @Validated @RequestBody ReportDTO.OnCreatePlusVersionReport resource,
-            HttpServletRequest request
-    ) throws Exception {
-        // 1. 解码文件并生成报告
+    public Map<String, Object>
+    createPlusVersionCheckReport(@Validated @RequestBody ReportDTO.OnCreateVersionReport resource,
+                                 HttpServletRequest request) throws Exception {
         byte[] fileBytes = Base64.getDecoder().decode(resource.getReportTempFile());
-        String relationId = request.getHeader("relationId");
-        String reportPath = reportService.createPlusVersionCheckReport(
-                resource.getReportType(),
-                resource.getData(),
-                fileBytes,
-                resource.getReportBastPath(),
-                Long.valueOf(relationId),
-                request,
-                resource.getModuleType(),
-                resource.getName(),
-                resource.getLevelCount(),
-                resource.getTenantName()
 
-        );
 
-        String sessionId = SESSION_MAP.get(relationId);
-        // 2. 线程安全地更新 Session 中的报告路径列表
+        synchronized (this) {
+            String reportPath = reportService.createPlusVersionCheckReport(
+                    resource.getReportType(),
+                    resource.getData(),
+                    fileBytes,
+                    resource.getReportBastPath(),
+                    resource.getRelationId()
+            );
+            //把结果保存到session中 一个relationId一个session 这样就把多个结果都保存到一个session中,可以获取路径做拼接
+            //后续 session.removeAttribute清理数据。
+            HttpSession session = request.getSession();
+            String relationId = String.valueOf(resource.getRelationId());
+            @SuppressWarnings("unchecked")
+            List<String> reportPaths = (List<String>) session.getAttribute(relationId);
 
-        // 3. 返回响应
-        Map<String, Object> response = new HashMap<>();
-        response.put("reportResult", reportPath);
-        response.put("sessionId", sessionId);
-        response.put("reportResult", reportPath);
-        return response;
+            if (reportPaths == null) {
+                reportPaths = new ArrayList<>();
+                session.setAttribute(relationId, reportPaths);
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("reportResult", reportPath);
+            response.put("sessionId", request.getSession().getId()); // Use the provided session ID
+            return response;
+        }
     }
 }

+ 75 - 0
easier-report-biz/src/main/java/com/yaoyicloud/controller/ReportUpdateController.java

@@ -0,0 +1,75 @@
+package com.yaoyicloud.controller;
+
+
+import com.yaoyicloud.annotation.EasierLog;
+import com.yaoyicloud.dto.ReportDTO;
+import com.yaoyicloud.service.ReportUpdateService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import javax.servlet.http.HttpServletRequest;
+
+
+import java.util.Base64;
+import java.util.HashMap;
+
+import java.util.Map;
+
+
+import static com.yaoyicloud.config.SessionInterceptor.SESSION_MAP;
+
+
+/**
+ * 报告控制器
+ *
+ * @author snows
+ * @date 2024/10/14
+ */
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+public class ReportUpdateController {
+    private final ReportUpdateService reportService;
+    /**
+     * 创建Plus版本审核报告
+     *
+     * @param resource 请求参数
+     * @return {@link Boolean } 结果
+     */
+    @EasierLog("创建Plus版本审核报告")
+    @PostMapping("/report/create-report-new")
+    public Map<String, Object> createPlusVersionCheckReport(
+            @Validated @RequestBody ReportDTO.OnCreatePlusVersionReport resource,
+            HttpServletRequest request
+    ) throws Exception {
+        // 1. 解码文件并生成报告
+        byte[] fileBytes = Base64.getDecoder().decode(resource.getReportTempFile());
+        String relationId = request.getHeader("relationId");
+        String reportPath = reportService.createPlusVersionCheckReport(
+                resource.getReportType(),
+                resource.getData(),
+                fileBytes,
+                resource.getReportBastPath(),
+                Long.valueOf(relationId),
+                request,
+                resource.getModuleType(),
+                resource.getName(),
+                resource.getLevelCount(),
+                resource.getTenantName()
+
+        );
+
+        String sessionId = SESSION_MAP.get(relationId);
+        // 2. 线程安全地更新 Session 中的报告路径列表
+
+        // 3. 返回响应
+        Map<String, Object> response = new HashMap<>();
+        response.put("reportResult", reportPath);
+        response.put("sessionId", sessionId);
+        response.put("reportResult", reportPath);
+        return response;
+    }
+}

+ 1 - 1
easier-report-biz/src/main/java/com/yaoyicloud/render/platform/update/AntiBriberyNewRender.java

@@ -12,7 +12,7 @@ import com.google.protobuf.util.JsonFormat;
 import com.yaoyicloud.config.FilerepoProperties;
 import com.yaoyicloud.message.FxyProtos;
 import com.yaoyicloud.render.AbstractNewRender;
-import com.yaoyicloud.render.AbstractRender;
+
 
 import lombok.extern.slf4j.Slf4j;
 

+ 3 - 13
easier-report-biz/src/main/java/com/yaoyicloud/service/ReportService.java

@@ -1,11 +1,7 @@
 package com.yaoyicloud.service;
 
-
-import com.yaoyicloud.constant.enums.ModuleType;
 import com.yaoyicloud.constant.enums.ReportType;
-
-import javax.servlet.http.HttpServletRequest;
-
+import java.util.Map;
 
 /**
  * 报告服务
@@ -15,18 +11,12 @@ import javax.servlet.http.HttpServletRequest;
  */
 public interface ReportService {
 
-    @SuppressWarnings("checkstyle:ParameterNumber")
     String createPlusVersionCheckReport(
             ReportType reportType,
-            String data,
+            Map<String, Object> data,
             byte[] templateBytes,
             String outputBasePath,
-            Long relationId,
-            HttpServletRequest request,
-            ModuleType moduleType,
-            String name,
-            Integer levelInteger,
-            String tenantName
+            Long relationId
     ) throws Exception;
 
 }

+ 35 - 0
easier-report-biz/src/main/java/com/yaoyicloud/service/ReportUpdateService.java

@@ -0,0 +1,35 @@
+package com.yaoyicloud.service;
+
+
+import com.yaoyicloud.constant.enums.ModuleType;
+import com.yaoyicloud.constant.enums.ReportType;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+
+/**
+ * 报告服务
+ *
+ * @author snows
+ * @date 2024/10/12
+ */
+public interface ReportUpdateService {
+
+    @SuppressWarnings("checkstyle:ParameterNumber")
+    String createPlusVersionCheckReport(
+            ReportType reportType,
+            String data,
+            byte[] templateBytes,
+            String outputBasePath,
+            Long relationId,
+            HttpServletRequest request,
+            ModuleType moduleType,
+            String name,
+            Integer levelInteger,
+            String tenantName
+    ) throws Exception;
+
+
+
+}

+ 36 - 137
easier-report-biz/src/main/java/com/yaoyicloud/service/impl/ReportServiceImpl.java

@@ -2,33 +2,8 @@ package com.yaoyicloud.service.impl;
 
 import java.io.File;
 import java.io.FileOutputStream;
-import java.time.LocalDate;
-
-import java.util.HashMap;
 import java.util.Map;
-
-import com.yaoyicloud.config.FilerepoProperties;
-import com.yaoyicloud.constant.enums.ModuleType;
 import com.yaoyicloud.constant.enums.ReportType;
-import com.yaoyicloud.render.InterestConflictsRender;
-import com.yaoyicloud.render.ProjectInfoRender;
-import com.yaoyicloud.render.PublicRecordRender;
-
-import com.yaoyicloud.render.association.AssociationAttachmentSectionRender;
-import com.yaoyicloud.render.foundation.FoundationAttachmentSectionRender;
-import com.yaoyicloud.render.foundation.FoundationfinancialInfoRender;
-import com.yaoyicloud.render.platform.AntiBriberyRender;
-import com.yaoyicloud.render.platform.AttachmentSectionRender;
-import com.yaoyicloud.render.platform.BasicInfoRender;
-import com.yaoyicloud.render.platform.FinancialInfoRender;
-import com.yaoyicloud.render.platform.ServiceProviderInfoRender;
-import com.yaoyicloud.render.association.AssociationBasicInfoRender;
-import com.yaoyicloud.render.foundation.FoundationBasicInfoRender;
-import com.yaoyicloud.render.platform.update.AntiBriberyNewRender;
-import com.yaoyicloud.render.platform.update.BasicInfoNewRender;
-import com.yaoyicloud.render.platform.update.FinancialInfoNewRender;
-import com.yaoyicloud.render.platform.update.PublicRecordNewRender;
-import com.yaoyicloud.render.platform.update.TaxNewRender;
 import com.yaoyicloud.service.ReportService;
 import com.yaoyicloud.template.AcademicAssociationReport;
 import com.yaoyicloud.template.FoundationReport;
@@ -38,10 +13,6 @@ import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 
-import javax.servlet.http.HttpServletRequest;
-
-import static com.yaoyicloud.config.SessionInterceptor.SESSION_MAP;
-
 /**
  * 报告服务
  *
@@ -55,13 +26,12 @@ public class ReportServiceImpl implements ReportService {
     private final PlatformCompanyReport platformCompanyReport;
     private final AcademicAssociationReport academicAssociationReport;
     private final FoundationReport foundationReport;
-    private final FilerepoProperties filerepoProperties;
+
 
     @SuppressWarnings("checkstyle:ReturnCount")
     @Override
     public String createPlusVersionCheckReport(
-        ReportType reportType, String data, byte[] templateBytes, String outputBasePath, Long relationId,
-        HttpServletRequest request, ModuleType moduleType, String name, Integer level, String tenantName)
+        ReportType reportType, Map<String, Object> data, byte[] templateBytes, String outputBasePath, Long relationId)
         throws Exception {
 
         // 1. 将字节流模版写入临时文件
@@ -69,114 +39,43 @@ public class ReportServiceImpl implements ReportService {
         try (FileOutputStream fos = new FileOutputStream(tempTemplateFile)) {
             fos.write(templateBytes);
         }
-        Map<String, Object> processedData = new HashMap<>();
-        processedData.put("reportDate", LocalDate.now().toString());
-        processedData.put("type", reportType.getDesc());
-        processedData.put("name", name);
-        processedData.put("tenantName", tenantName);
-        processedData.put("levelInteger", level);
-
-        String sessionId = SESSION_MAP.get(relationId.toString());
-
-        String reportPath;
-        switch (moduleType) {
-            case ANTIBRIBERY:
-                reportPath =
-                    new AntiBriberyRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case ANTIBRIBERY_NEW:
-                reportPath =
-                    new AntiBriberyNewRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case PLATFORM_COMPANY_BASICINFO:
-                reportPath =
-                    new BasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case PLATFORM_COMPANY_ATTACHMENTSECTION:
-                reportPath =
-                    new AttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case ASSOCIATION_ATTACHMENTSECTION:
-                reportPath =
-                    new AssociationAttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data,
+        Map<String, Object> processedData = null;
+        switch (reportType) {
+            case PLATFORM_COMPANY:
+                 processedData = platformCompanyReport.processData(data);
+                return platformCompanyReport.exportReport(
                         processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case FOUNDATION_ATTACHMENTSECTION:
-                reportPath =
-                    new FoundationAttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case COMMON:
-                reportPath =
-                    new ServiceProviderInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case PLATFORM_COMPANY_FINANCIALINFO:
-                reportPath = new FinancialInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                    templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case PLATFORM_COMPANY_FINANCIALINFO_NEW:
-                reportPath = new FinancialInfoNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                    templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case FOUNDATION_FINANCIALINFO:
-                reportPath =
-                    new FoundationfinancialInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case PUBLIC_RECORD:
-                reportPath = new PublicRecordRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                    templateBytes, String.valueOf(relationId));
-                return reportPath;
-            case PUBLIC_RECORD_NEW:
-                reportPath = new PublicRecordNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                    templateBytes, String.valueOf(relationId));
-                return reportPath;
-
-            case PLATFORM_COMPANY_BASICINFO_NEW:
-                reportPath =
-                    new BasicInfoNewRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-
-            case FOUNDATION_BASICINFO:
-                reportPath =
-                    new FoundationBasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case ASSOCIATION_BASICINFO:
-                reportPath =
-                    new AssociationBasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case PROJECT:
-                reportPath =
-                    new ProjectInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case INTERESTCONFLICTS:
-                reportPath =
-                    new InterestConflictsRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes,
-                        String.valueOf(relationId));
-                return reportPath;
-            case TAX_NEW:
-                reportPath = new TaxNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
-                        templateBytes, String.valueOf(relationId));
-                return reportPath;
-
+                    tempTemplateFile.getAbsolutePath(),
+                    outputBasePath,
+                    relationId);
+            case ACADEMIC_ASSOCIATIONS:
+                processedData = academicAssociationReport.processData(data);
+                return academicAssociationReport.exportReport(
+                        processedData,
+                        tempTemplateFile.getAbsolutePath(),
+                        outputBasePath,
+                        relationId);
+            case FOUNDATION:
+                processedData = foundationReport.processData(data);
+                return foundationReport.exportReport(
+                        processedData,
+                        tempTemplateFile.getAbsolutePath(),
+                        outputBasePath,
+                        relationId);
+            case PROMOTION:
+                processedData = platformCompanyReport.processData(data);
+                return platformCompanyReport.exportReport(
+                        processedData,
+                        tempTemplateFile.getAbsolutePath(),
+                        outputBasePath,
+                        relationId);
             default:
-                throw new UnsupportedOperationException("Unsupported module type: " + moduleType);
-
+                throw new UnsupportedOperationException("Unsupported report type: " + reportType);
         }
     }
 
+
 }
+
+
+

+ 178 - 0
easier-report-biz/src/main/java/com/yaoyicloud/service/impl/ReportUpdateServiceImpl.java

@@ -0,0 +1,178 @@
+package com.yaoyicloud.service.impl;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.time.LocalDate;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.yaoyicloud.config.FilerepoProperties;
+import com.yaoyicloud.constant.enums.ModuleType;
+import com.yaoyicloud.constant.enums.ReportType;
+import com.yaoyicloud.render.InterestConflictsRender;
+import com.yaoyicloud.render.ProjectInfoRender;
+import com.yaoyicloud.render.PublicRecordRender;
+
+import com.yaoyicloud.render.association.AssociationAttachmentSectionRender;
+import com.yaoyicloud.render.foundation.FoundationAttachmentSectionRender;
+import com.yaoyicloud.render.foundation.FoundationfinancialInfoRender;
+import com.yaoyicloud.render.platform.AntiBriberyRender;
+import com.yaoyicloud.render.platform.AttachmentSectionRender;
+import com.yaoyicloud.render.platform.BasicInfoRender;
+import com.yaoyicloud.render.platform.FinancialInfoRender;
+import com.yaoyicloud.render.platform.ServiceProviderInfoRender;
+import com.yaoyicloud.render.association.AssociationBasicInfoRender;
+import com.yaoyicloud.render.foundation.FoundationBasicInfoRender;
+import com.yaoyicloud.render.platform.update.AntiBriberyNewRender;
+import com.yaoyicloud.render.platform.update.BasicInfoNewRender;
+import com.yaoyicloud.render.platform.update.FinancialInfoNewRender;
+import com.yaoyicloud.render.platform.update.PublicRecordNewRender;
+import com.yaoyicloud.render.platform.update.TaxNewRender;
+
+import com.yaoyicloud.service.ReportUpdateService;
+
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.http.HttpServletRequest;
+
+import static com.yaoyicloud.config.SessionInterceptor.SESSION_MAP;
+
+/**
+ * 报告服务
+ *
+ * @author snows
+ * @date 2024/10/12
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class ReportUpdateServiceImpl implements ReportUpdateService {
+
+    private final FilerepoProperties filerepoProperties;
+
+    @SuppressWarnings("checkstyle:ReturnCount")
+    @Override
+    public String createPlusVersionCheckReport(
+        ReportType reportType, String data, byte[] templateBytes, String outputBasePath, Long relationId,
+        HttpServletRequest request, ModuleType moduleType, String name, Integer level, String tenantName)
+        throws Exception {
+
+        // 1. 将字节流模版写入临时文件
+        File tempTemplateFile = File.createTempFile("template_", ".docx");
+        try (FileOutputStream fos = new FileOutputStream(tempTemplateFile)) {
+            fos.write(templateBytes);
+        }
+        Map<String, Object> processedData = new HashMap<>();
+        processedData.put("reportDate", LocalDate.now().toString());
+        processedData.put("type", reportType.getDesc());
+        processedData.put("name", name);
+        processedData.put("tenantName", tenantName);
+        processedData.put("levelInteger", level);
+
+        String sessionId = SESSION_MAP.get(relationId.toString());
+
+        String reportPath;
+        switch (moduleType) {
+            case ANTIBRIBERY:
+                reportPath =
+                    new AntiBriberyRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case ANTIBRIBERY_NEW:
+                reportPath =
+                    new AntiBriberyNewRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case PLATFORM_COMPANY_BASICINFO:
+                reportPath =
+                    new BasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case PLATFORM_COMPANY_ATTACHMENTSECTION:
+                reportPath =
+                    new AttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case ASSOCIATION_ATTACHMENTSECTION:
+                reportPath =
+                    new AssociationAttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data,
+                        processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case FOUNDATION_ATTACHMENTSECTION:
+                reportPath =
+                    new FoundationAttachmentSectionRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case COMMON:
+                reportPath =
+                    new ServiceProviderInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case PLATFORM_COMPANY_FINANCIALINFO:
+                reportPath = new FinancialInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                    templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case PLATFORM_COMPANY_FINANCIALINFO_NEW:
+                reportPath = new FinancialInfoNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                    templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case FOUNDATION_FINANCIALINFO:
+                reportPath =
+                    new FoundationfinancialInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case PUBLIC_RECORD:
+                reportPath = new PublicRecordRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                    templateBytes, String.valueOf(relationId));
+                return reportPath;
+            case PUBLIC_RECORD_NEW:
+                reportPath = new PublicRecordNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                    templateBytes, String.valueOf(relationId));
+                return reportPath;
+
+            case PLATFORM_COMPANY_BASICINFO_NEW:
+                reportPath =
+                    new BasicInfoNewRender(sessionId, filerepoProperties).renderDocx(data, processedData, templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+
+            case FOUNDATION_BASICINFO:
+                reportPath =
+                    new FoundationBasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case ASSOCIATION_BASICINFO:
+                reportPath =
+                    new AssociationBasicInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case PROJECT:
+                reportPath =
+                    new ProjectInfoRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case INTERESTCONFLICTS:
+                reportPath =
+                    new InterestConflictsRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes,
+                        String.valueOf(relationId));
+                return reportPath;
+            case TAX_NEW:
+                reportPath = new TaxNewRender(sessionId, filerepoProperties).renderDocx(data, processedData,
+                        templateBytes, String.valueOf(relationId));
+                return reportPath;
+
+            default:
+                throw new UnsupportedOperationException("Unsupported module type: " + moduleType);
+
+        }
+    }
+
+}