feat: implement production order DAO
- Add ProductionOrderDAO class for production order data access - Implement queryProductionOrderNumbers() to query SQL Server for production order numbers - Implement readProductionIds() to read production IDs from text files - Includes proper error handling and logging Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
45
src/main/dao/production-order.dao.ts
Normal file
45
src/main/dao/production-order.dao.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { DatabaseService } from '../services/database.service';
|
||||
import { LoggerService } from '../services/logger.service';
|
||||
|
||||
export class ProductionOrderDAO {
|
||||
constructor(private dbService: DatabaseService) {}
|
||||
|
||||
async queryProductionOrderNumbers(productionIds: string[]): Promise<string[]> {
|
||||
try {
|
||||
LoggerService.info(`Querying production orders for ${productionIds.length} IDs`);
|
||||
|
||||
const idsString = productionIds.map((id) => `'${id}'`).join(',');
|
||||
const query = `
|
||||
SELECT DISTINCT production_order_no
|
||||
FROM production_orders
|
||||
WHERE production_id IN (${idsString})
|
||||
`;
|
||||
|
||||
const result = await this.dbService.executeSQLServerQuery(query);
|
||||
const orderNumbers = result.rows.map((row: any) => row.production_order_no);
|
||||
|
||||
LoggerService.info(`Found ${orderNumbers.length} production orders`);
|
||||
return orderNumbers;
|
||||
} catch (error) {
|
||||
LoggerService.error('Failed to query production orders', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async readProductionIds(filePath: string): Promise<string[]> {
|
||||
try {
|
||||
const fs = await import('fs/promises');
|
||||
const content = await fs.readFile(filePath, 'utf-8');
|
||||
const ids = content
|
||||
.split('\n')
|
||||
.map((line) => line.trim())
|
||||
.filter((line) => line.length > 0);
|
||||
|
||||
LoggerService.info(`Read ${ids.length} production IDs from file`);
|
||||
return ids;
|
||||
} catch (error) {
|
||||
LoggerService.error('Failed to read production IDs file', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user