analysis.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { http } from '@/api/request'
  2. import type { PageQuery, PageResult } from '@/types/api'
  3. import type { AxiosRequestConfig } from 'axios'
  4. import type {
  5. ProcessEfficiency,
  6. NodeStayStat,
  7. StuckInstance,
  8. AnalysisOverview,
  9. StatusDistribution,
  10. Trend,
  11. EfficiencyQuery,
  12. OverviewQuery,
  13. StuckInstanceQuery,
  14. } from '@/types/analysis'
  15. export function getOverview(params?: OverviewQuery, config?: AxiosRequestConfig): Promise<AnalysisOverview> {
  16. return http.get('/analysis/overview', { params, ...config })
  17. }
  18. export function getStatusDistribution(
  19. params?: { processDefinitionId?: number; startTime?: string; endTime?: string },
  20. config?: AxiosRequestConfig
  21. ): Promise<StatusDistribution[]> {
  22. return http.get('/analysis/status-distribution', { params, ...config })
  23. }
  24. export function getTrend(processDefinitionId?: number, config?: AxiosRequestConfig): Promise<Trend[]> {
  25. return http.get('/analysis/trend', {
  26. params: processDefinitionId !== undefined ? { processDefinitionId } : undefined,
  27. ...config,
  28. })
  29. }
  30. export function getCompletedEfficiency(
  31. params: EfficiencyQuery,
  32. config?: AxiosRequestConfig
  33. ): Promise<ProcessEfficiency[]> {
  34. return http.get('/analysis/completed-efficiency', { params, ...config })
  35. }
  36. export function getInProgressByNode(
  37. processDefinitionId?: number,
  38. config?: AxiosRequestConfig
  39. ): Promise<NodeStayStat[]> {
  40. return http.get('/analysis/in-progress-by-node', {
  41. params: processDefinitionId !== undefined ? { processDefinitionId } : undefined,
  42. ...config,
  43. })
  44. }
  45. export function getStuckInstances(
  46. params: StuckInstanceQuery & PageQuery,
  47. config?: AxiosRequestConfig
  48. ): Promise<PageResult<StuckInstance>> {
  49. return http.get('/analysis/stuck-instances', { params, ...config })
  50. }
  51. export function getNodeCount(processDefinitionId: number): Promise<{ nodeName: string; count: number }[]> {
  52. return http.get('/analysis/node-count', { params: { processDefinitionId } })
  53. }