spring
2026-07-03 2540d86f0dbd77f654f558c3bf9d5ddbe7422f16
src/api/mes/pd/archive/index.ts
@@ -2,61 +2,135 @@
import { requestClient } from '#/api/request';
import { isPdMockEnabled } from '../mock/enabled';
import { pdMockStore } from '../mock/store';
export namespace MesPdArchiveApi {
  /** 数字化设计归档台账 */
  /** 归档台账(分页聚合) */
  export interface Archive {
    id?: number;
    code?: string;
    /** 最新归档编号 */
    archiveCode?: string;
    /** 设计项目ID */
    projectId?: number;
    projectCode?: string;
    projectName?: string;
    /** 任务编码 */
    taskCode?: string;
    /** 任务名称 */
    taskName?: string;
    /** 产品编码 */
    productCode?: string;
    /** 产品名称 */
    productName?: string;
    /** 该项目下归档记录总数 */
    archiveCount?: number;
    /** 归档人ID */
    archiver?: number;
    /** 归档人名称 */
    archiverNickname?: string;
    /** 归档状态(字典 mes_pd_archive_status) */
    archiveStatus?: number;
    /** 归档时间 */
    archiveTime?: number;
    /** 备注 */
    remark?: string;
    /** 创建时间 */
    createTime?: number;
    /** 更新人ID */
    updater?: string;
    /** 更新人名称 */
    updaterNickname?: string;
    /** 更新时间 */
    updateTime?: number;
  }
  export interface PageParams extends PageParam {
    archiveCode?: string;
    projectId?: number;
    archiveStatus?: number;
    productCode?: string;
    productName?: string;
  }
  /** 详情 - 项目信息 */
  export interface ProjectInfo {
    id?: number;
    taskCode?: string;
    taskName?: string;
    productCode?: string;
    productName?: string;
    version?: string;
    archiveStatus?: number;
    archiveTime?: number;
    archiverId?: number;
    archiverName?: string;
    documentCount?: number;
    bomCount?: number;
    storagePath?: string;
    status?: number;
    chiefDesigner?: number;
    chiefDesignerNickname?: string;
    reviewer?: number;
    reviewerNickname?: string;
    planFinishTime?: number;
    remark?: string;
    createTime?: number;
  }
  export interface PageParams extends PageParam {
    code?: string;
    projectCode?: string;
    productCode?: string;
  /** 详情 - 归档记录 */
  export interface ArchiveInfo {
    id?: number;
    archiveCode?: string;
    archiver?: number;
    archiverNickname?: string;
    archiveStatus?: number;
    archiveTime?: number;
    remark?: string;
    createTime?: number;
  }
  /** 详情 - 设计资料 */
  export interface DocumentInfo {
    id?: number;
    documentType?: string;
    documentName?: string;
    documentVersion?: string;
    fileName?: string;
    fileUrl?: string;
    uploadUserId?: number;
    uploadUserNickname?: string;
    uploadTime?: number;
    remark?: string;
    createTime?: number;
  }
  /** 详情(按产品查询) */
  export interface DetailItem {
    project: ProjectInfo;
    archives: ArchiveInfo[];
    documents: DocumentInfo[];
  }
}
/** 归档台账分页(按项目/产品聚合) */
export function getPdArchivePage(params: MesPdArchiveApi.PageParams) {
  if (isPdMockEnabled()) {
    return pdMockStore.getArchivePage(params);
  }
  return requestClient.get<PageResult<MesPdArchiveApi.Archive>>(
    '/mes/pd/archive/page',
    { params },
  );
}
/** 归档台账详情(按产品编码查询) */
export function getPdArchiveDetailByProduct(productCode: string) {
  return requestClient.get<MesPdArchiveApi.DetailItem[]>(
    '/mes/pd/archive/detail-by-product',
    { params: { productCode } },
  );
}
export function getPdArchive(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.getArchive(id);
  }
  return requestClient.get<MesPdArchiveApi.Archive>(
    `/mes/pd/archive/get?id=${id}`,
  );
}
export function updatePdArchive(data: MesPdArchiveApi.Archive) {
  return requestClient.put('/mes/pd/archive/update', data);
}
export function deletePdArchive(id: number) {
  return requestClient.delete(`/mes/pd/archive/delete?id=${id}`);
}
export function exportPdArchive(params: MesPdArchiveApi.PageParams) {
  if (isPdMockEnabled()) {
    return Promise.resolve(new Blob());
  }
  return requestClient.download('/mes/pd/archive/export-excel', { params });
}