wuzhen 信息采集和统计分析完成
This commit is contained in:
1 parent
27fcea613c
commit
2f56204113
122 files changed
+29130
-101
No files matched your search
@@ -0,0 +1,283 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { CollectionBatchVO, CollectionBatchForm, CollectionBatchQuery } from './types';
|
||||
|
||||
/**
|
||||
* 查询信息采集批次列表
|
||||
*/
|
||||
export const listCollectionBatch = (query?: CollectionBatchQuery): AxiosPromise<CollectionBatchVO[]> => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询信息采集批次详细
|
||||
*/
|
||||
export const getCollectionBatch = (id: string | number): AxiosPromise<CollectionBatchVO> => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据批次编码查询批次信息
|
||||
*/
|
||||
export const getCollectionBatchByCode = (batchCode: string): AxiosPromise<CollectionBatchVO> => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/code/${batchCode}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增信息采集批次
|
||||
*/
|
||||
export const addCollectionBatch = (data: CollectionBatchForm) => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改信息采集批次
|
||||
*/
|
||||
export const updateCollectionBatch = (data: CollectionBatchForm) => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除信息采集批次
|
||||
*/
|
||||
export const delCollectionBatch = (ids: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/${ids}`,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 导出信息采集批次
|
||||
*/
|
||||
export const exportCollectionBatch = (query?: CollectionBatchQuery) => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/export',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询用户权限内的批次列表
|
||||
*/
|
||||
export const getUserPermissionBatches = (): AxiosPromise<CollectionBatchVO[]> => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/userPermission',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询活跃的批次列表
|
||||
*/
|
||||
export const getActiveBatches = (): AxiosPromise<CollectionBatchVO[]> => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/active',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询即将开始的批次列表
|
||||
*/
|
||||
export const getUpcomingBatches = (): AxiosPromise<CollectionBatchVO[]> => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/upcoming',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询即将结束的批次列表
|
||||
*/
|
||||
export const getEndingSoonBatches = (): AxiosPromise<CollectionBatchVO[]> => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/endingSoon',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 开始批次
|
||||
*/
|
||||
export const startBatch = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/start/${batchId}`,
|
||||
method: 'post'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 暂停批次
|
||||
*/
|
||||
export const pauseBatch = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/pause/${batchId}`,
|
||||
method: 'post'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 恢复批次
|
||||
*/
|
||||
export const resumeBatch = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/resume/${batchId}`,
|
||||
method: 'post'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 结束批次
|
||||
*/
|
||||
export const endBatch = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/end/${batchId}`,
|
||||
method: 'post'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 复制批次
|
||||
*/
|
||||
export const copyBatch = (batchId: string | number, newBatchCode: string, newBatchName: string) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/copy/${batchId}`,
|
||||
method: 'post',
|
||||
data: {
|
||||
newBatchCode,
|
||||
newBatchName
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取批次统计信息
|
||||
*/
|
||||
export const getBatchStatistics = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/statistics/${batchId}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取整体统计信息
|
||||
*/
|
||||
export const getOverallStatistics = () => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/statistics/overall',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取批次完成度统计
|
||||
*/
|
||||
export const getBatchCompletionStatistics = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/statistics/completion/${batchId}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取批次多维度统计
|
||||
*/
|
||||
export const getBatchDimensionStatistics = (batchId: string | number, dimension: string) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/statistics/dimension/${batchId}`,
|
||||
method: 'get',
|
||||
params: { dimension }
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 批量更新批次状态
|
||||
*/
|
||||
export const batchUpdateStatus = (batchIds: Array<string | number>, status: string) => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/batchUpdateStatus',
|
||||
method: 'post',
|
||||
data: {
|
||||
batchIds,
|
||||
status
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 检查批次是否可编辑
|
||||
*/
|
||||
export const checkBatchEditable = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/checkEditable/${batchId}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 检查批次是否可删除
|
||||
*/
|
||||
export const checkBatchDeletable = (batchId: string | number) => {
|
||||
return request({
|
||||
url: `/xg/collectionBatch/checkDeletable/${batchId}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取可用批次选项
|
||||
*/
|
||||
export const getAvailableBatches = () => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/available',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 导入批次数据
|
||||
*/
|
||||
export const importBatchData = (file: File) => {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
return request({
|
||||
url: '/xg/collectionBatch/import',
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 下载批次数据导入模板
|
||||
*/
|
||||
export const downloadBatchTemplate = () => {
|
||||
return request({
|
||||
url: '/xg/collectionBatch/importTemplate',
|
||||
method: 'post',
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,501 @@
|
||||
import request from '@/utils/request'
|
||||
import { AxiosPromise } from 'axios'
|
||||
|
||||
// ========== 统计分析相关类型定义 ==========
|
||||
|
||||
// 统计查询参数
|
||||
export interface StatisticsQuery {
|
||||
pageNum?: number
|
||||
pageSize?: number
|
||||
configName?: string
|
||||
configType?: string
|
||||
dimensionType?: string
|
||||
isEnabled?: boolean
|
||||
createTime?: string[]
|
||||
}
|
||||
|
||||
// 统计分析查询参数
|
||||
export interface StatisticsAnalysisQuery {
|
||||
statisticsType?: string
|
||||
dimension?: string
|
||||
field?: string
|
||||
groupBy?: string
|
||||
conditions?: Record<string, any>
|
||||
startTime?: string
|
||||
endTime?: string
|
||||
collegeIds?: number[]
|
||||
majorIds?: number[]
|
||||
classIds?: number[]
|
||||
grades?: string[]
|
||||
genders?: string[]
|
||||
politicalStatuses?: string[]
|
||||
nationalities?: string[]
|
||||
studentStatuses?: string[]
|
||||
trainingTypes?: string[]
|
||||
useCache?: boolean
|
||||
}
|
||||
|
||||
// 统计配置视图对象
|
||||
export interface StatisticsConfigVo {
|
||||
id?: number
|
||||
configName?: string
|
||||
configType?: string
|
||||
dimensionType?: string
|
||||
queryConditions?: string
|
||||
displaySettings?: string
|
||||
chartType?: string
|
||||
isEnabled?: boolean
|
||||
sortOrder?: number
|
||||
remark?: string
|
||||
createBy?: number
|
||||
createTime?: string
|
||||
updateBy?: number
|
||||
updateTime?: string
|
||||
}
|
||||
|
||||
// 统计配置业务对象
|
||||
export interface StatisticsConfigBo {
|
||||
id?: number
|
||||
configName?: string
|
||||
configType?: string
|
||||
dimensionType?: string
|
||||
queryConditions?: string
|
||||
displaySettings?: string
|
||||
chartType?: string
|
||||
isEnabled?: boolean
|
||||
sortOrder?: number
|
||||
remark?: string
|
||||
}
|
||||
|
||||
// 统计结果视图对象
|
||||
export interface StatisticsResultVo {
|
||||
title?: string
|
||||
type?: string
|
||||
dimension?: string
|
||||
data?: Array<Record<string, any>>
|
||||
total?: number
|
||||
statisticsTime?: string
|
||||
fromCache?: boolean
|
||||
cacheKey?: string
|
||||
extra?: Record<string, any>
|
||||
chartConfig?: Record<string, any>
|
||||
groupData?: Record<string, Array<Record<string, any>>>
|
||||
summary?: Record<string, any>
|
||||
}
|
||||
|
||||
// 统计报表视图对象
|
||||
export interface StatisticsReportVo {
|
||||
reportType?: string
|
||||
title?: string
|
||||
description?: string
|
||||
data?: Array<Record<string, any>>
|
||||
summary?: Record<string, any>
|
||||
generateTime?: string
|
||||
metadata?: {
|
||||
total: number
|
||||
conditions: Record<string, any>
|
||||
}
|
||||
}
|
||||
|
||||
// 统计缓存信息
|
||||
export interface StatisticsCacheInfo {
|
||||
key?: string
|
||||
hitCount?: number
|
||||
missCount?: number
|
||||
hitRate?: number
|
||||
size?: number
|
||||
lastAccessTime?: string
|
||||
createTime?: string
|
||||
expireTime?: string
|
||||
}
|
||||
|
||||
// 导出参数
|
||||
export interface StatisticsExportQuery {
|
||||
dimension?: string
|
||||
format?: 'excel' | 'csv'
|
||||
includeChart?: boolean
|
||||
conditions?: Record<string, any>
|
||||
reportType?: string
|
||||
}
|
||||
|
||||
// ========== 统计配置管理API ==========
|
||||
|
||||
// 查询统计配置列表
|
||||
export function listStatisticsConfig(query: StatisticsQuery): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsConfig/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取统计配置详情
|
||||
export function getStatisticsConfig(id: number): AxiosPromise<StatisticsConfigVo> {
|
||||
return request({
|
||||
url: `/xg/statisticsConfig/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增统计配置
|
||||
export function addStatisticsConfig(data: StatisticsConfigBo): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsConfig',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改统计配置
|
||||
export function updateStatisticsConfig(data: StatisticsConfigBo): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsConfig',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除统计配置
|
||||
export function delStatisticsConfig(ids: number[]): AxiosPromise<any> {
|
||||
return request({
|
||||
url: `/xg/statisticsConfig/${ids}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出统计配置
|
||||
export function exportStatisticsConfig(query: StatisticsQuery): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsConfig/export',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 启用/禁用统计配置
|
||||
export function changeStatisticsConfigStatus(id: number, status: boolean): AxiosPromise<any> {
|
||||
return request({
|
||||
url: `/xg/statisticsConfig/changeStatus`,
|
||||
method: 'put',
|
||||
data: { id, isEnabled: status }
|
||||
})
|
||||
}
|
||||
|
||||
// ========== 统计分析API ==========
|
||||
|
||||
// 获取统计概览
|
||||
export function getStatisticsOverview(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/overview',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 学院统计
|
||||
export function getCollegeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/college',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 专业统计
|
||||
export function getMajorStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/major',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 班级统计
|
||||
export function getClassStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/class',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 年级统计
|
||||
export function getGradeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/grade',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 性别统计
|
||||
export function getGenderStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/gender',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 年龄统计
|
||||
export function getAgeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/age',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 政治面貌统计
|
||||
export function getPoliticalStatusStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/political',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 民族统计
|
||||
export function getNationStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/nation',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 生源地统计
|
||||
export function getSourceRegionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/sourceRegion',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 血型统计
|
||||
export function getBloodTypeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/bloodType',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 宗教信仰统计
|
||||
export function getReligionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/religion',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 学籍状态统计
|
||||
export function getStudentStatusStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/studentStatus',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 按维度统计 - 培养方式统计
|
||||
export function getTrainingTypeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/trainingType',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 高级统计 - 身高统计
|
||||
export function getHeightStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/height',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 高级统计 - 体重统计
|
||||
export function getWeightStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/weight',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 多维度组合统计
|
||||
export function getMultiDimensionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/multiDimension',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 时间趋势统计
|
||||
export function getTimeTrendStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/timeTrend',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// ========== 统计报表API ==========
|
||||
|
||||
// 生成学生信息汇总报表
|
||||
export function generateStudentSummaryReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/report/studentSummary',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 生成班级统计报表
|
||||
export function generateClassStatisticsReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/report/classStatistics',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 生成学院统计报表
|
||||
export function generateCollegeStatisticsReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/report/collegeStatistics',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 生成困难学生统计报表
|
||||
export function generateDifficultStudentReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/report/difficultStudent',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 生成特殊群体统计报表
|
||||
export function generateSpecialGroupReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/report/specialGroup',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// ========== 统计导出API ==========
|
||||
|
||||
// 导出统计结果
|
||||
export function exportStatisticsResult(query: StatisticsExportQuery): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/export',
|
||||
method: 'post',
|
||||
data: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出统计报表
|
||||
export function exportStatisticsReport(query: StatisticsExportQuery): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/exportReport',
|
||||
method: 'post',
|
||||
data: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// ========== 统计缓存API ==========
|
||||
|
||||
// 获取缓存统计信息
|
||||
export function getCacheStatistics(): AxiosPromise<StatisticsCacheInfo> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/cache/info',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 清空统计缓存
|
||||
export function clearStatisticsCache(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/cache/clear',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 预热统计缓存
|
||||
export function warmupStatisticsCache(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/cache/warmup',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// ========== 辅助API ==========
|
||||
|
||||
// 获取统计维度选项
|
||||
export function getStatisticsDimensionOptions(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/dimensionOptions',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取图表类型选项
|
||||
export function getChartTypeOptions(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/chartTypeOptions',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取学院选项
|
||||
export function getCollegeOptions(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/collegeOptions',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取专业选项
|
||||
export function getMajorOptions(collegeCode?: string): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/majorOptions',
|
||||
method: 'get',
|
||||
params: { collegeCode }
|
||||
})
|
||||
}
|
||||
|
||||
// 获取班级选项
|
||||
export function getClassOptions(majorCode?: string): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/classOptions',
|
||||
method: 'get',
|
||||
params: { majorCode }
|
||||
})
|
||||
}
|
||||
|
||||
// 获取年级选项
|
||||
export function getGradeOptions(): AxiosPromise<any> {
|
||||
return request({
|
||||
url: '/xg/statisticsAnalysis/gradeOptions',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 执行统计配置
|
||||
export function executeStatisticsConfig(configId: number, query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
|
||||
return request({
|
||||
url: `/xg/statisticsAnalysis/executeConfig/${configId}`,
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
@@ -1,5 +1,157 @@
|
||||
// 学生信息管理模块类型定义
|
||||
|
||||
// ========== 信息采集批次管理相关类型 ==========
|
||||
|
||||
// 信息采集批次VO
|
||||
export interface CollectionBatchVO {
|
||||
id?: number
|
||||
batchCode?: string
|
||||
batchName?: string
|
||||
batchType?: string
|
||||
academicYear?: string
|
||||
semester?: string
|
||||
batchStatus?: string
|
||||
publishTime?: string
|
||||
startTime?: string
|
||||
endTime?: string
|
||||
archiveTime?: string
|
||||
targetColleges?: string
|
||||
targetGrades?: string
|
||||
targetMajors?: string
|
||||
requiredFields?: string
|
||||
optionalFields?: string
|
||||
auditLevels?: string
|
||||
totalStudents?: number
|
||||
submittedCount?: number
|
||||
approvedCount?: number
|
||||
rejectedCount?: number
|
||||
completionRate?: number
|
||||
// 新增统计字段
|
||||
studentCount?: number // 兼容性字段,映射到 totalStudents
|
||||
pendingCount?: number // 待提交数量
|
||||
description?: string
|
||||
editPermissions?: string
|
||||
auditPermissions?: string
|
||||
viewPermissions?: string
|
||||
autoReminder?: number
|
||||
reminderFrequency?: number
|
||||
allowModifyAfterSubmit?: number
|
||||
createTime?: string
|
||||
updateTime?: string
|
||||
createBy?: number
|
||||
updateBy?: number
|
||||
}
|
||||
|
||||
// 信息采集批次表单
|
||||
export interface CollectionBatchForm {
|
||||
id?: number
|
||||
batchCode?: string
|
||||
batchName?: string
|
||||
batchType?: string
|
||||
academicYear?: string
|
||||
semester?: string
|
||||
batchStatus?: string
|
||||
publishTime?: string
|
||||
startTime?: string
|
||||
endTime?: string
|
||||
archiveTime?: string
|
||||
targetColleges?: string
|
||||
targetGrades?: string
|
||||
targetMajors?: string
|
||||
requiredFields?: string
|
||||
optionalFields?: string
|
||||
auditLevels?: string
|
||||
description?: string
|
||||
editPermissions?: string
|
||||
auditPermissions?: string
|
||||
viewPermissions?: string
|
||||
autoReminder?: number
|
||||
reminderFrequency?: number
|
||||
allowModifyAfterSubmit?: number
|
||||
}
|
||||
|
||||
// 信息采集批次查询参数
|
||||
export interface CollectionBatchQuery {
|
||||
pageNum?: number
|
||||
pageSize?: number
|
||||
batchCode?: string
|
||||
batchName?: string
|
||||
batchType?: string
|
||||
academicYear?: string
|
||||
semester?: string
|
||||
batchStatus?: string
|
||||
targetColleges?: string
|
||||
targetGrades?: string
|
||||
targetMajors?: string
|
||||
publishTimeStart?: string
|
||||
publishTimeEnd?: string
|
||||
startTimeStart?: string
|
||||
startTimeEnd?: string
|
||||
endTimeStart?: string
|
||||
endTimeEnd?: string
|
||||
description?: string
|
||||
}
|
||||
|
||||
// 批次统计信息
|
||||
export interface BatchStatistics {
|
||||
totalBatches?: number
|
||||
activeBatches?: number
|
||||
completedBatches?: number
|
||||
draftBatches?: number
|
||||
totalStudents?: number
|
||||
submittedCount?: number
|
||||
approvedCount?: number
|
||||
rejectedCount?: number
|
||||
completionRate?: number
|
||||
averageCompletionTime?: number
|
||||
}
|
||||
|
||||
// 批次完成度统计
|
||||
export interface BatchCompletionStatistics {
|
||||
batchId?: number
|
||||
batchName?: string
|
||||
totalStudents?: number
|
||||
submittedCount?: number
|
||||
approvedCount?: number
|
||||
rejectedCount?: number
|
||||
pendingCount?: number
|
||||
completionRate?: number
|
||||
submitRate?: number
|
||||
approvalRate?: number
|
||||
collegeStatistics?: CollegeCompletionStatistics[]
|
||||
}
|
||||
|
||||
// 学院完成度统计
|
||||
export interface CollegeCompletionStatistics {
|
||||
collegeId?: number
|
||||
collegeName?: string
|
||||
totalStudents?: number
|
||||
submittedCount?: number
|
||||
approvedCount?: number
|
||||
rejectedCount?: number
|
||||
pendingCount?: number
|
||||
completionRate?: number
|
||||
submitRate?: number
|
||||
approvalRate?: number
|
||||
}
|
||||
|
||||
// 批次多维度统计
|
||||
export interface BatchDimensionStatistics {
|
||||
dimension?: string
|
||||
dimensionName?: string
|
||||
items?: DimensionStatisticsItem[]
|
||||
}
|
||||
|
||||
// 维度统计项
|
||||
export interface DimensionStatisticsItem {
|
||||
key?: string
|
||||
label?: string
|
||||
count?: number
|
||||
percentage?: number
|
||||
}
|
||||
|
||||
// ========== 学生信息相关类型 ==========
|
||||
|
||||
// 学生信息完整数据结构
|
||||
export interface StudentInfoVo {
|
||||
id?: number
|
||||
|
||||
Reference in new issue
Block a user