import { requestClient } from '#/api/request';
|
|
export interface SeedIndicatorRange {
|
indicatorCode: string;
|
minValue: number;
|
maxValue: number;
|
updateTime?: string;
|
}
|
|
export function getSeedIndicatorRanges() {
|
return requestClient.get<SeedIndicatorRange[]>('/mes/qc/seed-quality/ranges');
|
}
|
|
export function saveSeedIndicatorRanges(ranges: SeedIndicatorRange[]) {
|
return requestClient.put('/mes/qc/seed-quality/ranges', { ranges });
|
}
|
|
export interface SeedQualityPageParams {
|
pageNo?: number;
|
pageSize?: number;
|
code?: string;
|
batchCode?: string;
|
result?: number;
|
workflowStatus?: number;
|
}
|
|
export interface SeedQualityRecord {
|
id: number;
|
code: string;
|
palletCode?: string;
|
batchCode?: string;
|
result: number;
|
workflowStatus: number;
|
retestResult?: number;
|
reason?: string;
|
inspectorId?: number;
|
inspectedAt?: string;
|
createTime?: string;
|
}
|
export interface SeedQualityIndicator {
|
indicatorCode: string;
|
value?: number;
|
minValue: number;
|
maxValue: number;
|
}
|
export function getSeedQualityIndicators(id: number) {
|
return requestClient.get<SeedQualityIndicator[]>('/mes/qc/seed-quality/indicators', { params: { id } });
|
}
|
export interface SeedQualityAction {
|
id: number;
|
action: string;
|
result?: number;
|
opinion?: string;
|
indicatorsJson?: string;
|
operatorId?: number;
|
operatorName?: string;
|
createTime?: string;
|
}
|
export function getSeedQualityActions(id: number) {
|
return requestClient.get<SeedQualityAction[]>('/mes/qc/seed-quality/actions', { params: { id } });
|
}
|
export function retestSeedQuality(id: number, data: Omit<MesQcSeedQualityApi.SubmitParams, 'qualifiedWarehouseId'>) {
|
return requestClient.post('/mes/qc/seed-quality/retest', data, { params: { id } });
|
}
|
|
export function retestSeedQualityBatch(data: {
|
ids: number[];
|
reason?: string;
|
indicators: MesQcSeedQualityApi.Indicator[];
|
}) {
|
return requestClient.post('/mes/qc/seed-quality/retest-batch', data);
|
}
|
export interface SeedRetestScope {
|
code: string;
|
scanType: 'PALLET' | 'BATCH';
|
batchCode?: string;
|
totalCount: number;
|
retestIds: number[];
|
initialRecheckIds: number[];
|
pendingProcessCount: number;
|
pendingCompanyCount: number;
|
pendingProcessIds?: number[];
|
pendingInitialFailIds?: number[];
|
pendingCompanyIds?: number[];
|
pendingCompanyFailIds?: number[];
|
}
|
export function resolveSeedRetestScope(code: string, scanType: 'PALLET' | 'BATCH') {
|
return requestClient.get<SeedRetestScope>('/mes/qc/seed-quality/retest-scope/resolve', { params: { code, scanType }, suppressErrorMessage: true });
|
}
|
export function submitSeedRetestScope(data: {
|
code: string; scanType: 'PALLET' | 'BATCH'; workflowStatus: 10 | 50;
|
qualityIds: number[]; indicators: MesQcSeedQualityApi.Indicator[]; reason?: string;
|
}) {
|
return requestClient.post<{ processedCount: number }>('/mes/qc/seed-quality/retest-scope', data, { suppressErrorMessage: true });
|
}
|
export function approveSeedQuality(stage: 'process' | 'company', data: { id: number; approved: boolean; opinion: string }) {
|
return requestClient.post(`/mes/qc/seed-quality/${stage}-approve`, data, { suppressErrorMessage: true });
|
}
|
export function approveSeedQualityBatch(stage: 'process' | 'company', data: { ids: number[]; approved: boolean; opinion: string }) {
|
return requestClient.post(`/mes/qc/seed-quality/${stage}-approve-batch`, data, { suppressErrorMessage: true });
|
}
|
|
export namespace MesQcSeedQualityApi {
|
export interface Indicator {
|
code: string;
|
value: number;
|
minValue: number;
|
maxValue: number;
|
}
|
|
export interface SubmitParams {
|
code: string;
|
batchCode?: string;
|
indicators: Indicator[];
|
reason?: string;
|
qualifiedWarehouseId: number; // 目标合格库(质检合格后入该仓库,仓库类型为合格库20)
|
}
|
}
|
|
export function getSeedQualityPage(params: SeedQualityPageParams) {
|
return requestClient.get<{ list: SeedQualityRecord[]; total: number }>('/mes/qc/seed-quality/page', { params });
|
}
|
|
export function submitSeedQuality(data: MesQcSeedQualityApi.SubmitParams) {
|
return requestClient.post<number>('/mes/qc/seed-quality/submit', data);
|
}
|
|
export interface SeedQualityScan {
|
code: string; businessCode?: string; batchCode?: string;
|
inbound: boolean; canceled: boolean; qualityId?: number; result?: number;
|
scanType?: 'BAG' | 'PALLET' | 'BATCH'; totalCount?: number;
|
pendingBagIds?: number[]; completedBagIds?: number[];
|
}
|
export function resolveSeedQuality(code: string, scanType: 'BAG' | 'PALLET' | 'BATCH' = 'BAG') {
|
return requestClient.get<SeedQualityScan>('/mes/qc/seed-quality/resolve', { params: { code, scanType }, suppressErrorMessage: true });
|
}
|
export function submitSeedQualityGroup(data: MesQcSeedQualityApi.SubmitParams & { scanType: 'BAG' | 'PALLET' | 'BATCH'; bagIds: number[] }) {
|
return requestClient.post<{ processedCount: number }>('/mes/qc/seed-quality/submit-group', data, { suppressErrorMessage: true });
|
}
|