Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit ea3d6323 authored by Kritkhanin Anantakul's avatar Kritkhanin Anantakul
Browse files

page and queue type service

parent 304b6d04
No related branches found
No related tags found
No related merge requests found
import type { Page } from "../types/Page";
export class PageService {
private pages: Page[] = [];
// ดึงข้อมูลหน้าทั้งหมด
getPages(): Page[] {
return this.pages;
}
// ค้นหาหน้าโดยใช้ pageID
getPageById(pageID: number): Page | undefined {
return this.pages.find(page => page.pageID === pageID);
}
// เพิ่มหน้าใหม่
addPage(page: Page): void {
this.pages.push(page);
}
// อัปเดตข้อมูลของหน้า
updatePage(updatedPage: Page): void {
const index = this.pages.findIndex(page => page.pageID === updatedPage.pageID);
if (index !== -1) {
this.pages[index] = updatedPage;
}
}
// ลบหน้าตาม pageID
removePage(pageID: number): void {
this.pages = this.pages.filter(page => page.pageID !== pageID);
}
}
import type { Queue } from '@/types/Queue'
export class QueueService {
private queue: Queue[] = [];
// ดึงรายการคิวทั้งหมด
getQueue(): Queue[] {
return this.queue;
}
// ค้นหารายการคิวโดยใช้ queueID
getQueueById(queueID: number): Queue | undefined {
return this.queue.find(item => item.queueID === queueID);
}
// เพิ่มรายการใหม่เข้า queue
addQueueItem(item: Queue): void {
this.queue.push(item);
}
// อัปเดตรายการ queue ที่มีอยู่
updateQueueItem(updatedItem: Queue): void {
const index = this.queue.findIndex(item => item.queueID === updatedItem.queueID);
if (index !== -1) {
this.queue[index] = updatedItem;
}
}
// ลบรายการ queue ตาม queueID
removeQueueItem(queueID: number): void {
this.queue = this.queue.filter(item => item.queueID !== queueID);
}
// เปลี่ยนสถานะของคิว
updateQueueStatus(queueID: number, status: 'pending' | 'in-progress' | 'completed' | 'canceled'): void {
const queueItem = this.getQueueById(queueID);
if (queueItem) {
queueItem.status = status;
}
}
// คำนวณเวลาการทำงานของ queue
calculateProductionTime(queueID: number): number | null {
const queueItem = this.getQueueById(queueID);
if (queueItem && queueItem.startTime && queueItem.finishTime) {
return (queueItem.finishTime.getTime() - queueItem.startTime.getTime()) / (1000 * 60); // แปลงเป็นนาที
}
return null;
}
}
export type Page = {
pageID: number; // PK - รหัสหน้าที่ใช้ใน Gantt Chart
priorityID: number; // FK - รหัสความสำคัญ (เชื่อมกับ Priority)
};
\ No newline at end of file
export type Queue = {
queueID: number; // PK - รหัส Queue
machineID: number; // FK - รหัสเครื่องจักรที่ใช้
orderID: number; // FK - รหัสออเดอร์ที่เกี่ยวข้อง
pageID: number; // FK - รหัสหน้าที่แสดงใน Gantt Chart
startTime: Date; // เวลาเริ่มต้น
finishTime: Date; // เวลาสิ้นสุด
status: 'pending' | 'in-progress' | 'completed' | 'canceled'; // สถานะของคิว
bottleSize: string; // ขนาดขวดที่ผลิต
producedQuantity: number; // จำนวนที่ผลิตได้
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment