manufacturing layer

This commit is contained in:
2026-03-18 06:22:37 -05:00
parent 6eaf084fcd
commit c49ed4bf4a
14 changed files with 561 additions and 20 deletions

View File

@@ -85,8 +85,10 @@ export interface PlanningStationLoadDto {
operationCount: number;
workOrderCount: number;
totalPlannedMinutes: number;
totalActualMinutes: number;
capacityMinutes: number;
utilizationPercent: number;
actualUtilizationPercent: number;
overloaded: boolean;
blockedCount: number;
readyCount: number;

View File

@@ -1,6 +1,8 @@
export const workOrderStatuses = ["DRAFT", "RELEASED", "IN_PROGRESS", "ON_HOLD", "COMPLETE", "CANCELLED"] as const;
export const workOrderOperationStatuses = ["PENDING", "IN_PROGRESS", "PAUSED", "COMPLETE"] as const;
export type WorkOrderStatus = (typeof workOrderStatuses)[number];
export type WorkOrderOperationStatus = (typeof workOrderOperationStatuses)[number];
export interface ManufacturingStationDto {
id: string;
@@ -88,6 +90,20 @@ export interface WorkOrderOperationDto {
plannedStart: string;
plannedEnd: string;
notes: string;
status: WorkOrderOperationStatus;
actualStart: string | null;
actualEnd: string | null;
actualMinutes: number;
laborEntryCount: number;
laborEntries: WorkOrderOperationLaborEntryDto[];
}
export interface WorkOrderOperationLaborEntryDto {
id: string;
minutes: number;
notes: string;
createdAt: string;
createdByName: string;
}
export interface WorkOrderMaterialRequirementDto {
@@ -137,6 +153,7 @@ export interface WorkOrderDetailDto extends WorkOrderSummaryDto {
itemUnitOfMeasure: string;
projectCustomerName: string | null;
dueQuantity: number;
totalActualMinutes: number;
operations: WorkOrderOperationDto[];
materialRequirements: WorkOrderMaterialRequirementDto[];
materialIssues: WorkOrderMaterialIssueDto[];
@@ -173,3 +190,13 @@ export interface WorkOrderOperationScheduleInput {
plannedStart: string;
stationId?: string | null;
}
export interface WorkOrderOperationExecutionInput {
action: "START" | "PAUSE" | "RESUME" | "COMPLETE";
notes: string;
}
export interface WorkOrderOperationLaborEntryInput {
minutes: number;
notes: string;
}