1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export interface SparePart {
  id: number; code: string; name: string; specification?: string; unit: string;
  location?: string; stockQuantity: number; safetyQuantity: number; status: number; remark?: string;
}
export interface SpareMovement {
  id: number; sparePartId: number; sparePartCode: string; sparePartName: string;
  specification?: string; unit: string; type: number; quantity: number;
  beforeQuantity: number; afterQuantity: number; repairId?: number; repairCode?: string;
  machineryName?: string; receiverName?: string; receiverUserId?: number; operatorUserId: number;
  originalId?: number; returnedQuantity: number; returnableQuantity: number; remark: string; createTime: string;
}
export interface SpareAction {
  requestKey: string; sparePartId?: number; repairId?: number; originalId?: number;
  receiverUserId?: number; quantity: number; remark: string;
}
export type SpareSave = Omit<SparePart, 'id' | 'stockQuantity'> & { id?: number; initialQuantity: number };
export const getSparePage = (params: PageParam & Record<string, unknown>) =>
  requestClient.get<PageResult<SparePart>>('/mes/dv/spare/page', { params });
export const getSpare = (id: number) => requestClient.get<SparePart>('/mes/dv/spare/get', { params: { id } });
export const createSpare = (data: SpareSave) => requestClient.post<number>('/mes/dv/spare/create', data);
export const updateSpare = (data: SpareSave) => requestClient.put('/mes/dv/spare/update', data);
export const deleteSpare = (id: number) => requestClient.delete('/mes/dv/spare/delete', { params: { id } });
export const getSpareMovements = (params: PageParam & Record<string, unknown>) =>
  requestClient.get<PageResult<SpareMovement>>('/mes/dv/spare/movement-page', { params });
export const spareAction = (type: 'issue' | 'receive' | 'return', data: SpareAction) =>
  requestClient.post<number>(`/mes/dv/spare/${type}`, data);
export const movementLabels: Record<number, string> = { 1: '初始库存', 2: '入库', 3: '维修领用', 4: '退回' };