增加报表配置管理
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
import request from '/@/utils/request';
|
||||
|
||||
/** 字段定义 */
|
||||
export interface FieldDefine {
|
||||
id?: number | string;
|
||||
fieldCode: string;
|
||||
fieldName: string;
|
||||
fieldType: 'STRING' | 'INT' | 'FLOAT' | 'BIGINT' | 'DECIMAL' | 'DATE' | 'DATETIME' | 'BOOLEAN';
|
||||
dataType?: string;
|
||||
fieldRole: 'DIMENSION' | 'INDICATOR';
|
||||
isAggregatable?: boolean;
|
||||
isFilterable?: boolean;
|
||||
isQueryable?: boolean;
|
||||
isSortable?: boolean;
|
||||
defaultAggregate?: string;
|
||||
groupName?: string;
|
||||
sortOrder: number;
|
||||
unit?: string;
|
||||
expression?: string;
|
||||
status?: string;
|
||||
validAggregates?: string[];
|
||||
}
|
||||
|
||||
/** 报表+字段保存请求参数 */
|
||||
export interface ReportWithFieldsData {
|
||||
businessCode: string;
|
||||
reportCode: string;
|
||||
reportName: string;
|
||||
description?: string;
|
||||
status?: string;
|
||||
statTableName: string;
|
||||
statTableComment?: string;
|
||||
dateField?: string;
|
||||
primaryKeys?: string[];
|
||||
conflictKeys?: string[];
|
||||
fields: FieldDefine[];
|
||||
}
|
||||
|
||||
export interface ExtractConfigSaveData {
|
||||
id?: number;
|
||||
businessCode: string;
|
||||
reportCode: string;
|
||||
extractCode: string;
|
||||
extractName: string;
|
||||
sourceTableName: string;
|
||||
sourceTableAlias?: string;
|
||||
targetTableName: string;
|
||||
isEnabled: boolean;
|
||||
extractType: string;
|
||||
extractMode: string;
|
||||
extractKeyField?: string;
|
||||
batchSize?: number;
|
||||
status?: string;
|
||||
groupByFields?: string[];
|
||||
filterExpression?: string;
|
||||
operator?: string;
|
||||
}
|
||||
|
||||
// --- 业务 Business ---
|
||||
|
||||
export function listBusinesses() {
|
||||
return request({
|
||||
url: '/data-engine/report/businesses',
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
export function getBusiness(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/business',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
export function saveBusiness(data: { id?: number; businessCode: string; businessName: string }) {
|
||||
return request({
|
||||
url: '/data-engine/report/business/save',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteBusiness(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/business',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// --- 报表 Report ---
|
||||
|
||||
export function listReports(businessCode: string, pageNum: number, pageSize: number, reportName?: string) {
|
||||
const params: any = { businessCode, pageNum, pageSize };
|
||||
if (reportName) params.reportName = reportName;
|
||||
return request({
|
||||
url: '/data-engine/report/reports',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getReport(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/report',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
export function saveReport(data: {
|
||||
businessCode: string;
|
||||
reportCode: string;
|
||||
reportName: string;
|
||||
description?: string;
|
||||
status?: string;
|
||||
statTableName: string;
|
||||
statTableComment?: string;
|
||||
dateField?: string;
|
||||
primaryKeys?: string[];
|
||||
conflictKeys?: string[];
|
||||
}) {
|
||||
return request({
|
||||
url: '/data-engine/report/report/save',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 保存报表及字段(新建 / 编辑统一入口,全量替换字段) */
|
||||
export function saveReportWithFields(data: ReportWithFieldsData) {
|
||||
return request({
|
||||
url: '/data-engine/report/report/saveWithFields',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteReport(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/report',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
/** 按天回刷(支持单天或日期范围) */
|
||||
export function execDailyBackfill(data: { businessCode: string; reportCode: string; startDate: string; endDate: string }) {
|
||||
return request({
|
||||
url: '/data-engine/report/backfill',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// --- 抽取配置 ExtractConfig ---
|
||||
|
||||
export function getExtractConfig(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/extractConfig',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
export function saveExtractConfig(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/data-engine/report/extractConfig/save',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteExtractConfig(id: number) {
|
||||
return request({
|
||||
url: '/data-engine/report/extractConfig',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user