53 lines
2.4 KiB
TypeScript
53 lines
2.4 KiB
TypeScript
/**
|
|
* InspectionService - Servicio de inspecciones de calidad
|
|
*
|
|
* Gestión de inspecciones con checklists y resultados.
|
|
*
|
|
* @module Quality
|
|
*/
|
|
import { Repository } from 'typeorm';
|
|
import { Inspection, InspectionStatus } from '../entities/inspection.entity';
|
|
import { InspectionResult } from '../entities/inspection-result.entity';
|
|
import { NonConformity } from '../entities/non-conformity.entity';
|
|
import { Checklist } from '../entities/checklist.entity';
|
|
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
|
|
export interface CreateInspectionDto {
|
|
checklistId: string;
|
|
loteId: string;
|
|
inspectionDate: Date;
|
|
inspectorId: string;
|
|
notes?: string;
|
|
}
|
|
export interface RecordResultDto {
|
|
checklistItemId: string;
|
|
result: 'passed' | 'failed' | 'not_applicable';
|
|
observations?: string;
|
|
photoUrl?: string;
|
|
}
|
|
export interface InspectionFilters {
|
|
checklistId?: string;
|
|
loteId?: string;
|
|
inspectorId?: string;
|
|
status?: InspectionStatus;
|
|
dateFrom?: Date;
|
|
dateTo?: Date;
|
|
}
|
|
export declare class InspectionService {
|
|
private readonly inspectionRepository;
|
|
private readonly resultRepository;
|
|
private readonly nonConformityRepository;
|
|
private readonly checklistRepository;
|
|
constructor(inspectionRepository: Repository<Inspection>, resultRepository: Repository<InspectionResult>, nonConformityRepository: Repository<NonConformity>, checklistRepository: Repository<Checklist>);
|
|
private generateInspectionNumber;
|
|
private generateNCNumber;
|
|
findWithFilters(ctx: ServiceContext, filters?: InspectionFilters, page?: number, limit?: number): Promise<PaginatedResult<Inspection>>;
|
|
findById(ctx: ServiceContext, id: string): Promise<Inspection | null>;
|
|
findWithDetails(ctx: ServiceContext, id: string): Promise<Inspection | null>;
|
|
create(ctx: ServiceContext, dto: CreateInspectionDto): Promise<Inspection>;
|
|
startInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
|
|
recordResult(ctx: ServiceContext, inspectionId: string, dto: RecordResultDto): Promise<InspectionResult>;
|
|
completeInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
|
|
approveInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
|
|
rejectInspection(ctx: ServiceContext, id: string, reason: string): Promise<Inspection | null>;
|
|
}
|
|
//# sourceMappingURL=inspection.service.d.ts.map
|