报表基础模块:板材汇总-按板材报表excel导出实现:exec微服务rpc接口、report微服务rpc接口实现;

This commit is contained in:
gaoqr
2024-07-23 11:23:41 +08:00
parent d9999377c9
commit 9f7f4aba72
25 changed files with 716 additions and 22 deletions
@@ -22,5 +22,26 @@
<groupId>com.cf.imes</groupId>
<artifactId>cf-common</artifactId>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<scope>provided</scope>
</dependency>
<!-- 参数校验 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<optional>true</optional>
</dependency>
<!-- RPC 远程调用相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,26 @@
package com.cf.imes.module.report.api.template;
import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO;
import com.cf.imes.module.report.enums.ApiConstants;
import feign.Response;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 报表模板feign service
*
* @author Gqr
* @since 2024/7/19 11:31
*/
@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory =
@Tag(name = "RPC 服务 - 报表模板")
public interface ReportTemplateApi {
String PREFIX = ApiConstants.PREFIX + "/template";
@PostMapping(value = PREFIX + "/excel")
@Operation(summary = "下载模板excel")
Response excel(@RequestBody ReportTemplateGenerateReqDTO reqDTO);
}
@@ -0,0 +1,22 @@
package com.cf.imes.module.report.api.template.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Map;
/**
* @author Gqr
* @since 2024/7/19 15:03
*/
@Schema(description = "RPC 服务 - 报表模板生成 Request DTO")
@Data
public class ReportTemplateGenerateReqDTO {
@Schema(description = "模板id")
@NotNull(message = "模板id不能为空")
private Long templateId;
@Schema(description = "参数集合")
private Map<String, Object> params;
}
@@ -0,0 +1,21 @@
package com.cf.imes.module.report.enums;
/**
* API 相关的枚举
*
* @author 晨丰科技
*/
public class ApiConstants {
/**
* 服务名
*
* 注意,需要保证和 spring.application.name 保持一致
*/
public static final String NAME = "report-server";
public static final String PREFIX = "/admin-api/report";
public static final String VERSION = "1.0.0";
}
@@ -5,18 +5,23 @@ import com.cf.imes.framework.common.exception.ErrorCode;
/**
* Report 错误码枚举类
*
* <p>
* report 系统,使用 1-003-000-000 段
*/
public interface ErrorCodeConstants {
// ========== UREPORT 模块 1-003-001-000 ==========
// ========== UREPORT template模块 1-003-001-000 ==========
ErrorCode TEMPLATE_NOT_EXISTS = new ErrorCode(1_003_001_001, "报表模板信息不存在");
ErrorCode DATASOURCE_NOT_EXISTS = new ErrorCode(1_003_001_002, "报表数据源不存在");
ErrorCode DATASOURCE_CONNECT_FAIL = new ErrorCode(1_003_001_003, "报表数据源连接失败");
ErrorCode DATASET_NOT_EXISTS = new ErrorCode(1_003_001_004, "报表数据集不存在");
ErrorCode DATASET_SQL_INJECTION_RISK = new ErrorCode(1_003_001_005, "存在SQL注入风险");
ErrorCode DATASET_SQL_REQUIRED = new ErrorCode(1_003_001_006, "SQL语句不能为空");
ErrorCode DATASET_SQL_ILLEGAL = new ErrorCode(1_003_001_007, "SQL语句非法");
ErrorCode DATASET_GET_FIELDS_ERROR = new ErrorCode(1_003_001_008, "获取表字段");
ErrorCode TEMPLATE_GENERATE_EXCEL_ERROR = new ErrorCode(1_003_001_002, "模板excel生成异常");
// ========== UREPORT datasource模块 1-003-002-000 ==========
ErrorCode DATASOURCE_NOT_EXISTS = new ErrorCode(1_003_002_001, "报表数据源不存在");
ErrorCode DATASOURCE_CONNECT_FAIL = new ErrorCode(1_003_002_001, "报表数据源连接失败");
// ========== UREPORT dataset模块 1-003-003-000 ==========
ErrorCode DATASET_NOT_EXISTS = new ErrorCode(1_003_003_001, "报表数据集不存在");
ErrorCode DATASET_SQL_INJECTION_RISK = new ErrorCode(1_003_003_002, "存在SQL注入风险");
ErrorCode DATASET_SQL_REQUIRED = new ErrorCode(1_003_003_003, "SQL语句不能为空");
ErrorCode DATASET_SQL_ILLEGAL = new ErrorCode(1_003_003_004, "SQL语句非法");
ErrorCode DATASET_GET_FIELDS_ERROR = new ErrorCode(1_003_003_005, "获取表字段");
}