98 lines
2.6 KiB
TypeScript
98 lines
2.6 KiB
TypeScript
import { Request, Response } from "express";
|
|
import { WarehouseService } from "../services/WarehouseService";
|
|
|
|
export class WarehouseController {
|
|
private warehouseService: WarehouseService;
|
|
|
|
constructor() {
|
|
this.warehouseService = new WarehouseService();
|
|
}
|
|
|
|
// 창고 및 자재 데이터 조회
|
|
getWarehouseData = async (req: Request, res: Response) => {
|
|
try {
|
|
const data = await this.warehouseService.getWarehouseData();
|
|
|
|
return res.json({
|
|
success: true,
|
|
warehouses: data.warehouses,
|
|
materials: data.materials,
|
|
});
|
|
} catch (error: any) {
|
|
console.error("창고 데이터 조회 오류:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "창고 데이터를 불러오는데 실패했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
};
|
|
|
|
// 특정 창고 정보 조회
|
|
getWarehouseById = async (req: Request, res: Response) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const warehouse = await this.warehouseService.getWarehouseById(id);
|
|
|
|
if (!warehouse) {
|
|
return res.status(404).json({
|
|
success: false,
|
|
message: "창고를 찾을 수 없습니다.",
|
|
});
|
|
}
|
|
|
|
return res.json({
|
|
success: true,
|
|
data: warehouse,
|
|
});
|
|
} catch (error: any) {
|
|
console.error("창고 조회 오류:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "창고 정보를 불러오는데 실패했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
};
|
|
|
|
// 창고별 자재 목록 조회
|
|
getMaterialsByWarehouse = async (req: Request, res: Response) => {
|
|
try {
|
|
const { warehouseId } = req.params;
|
|
const materials =
|
|
await this.warehouseService.getMaterialsByWarehouse(warehouseId);
|
|
|
|
return res.json({
|
|
success: true,
|
|
data: materials,
|
|
});
|
|
} catch (error: any) {
|
|
console.error("자재 목록 조회 오류:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "자재 목록을 불러오는데 실패했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
};
|
|
|
|
// 창고 통계 조회
|
|
getWarehouseStats = async (req: Request, res: Response) => {
|
|
try {
|
|
const stats = await this.warehouseService.getWarehouseStats();
|
|
|
|
return res.json({
|
|
success: true,
|
|
data: stats,
|
|
});
|
|
} catch (error: any) {
|
|
console.error("창고 통계 조회 오류:", error);
|
|
return res.status(500).json({
|
|
success: false,
|
|
message: "창고 통계를 불러오는데 실패했습니다.",
|
|
error: error.message,
|
|
});
|
|
}
|
|
};
|
|
}
|