2026-04-23 11:09:06 +08:00
|
|
|
|
import http from '@/api'
|
|
|
|
|
|
import type { MmsMapping } from './interface'
|
|
|
|
|
|
|
|
|
|
|
|
const buildIcdFormData = (icdFile: File) => {
|
|
|
|
|
|
const formData = new FormData()
|
|
|
|
|
|
|
|
|
|
|
|
formData.append('icdFile', icdFile)
|
|
|
|
|
|
|
|
|
|
|
|
return formData
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-06-15 08:40:44 +08:00
|
|
|
|
const buildIcdPathFormData = (icdFile: File, request: MmsMapping.CreateIcdPathRequest | MmsMapping.UpdateIcdPathRequest) => {
|
|
|
|
|
|
const formData = buildIcdFormData(icdFile)
|
|
|
|
|
|
|
|
|
|
|
|
formData.append('request', new Blob([JSON.stringify(request)], { type: 'application/json' }))
|
|
|
|
|
|
|
|
|
|
|
|
return formData
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-06-12 08:44:07 +08:00
|
|
|
|
export const listDeviceTypesApi = () => {
|
2026-06-15 08:40:44 +08:00
|
|
|
|
return http.get<MmsMapping.DeviceType[]>('/api/device-types')
|
2026-06-12 08:44:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const createDeviceTypeApi = (params: MmsMapping.CreateDeviceTypeRequest) => {
|
2026-06-15 08:40:44 +08:00
|
|
|
|
return http.post<boolean>('/api/device-types/add', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const updateDeviceTypeApi = (params: MmsMapping.UpdateDeviceTypeRequest) => {
|
|
|
|
|
|
return http.post<boolean>('/api/device-types/update', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const deleteDeviceTypesApi = (ids: string[]) => {
|
|
|
|
|
|
return http.post<boolean>('/api/device-types/delete', ids)
|
2026-06-12 08:44:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const saveIcdCheckResultApi = (id: string, params: MmsMapping.SaveIcdCheckResultRequest) => {
|
2026-06-15 08:40:44 +08:00
|
|
|
|
return http.post<boolean>(`/api/device-types/${id}/icd-check-result`, params)
|
2026-06-12 08:44:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const pqdifCheckApi = (id: string) => {
|
2026-06-15 08:40:44 +08:00
|
|
|
|
return http.post<MmsMapping.PqdifCheckPlaceholder>(`/api/device-types/${id}/pqdif-check`)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const listIcdPathsApi = (params: MmsMapping.IcdPathListRequest) => {
|
|
|
|
|
|
return http.post<MmsMapping.IcdPathRecord[]>('/api/mms-mapping/icd-paths/list', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const createIcdPathApi = (params: MmsMapping.CreateIcdPathRequest) => {
|
|
|
|
|
|
return http.post<boolean>('/api/mms-mapping/icd-paths/add', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const createIcdPathWithFileApi = (params: MmsMapping.CreateIcdPathWithFileRequest) => {
|
|
|
|
|
|
return http.post<boolean>('/api/mms-mapping/icd-paths/add', buildIcdPathFormData(params.icdFile, params.request), {
|
|
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const updateIcdPathApi = (params: MmsMapping.UpdateIcdPathRequest) => {
|
|
|
|
|
|
return http.post<boolean>('/api/mms-mapping/icd-paths/update', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const updateIcdPathWithFileApi = (params: MmsMapping.UpdateIcdPathWithFileRequest) => {
|
|
|
|
|
|
return http.post<boolean>('/api/mms-mapping/icd-paths/update', buildIcdPathFormData(params.icdFile, params.request), {
|
|
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const deleteIcdPathsApi = (ids: string[]) => {
|
|
|
|
|
|
return http.post<boolean>('/api/mms-mapping/icd-paths/delete', ids)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const saveIcdPathCheckResultApi = (id: string, params: MmsMapping.SaveIcdPathCheckResultRequest) => {
|
|
|
|
|
|
return http.post<boolean>(`/api/mms-mapping/icd-paths/${id}/icd-check-result`, params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const checkIcdJsonConsistencyApi = (params: MmsMapping.IcdJsonConsistencyCheckRequest) => {
|
|
|
|
|
|
return http.post<MmsMapping.IcdJsonConsistencyCheckResponse>('/api/mms-mapping/check-icd-json-consistency', params)
|
2026-06-12 08:44:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-23 11:09:06 +08:00
|
|
|
|
export const getIcdApi = (params: MmsMapping.GetIcdParams) => {
|
|
|
|
|
|
const formData = buildIcdFormData(params.icdFile)
|
|
|
|
|
|
|
|
|
|
|
|
// 关键业务节点:解析 ICD 按钮改走独立 get-icd 接口,只上传当前选择的 ICD 文件。
|
|
|
|
|
|
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-icd', formData, {
|
|
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const getIcdMmsJsonApi = (params: MmsMapping.GetIcdMmsJsonParams) => {
|
|
|
|
|
|
const formData = buildIcdFormData(params.icdFile)
|
|
|
|
|
|
|
|
|
|
|
|
// 接口文档要求 request 以 application/json 分段提交,避免后端按普通字符串丢失 JSON 结构。
|
|
|
|
|
|
formData.append('request', new Blob([JSON.stringify(params.request)], { type: 'application/json' }))
|
|
|
|
|
|
|
|
|
|
|
|
// 关键业务节点:生成映射仍走 get-icd-mms-json,提交时保持 icdFile + request 的 multipart 结构。
|
|
|
|
|
|
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-icd-mms-json', formData, {
|
|
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2026-05-06 08:47:39 +08:00
|
|
|
|
|
2026-05-08 09:54:52 +08:00
|
|
|
|
export const getXmlFromJsonApi = (params: MmsMapping.GetXmlFromJsonParams) => {
|
|
|
|
|
|
const formData = new FormData()
|
|
|
|
|
|
|
|
|
|
|
|
// 关键业务节点:XML 映射由后端根据已生成的 mappingJson 转换,前端保持 request JSON Part 的提交格式。
|
|
|
|
|
|
formData.append('request', new Blob([JSON.stringify(params.request)], { type: 'application/json' }))
|
|
|
|
|
|
|
|
|
|
|
|
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-xml-from-json', formData, {
|
|
|
|
|
|
headers: { 'Content-Type': 'multipart/form-data' }
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-06 08:47:39 +08:00
|
|
|
|
export const buildIndexConfirmDataApi = (params: MmsMapping.IndexCandidateGroup[]) => {
|
|
|
|
|
|
// 关键业务节点:ICD 候选数据需要先转换成前端确认弹窗模型,后续人工确认才能继续生成正式索引配置。
|
|
|
|
|
|
return http.post<MmsMapping.IndexConfirmGroup[]>('/api/mms-mapping/build-index-confirm-data', params)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const buildIndexSelectionApi = (params: MmsMapping.BuildIndexSelectionRequest) => {
|
|
|
|
|
|
// 关键业务节点:人工确认完成后,必须把 confirmData 和 confirmedData 一并提交给后端生成正式 request.indexSelection。
|
|
|
|
|
|
return http.post<MmsMapping.IndexSelectionGroup[]>('/api/mms-mapping/build-index-selection', params)
|
|
|
|
|
|
}
|