syncTasks.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. import service from '/@/utils/request';
  2. import type { Paged } from './mdpMonitor';
  3. export interface MdpSyncTaskRow {
  4. id: number;
  5. tenantId?: number;
  6. taskCode: string;
  7. taskName: string;
  8. taskType: string;
  9. businessDomainCode?: string | null;
  10. businessDomainName?: string | null;
  11. consumerModules?: string | null;
  12. sourceSystemCode?: string | null;
  13. serviceKey?: string | null;
  14. jobCode?: string | null;
  15. scheduleJobId?: string | null;
  16. scheduleMode?: string | null;
  17. status: number;
  18. configVersion: number;
  19. description?: string | null;
  20. autoEnabled?: boolean;
  21. manualEnabled?: boolean;
  22. lastRunStatus?: string | null;
  23. lastRunTime?: string | null;
  24. }
  25. export interface MdpSyncTaskListQuery {
  26. keyword?: string;
  27. businessDomainCode?: string;
  28. status?: number;
  29. page?: number;
  30. pageSize?: number;
  31. }
  32. export interface MdpSyncTaskUpsertInput {
  33. taskCode: string;
  34. taskName: string;
  35. taskType?: string;
  36. businessDomainCode?: string | null;
  37. businessDomainName?: string | null;
  38. consumerModules?: string | null;
  39. sourceSystemCode?: string | null;
  40. serviceKey?: string | null;
  41. jobCode?: string | null;
  42. scheduleJobId?: string | null;
  43. status?: number;
  44. ownerRole?: string | null;
  45. description?: string | null;
  46. }
  47. export interface MdpSyncTaskStepRow {
  48. id?: number | null;
  49. stepCode: string;
  50. stepName: string;
  51. stageType: string;
  52. serviceMethodKey?: string | null;
  53. enabled: boolean;
  54. sortOrder: number;
  55. description?: string | null;
  56. }
  57. export interface MdpSyncTaskScheduleRow {
  58. taskCode: string;
  59. scheduleJobId?: string | null;
  60. scheduleMode?: string;
  61. cronExpr?: string | null;
  62. cronDesc?: string | null;
  63. timezone?: string;
  64. autoEnabled?: boolean;
  65. manualEnabled?: boolean;
  66. retryEnabled?: boolean;
  67. maxRetryCount?: number;
  68. retryIntervalSeconds?: number;
  69. timeoutSeconds?: number;
  70. misfirePolicy?: string | null;
  71. syncWindowType?: string;
  72. syncWindowValue?: string | null;
  73. lastScheduleTime?: string | null;
  74. nextScheduleTime?: string | null;
  75. adminJobConfigJson?: string | null;
  76. description?: string | null;
  77. }
  78. export function fetchSyncTaskList(params: MdpSyncTaskListQuery) {
  79. return service.get<Paged<MdpSyncTaskRow>>('/api/DataPlatform/sync-tasks', { params }).then((r) => r.data);
  80. }
  81. export function fetchSyncTaskDetail(id: number) {
  82. return service.get<MdpSyncTaskRow>(`/api/DataPlatform/sync-tasks/${id}`).then((r) => r.data);
  83. }
  84. export function createSyncTask(payload: MdpSyncTaskUpsertInput) {
  85. return service.post<{ id: number }>('/api/DataPlatform/sync-tasks', payload).then((r) => r.data);
  86. }
  87. export function updateSyncTask(id: number, payload: MdpSyncTaskUpsertInput) {
  88. return service.put<{ id: number }>(`/api/DataPlatform/sync-tasks/${id}`, payload).then((r) => r.data);
  89. }
  90. export function deleteSyncTask(id: number) {
  91. return service.delete<{ id: number }>(`/api/DataPlatform/sync-tasks/${id}`).then((r) => r.data);
  92. }
  93. export function fetchSyncTaskSteps(taskCode: string) {
  94. return service.get<MdpSyncTaskStepRow[]>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/steps`).then((r) => r.data);
  95. }
  96. export function saveSyncTaskSteps(taskCode: string, steps: MdpSyncTaskStepRow[]) {
  97. return service.put<{ count: number }>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/steps`, steps).then((r) => r.data);
  98. }
  99. export function fetchSyncTaskSchedule(taskCode: string) {
  100. return service.get<MdpSyncTaskScheduleRow>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule`).then((r) => r.data);
  101. }
  102. export function saveSyncTaskSchedule(taskCode: string, payload: MdpSyncTaskScheduleRow) {
  103. return service.put<MdpSyncTaskScheduleRow>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule`, payload).then((r) => r.data);
  104. }
  105. export function syncAdminJobSnapshot(taskCode: string) {
  106. return service
  107. .post<{ taskCode: string; scheduleJobId?: string | null; adminJobConfigJson?: string | null }>(
  108. `/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule/sync-admin-job`
  109. )
  110. .then((r) => r.data);
  111. }
  112. export interface MdpEntityRow {
  113. id: number;
  114. tenantId?: number;
  115. sourceId: number;
  116. sourceCode?: string | null;
  117. sourceName?: string | null;
  118. sourceType?: string | null;
  119. entityCode: string;
  120. entityName: string;
  121. entityType: string;
  122. sourceTableName?: string | null;
  123. sourceApiPath?: string | null;
  124. targetTableName?: string | null;
  125. syncMode: string;
  126. incrColumn?: string | null;
  127. batchSize?: number;
  128. jobId?: string | null;
  129. status: number;
  130. remark?: string | null;
  131. fieldMappingCount?: number;
  132. }
  133. export interface MdpEntityUpsertInput {
  134. entityCode: string;
  135. entityName: string;
  136. entityType?: string;
  137. sourceId?: number;
  138. sourceCode?: string | null;
  139. sourceTableName?: string | null;
  140. sourceApiPath?: string | null;
  141. targetTableName?: string | null;
  142. syncMode?: string;
  143. incrColumn?: string | null;
  144. batchSize?: number;
  145. jobId?: string | null;
  146. status?: number;
  147. remark?: string | null;
  148. }
  149. export interface MdpFieldMappingRow {
  150. id: number;
  151. entityId: number;
  152. sourceField: string;
  153. targetField: string;
  154. fieldType: string;
  155. transformScript?: string | null;
  156. constValue?: string | null;
  157. lookupTable?: string | null;
  158. isRequired: boolean;
  159. defaultValue?: string | null;
  160. sortOrder: number;
  161. }
  162. export interface MdpFieldMappingUpsertInput {
  163. sourceField: string;
  164. targetField: string;
  165. fieldType?: string;
  166. transformScript?: string | null;
  167. constValue?: string | null;
  168. lookupTable?: string | null;
  169. isRequired?: boolean;
  170. defaultValue?: string | null;
  171. sortOrder?: number;
  172. }
  173. export function fetchSyncTaskEntities(taskCode: string) {
  174. return service.get<MdpEntityRow[]>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/entities`).then((r) => r.data);
  175. }
  176. export function createSyncTaskEntity(taskCode: string, payload: MdpEntityUpsertInput) {
  177. return service.post<{ id: number }>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/entities`, payload).then((r) => r.data);
  178. }
  179. export function updateSyncEntity(id: number, payload: MdpEntityUpsertInput) {
  180. return service.put<{ id: number }>(`/api/DataPlatform/entities/${id}`, payload).then((r) => r.data);
  181. }
  182. export function deleteSyncEntity(id: number) {
  183. return service.delete<{ id: number }>(`/api/DataPlatform/entities/${id}`).then((r) => r.data);
  184. }
  185. export function fetchEntityFieldMappings(entityId: number) {
  186. return service.get<MdpFieldMappingRow[]>(`/api/DataPlatform/entities/${entityId}/field-mappings`).then((r) => r.data);
  187. }
  188. export function createEntityFieldMapping(entityId: number, payload: MdpFieldMappingUpsertInput) {
  189. return service.post<{ id: number }>(`/api/DataPlatform/entities/${entityId}/field-mappings`, payload).then((r) => r.data);
  190. }
  191. export function updateFieldMapping(id: number, payload: MdpFieldMappingUpsertInput) {
  192. return service.put<{ id: number }>(`/api/DataPlatform/field-mappings/${id}`, payload).then((r) => r.data);
  193. }
  194. export function deleteFieldMapping(id: number) {
  195. return service.delete<{ id: number }>(`/api/DataPlatform/field-mappings/${id}`).then((r) => r.data);
  196. }