Files
zkxw/web-admin/src/api/production.ts
T
2026-07-25 09:37:24 +08:00

607 lines
19 KiB
TypeScript

import request from '@/utils/http'
// ---------------------------------------------------------------------------
// 耗材管理
// ---------------------------------------------------------------------------
export function fetchConsumableList(params?: {
page?: number
pageSize?: number
keyword?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/consumables', params })
}
export function fetchAllConsumables() {
return request.get<any[]>({ url: '/web/admin/consumables/all' })
}
export function fetchCreateConsumable(data: Record<string, any>) {
return request.post({ url: '/web/admin/consumables', params: data })
}
export function fetchUpdateConsumable(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/consumables/${id}`, params: data })
}
export function fetchDeleteConsumable(id: string) {
return request.del({ url: `/web/admin/consumables/${id}` })
}
// ---------------------------------------------------------------------------
// 试剂管理
// ---------------------------------------------------------------------------
export function fetchReagentList(params?: { page?: number; pageSize?: number; keyword?: string }) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/reagents', params })
}
export function fetchAllReagents() {
return request.get<any[]>({ url: '/web/admin/reagents/all' })
}
export function fetchCreateReagent(data: Record<string, any>) {
return request.post({ url: '/web/admin/reagents', params: data })
}
export function fetchUpdateReagent(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/reagents/${id}`, params: data })
}
export function fetchDeleteReagent(id: string) {
return request.del({ url: `/web/admin/reagents/${id}` })
}
// ---------------------------------------------------------------------------
// 设备管理
// ---------------------------------------------------------------------------
export function fetchEquipmentList(params?: {
page?: number
pageSize?: number
keyword?: string
status?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/equipments', params })
}
export function fetchAllEquipments() {
return request.get<any[]>({ url: '/web/admin/equipments/all' })
}
export function fetchCreateEquipment(data: Record<string, any>) {
return request.post({ url: '/web/admin/equipments', params: data })
}
export function fetchUpdateEquipment(id: string, data: Record<string, any>) {
const cleanedData: Record<string, any> = {}
for (const [key, value] of Object.entries(data)) {
cleanedData[key] = value === undefined ? null : value
}
return request.put({ url: `/web/admin/equipments/${id}`, params: cleanedData })
}
export function fetchDeleteEquipment(id: string) {
return request.del({ url: `/web/admin/equipments/${id}` })
}
// ---------------------------------------------------------------------------
// 洁净服管理
// ---------------------------------------------------------------------------
export function fetchCleanroomGarmentList(params?: {
page?: number
pageSize?: number
keyword?: string
garmentStatus?: string
needAttention?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/cleanroom-garments', params })
}
export function fetchCleanroomGarmentDetail(id: string) {
return request.get<any>({ url: `/web/admin/cleanroom-garments/${id}` })
}
export function fetchCreateCleanroomGarment(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garments', params: data })
}
export function fetchUpdateCleanroomGarment(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/cleanroom-garments/${id}`, params: data })
}
export function fetchDeleteCleanroomGarment(id: string) {
return request.del({ url: `/web/admin/cleanroom-garments/${id}` })
}
export function fetchBatchDeleteCleanroomGarments(ids: string[]) {
return request.post({ url: '/web/admin/cleanroom-garments/batch-delete', params: { ids } })
}
export function fetchDiscardCleanroomGarment(id: string, data: Record<string, any>) {
return request.post({ url: `/web/admin/cleanroom-garments/${id}/discard`, params: data })
}
export function fetchBatchDiscardCleanroomGarments(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garments/batch-discard', params: data })
}
export function fetchCleanroomGarmentWashLogList(params: {
page?: number
pageSize?: number
garmentId: string
}) {
return request.get<{ list: any[]; total: number; page: number; pageSize: number; totalPages: number }>({
url: '/web/admin/cleanroom-garment-wash-logs',
params
})
}
export function fetchCreateCleanroomGarmentWashLog(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garment-wash-logs', params: data })
}
export function fetchUpdateCleanroomGarmentWashLog(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/cleanroom-garment-wash-logs/${id}`, params: data })
}
export function fetchDeleteCleanroomGarmentWashLog(id: string) {
return request.del({ url: `/web/admin/cleanroom-garment-wash-logs/${id}` })
}
export function fetchBatchCreateCleanroomGarmentWashLogs(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garment-wash-logs/batch', params: data })
}
export function fetchCleanroomGarmentSterilizeLogList(params: {
page?: number
pageSize?: number
garmentId: string
}) {
return request.get<{ list: any[]; total: number; page: number; pageSize: number; totalPages: number }>({
url: '/web/admin/cleanroom-garment-sterilize-logs',
params
})
}
export function fetchCreateCleanroomGarmentSterilizeLog(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garment-sterilize-logs', params: data })
}
export function fetchUpdateCleanroomGarmentSterilizeLog(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/cleanroom-garment-sterilize-logs/${id}`, params: data })
}
export function fetchDeleteCleanroomGarmentSterilizeLog(id: string) {
return request.del({ url: `/web/admin/cleanroom-garment-sterilize-logs/${id}` })
}
export function fetchBatchCreateCleanroomGarmentSterilizeLogs(data: Record<string, any>) {
return request.post({ url: '/web/admin/cleanroom-garment-sterilize-logs/batch', params: data })
}
// ---------------------------------------------------------------------------
// SOP文档
// ---------------------------------------------------------------------------
export function fetchSopList(params?: { page?: number; pageSize?: number; keyword?: string }) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/sop-documents', params })
}
export function fetchAllSopDocuments() {
return request.get<any[]>({ url: '/web/admin/sop-documents/all' })
}
export function fetchCreateSop(data: Record<string, any>) {
return request.post({ url: '/web/admin/sop-documents', params: data })
}
export function fetchUpdateSop(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/sop-documents/${id}`, params: data })
}
export function fetchDeleteSop(id: string) {
return request.del({ url: `/web/admin/sop-documents/${id}` })
}
// ---------------------------------------------------------------------------
// 工艺工序分类
// ---------------------------------------------------------------------------
export function fetchProcessCategoryList(params?: {
page?: number
pageSize?: number
keyword?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/process-categories', params })
}
export function fetchAllProcessCategories() {
return request.get<any[]>({ url: '/web/admin/process-categories/all' })
}
export function fetchCreateProcessCategory(data: Record<string, any>) {
return request.post({ url: '/web/admin/process-categories', params: data })
}
export function fetchUpdateProcessCategory(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/process-categories/${id}`, params: data })
}
export function fetchDeleteProcessCategory(id: string) {
return request.del({ url: `/web/admin/process-categories/${id}` })
}
// ---------------------------------------------------------------------------
// 工艺产出物类型
// ---------------------------------------------------------------------------
export function fetchOutputTypeList(params?: {
page?: number
pageSize?: number
keyword?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/output-types', params })
}
export function fetchAllOutputTypes() {
return request.get<any[]>({ url: '/web/admin/output-types/all' })
}
export function fetchCreateOutputType(data: Record<string, any>) {
return request.post({ url: '/web/admin/output-types', params: data })
}
export function fetchUpdateOutputType(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/output-types/${id}`, params: data })
}
export function fetchDeleteOutputType(id: string) {
return request.del({ url: `/web/admin/output-types/${id}` })
}
// ---------------------------------------------------------------------------
// 生产产品类型(生产专用)
// ---------------------------------------------------------------------------
export function fetchProductionProductTypeList(params?: {
page?: number
pageSize?: number
keyword?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/production-product-types', params })
}
export function fetchCreateProductionProductType(data: Record<string, any>) {
return request.post({ url: '/web/admin/production-product-types', params: data })
}
export function fetchUpdateProductionProductType(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/production-product-types/${id}`, params: data })
}
export function fetchDeleteProductionProductType(id: string) {
return request.del({ url: `/web/admin/production-product-types/${id}` })
}
// ---------------------------------------------------------------------------
// 耗材包管理
// ---------------------------------------------------------------------------
export function fetchConsumablePackList(params?: {
page?: number
pageSize?: number
keyword?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/consumable-packs', params })
}
export function fetchAllConsumablePacks() {
return request.get<any[]>({ url: '/web/admin/consumable-packs/all' })
}
export function fetchCreateConsumablePack(data: Record<string, any>) {
return request.post({ url: '/web/admin/consumable-packs', params: data })
}
export function fetchUpdateConsumablePack(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/consumable-packs/${id}`, params: data })
}
export function fetchDeleteConsumablePack(id: string) {
return request.del({ url: `/web/admin/consumable-packs/${id}` })
}
export function fetchConsumablePackDetail(id: string) {
return request.get<any>({ url: `/web/admin/consumable-packs/${id}` })
}
// ---------------------------------------------------------------------------
// 工艺库管理
// ---------------------------------------------------------------------------
export function fetchProcessList(params?: { page?: number; pageSize?: number; keyword?: string }) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/processes', params })
}
export function fetchAllProcesses() {
return request.get<any[]>({ url: '/web/admin/processes/all' })
}
export function fetchCreateProcess(data: Record<string, any>) {
return request.post({ url: '/web/admin/processes', params: data })
}
export function fetchUpdateProcess(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/processes/${id}`, params: data })
}
export function fetchDeleteProcess(id: string) {
return request.del({ url: `/web/admin/processes/${id}` })
}
export function fetchProcessDetail(id: string) {
return request.get<any>({ url: `/web/admin/processes/${id}` })
}
// ---------------------------------------------------------------------------
// 工艺路线管理
// ---------------------------------------------------------------------------
export function fetchProcessRouteList(params?: {
page?: number
pageSize?: number
routeName?: string
routeCode?: string
productTypeId?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
totalPages: number
}>({ url: '/web/admin/process-routes', params })
}
export function fetchProcessRouteDetail(id: string) {
return request.get<any>({ url: `/web/admin/process-routes/${id}` })
}
export function fetchCreateProcessRoute(data: Record<string, any>) {
return request.post({ url: '/web/admin/process-routes', params: data })
}
export function fetchUpdateProcessRoute(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/process-routes/${id}`, params: data })
}
export function fetchSetCurrentProcessRoute(routeId: string) {
return request.put({ url: '/web/admin/process-routes/set-current', params: { routeId } })
}
export function fetchDeleteProcessRoute(id: string) {
return request.del({ url: `/web/admin/process-routes/${id}` })
}
// 步骤操作
export function fetchAddRouteStep(data: {
routeId: string
processId: string
stepOrder?: number
}) {
return request.post({ url: '/web/admin/process-routes/step/add', params: data })
}
export function fetchCopyRouteStep(data: { stepId: string }) {
return request.post({ url: '/web/admin/process-routes/step/copy', params: data })
}
export function fetchUpdateRouteStep(data: Record<string, any>) {
return request.put({ url: '/web/admin/process-routes/step/update', params: data })
}
export function fetchReorderRouteSteps(data: { routeId: string; stepIds: string[] }) {
return request.put({ url: '/web/admin/process-routes/step/reorder', params: data })
}
export function fetchDeleteRouteStep(stepId: string) {
return request.del({ url: `/web/admin/process-routes/step/${stepId}` })
}
// 步骤子表
export function fetchUpdateStepReagents(data: { stepId: string; items: any[] }) {
return request.put({ url: '/web/admin/process-routes/step/reagent/update', params: data })
}
export function fetchUpdateStepConsumables(data: { stepId: string; items: any[] }) {
return request.put({ url: '/web/admin/process-routes/step/consumable/update', params: data })
}
export function fetchUpdateStepOutputs(data: { stepId: string; items: any[] }) {
return request.put({ url: '/web/admin/process-routes/step/output/update', params: data })
}
export function fetchUpdateStepDataCollections(data: { stepId: string; items: any[] }) {
return request.put({ url: '/web/admin/process-routes/step/data-collection/update', params: data })
}
// ---------------------------------------------------------------------------
// 试剂库存操作
// ---------------------------------------------------------------------------
export function fetchReagentStockIn(id: string, data: { qty: number; remark?: string }) {
return request.post({ url: `/web/admin/reagents/${id}/stock-in`, data })
}
export function fetchReagentStockOut(
id: string,
data: { qty: number; receiver: string; purpose?: string; remark?: string }
) {
return request.post({ url: `/web/admin/reagents/${id}/stock-out`, data })
}
export function fetchReagentBatchStockIn(data: {
items: Array<{ materialId: string; qty: number; remark?: string }>
remark?: string
}) {
return request.post<{ count: number }>({ url: '/web/admin/reagents/batch-stock-in', data })
}
export function fetchReagentBatchStockOut(data: {
items: Array<{ materialId: string; qty: number }>
receiver: string
purpose?: string
remark?: string
}) {
return request.post<{ count: number }>({ url: '/web/admin/reagents/batch-stock-out', data })
}
export function fetchReagentStockLogs(
id: string,
params: { page: number; pageSize: number; changeType?: string }
) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
}>({ url: `/web/admin/reagents/${id}/stock-logs`, params })
}
export function fetchAllReagentStockLogs(params: {
page: number
pageSize: number
keyword?: string
changeType?: string
startTime?: string
endTime?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
}>({ url: '/web/admin/reagents/stock-logs', params })
}
// ---------------------------------------------------------------------------
// 耗材库存操作
// ---------------------------------------------------------------------------
export function fetchConsumableStockIn(id: string, data: { qty: number; remark?: string }) {
return request.post({ url: `/web/admin/consumables/${id}/stock-in`, data })
}
export function fetchConsumableStockOut(
id: string,
data: { qty: number; receiver?: string; purpose?: string; remark?: string }
) {
return request.post({ url: `/web/admin/consumables/${id}/stock-out`, data })
}
export function fetchConsumableBatchStockIn(data: {
items: { materialId: string; qty: number; remark?: string }[]
remark?: string
}) {
return request.post<{ count: number }>({ url: '/web/admin/consumables/batch-stock-in', data })
}
export function fetchConsumableBatchStockOut(data: {
items: { materialId: string; qty: number }[]
receiver?: string
purpose?: string
remark?: string
}) {
return request.post<{ count: number }>({ url: '/web/admin/consumables/batch-stock-out', data })
}
export function fetchConsumableStockLogs(
id: string,
params: { page: number; pageSize: number; changeType?: string }
) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
}>({ url: `/web/admin/consumables/${id}/stock-logs`, params })
}
export function fetchAllConsumableStockLogs(params: {
page: number
pageSize: number
keyword?: string
changeType?: string
startTime?: string
endTime?: string
}) {
return request.get<{
list: any[]
total: number
page: number
pageSize: number
}>({ url: '/web/admin/consumables/stock-logs', params })
}