c3e973bb1a
- Added new API endpoints for managing smart factory schedules, including retrieval, creation, updating, and deletion of schedules. - Integrated schedule management into the smart factory log controller, enhancing the overall functionality. - Implemented a scheduler initialization process to automate daily plan generation and scheduled sends. - Developed a frontend page for monitoring equipment, production, and quality, with real-time data fetching and auto-refresh capabilities. These changes aim to provide comprehensive scheduling capabilities for smart factory operations, improving efficiency and operational visibility for users.
124 lines
5.3 KiB
TypeScript
124 lines
5.3 KiB
TypeScript
import { Router } from "express";
|
|
import {
|
|
getAdminMenus,
|
|
getUserMenus,
|
|
getPopMenus,
|
|
getMenuInfo,
|
|
saveMenu, // 메뉴 추가
|
|
updateMenu, // 메뉴 수정
|
|
deleteMenu, // 메뉴 삭제
|
|
deleteMenusBatch, // 메뉴 일괄 삭제
|
|
toggleMenuStatus, // 메뉴 상태 토글
|
|
copyMenu, // 메뉴 복사
|
|
getUserList,
|
|
getUserInfo, // 사용자 상세 조회
|
|
getUserHistory, // 사용자 변경이력 조회
|
|
changeUserStatus, // 사용자 상태 변경
|
|
resetUserPassword, // 사용자 비밀번호 초기화
|
|
updateProfile, // 프로필 수정
|
|
getDepartmentList, // 부서 목록 조회
|
|
checkDuplicateUserId, // 사용자 ID 중복 체크
|
|
saveUser, // 사용자 등록/수정
|
|
saveUserWithDept, // 사원 + 부서 통합 저장 (NEW!)
|
|
getUserWithDept, // 사원 + 부서 조회 (NEW!)
|
|
deleteUser, // 사용자 삭제 (soft delete)
|
|
getCompanyList,
|
|
getCompanyListFromDB, // 실제 DB에서 회사 목록 조회
|
|
getCompanyByCode, // 회사 단건 조회
|
|
createCompany, // 회사 등록
|
|
updateCompany, // 회사 수정
|
|
deleteCompany, // 회사 삭제
|
|
getUserLocale,
|
|
setUserLocale,
|
|
getTableSchema, // 테이블 스키마 조회
|
|
} from "../controllers/adminController";
|
|
import {
|
|
getSmartFactoryLogs,
|
|
getSmartFactoryLogStats,
|
|
getSchedules,
|
|
upsertSchedule,
|
|
deleteSchedule,
|
|
runScheduleNowHandler,
|
|
getTodayPlanHandler,
|
|
getHolidays,
|
|
addHoliday,
|
|
deleteHoliday,
|
|
getApiKeys,
|
|
saveApiKey,
|
|
deleteApiKey,
|
|
} from "../controllers/smartFactoryLogController";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
import { requireSuperAdmin } from "../middleware/permissionMiddleware";
|
|
|
|
const router = Router();
|
|
|
|
// 모든 admin 라우트에 인증 미들웨어 적용
|
|
router.use(authenticateToken);
|
|
|
|
// 메뉴 관련 API
|
|
router.get("/menus", getAdminMenus);
|
|
router.get("/user-menus", getUserMenus);
|
|
router.get("/pop-menus", getPopMenus);
|
|
router.get("/menus/:menuId", getMenuInfo);
|
|
router.post("/menus", saveMenu); // 메뉴 추가
|
|
router.post("/menus/:menuObjid/copy", copyMenu); // 메뉴 복사 (NEW!)
|
|
router.put("/menus/:menuId", updateMenu); // 메뉴 수정
|
|
router.put("/menus/:menuId/toggle", toggleMenuStatus); // 메뉴 상태 토글
|
|
router.delete("/menus/batch", deleteMenusBatch); // 메뉴 일괄 삭제 (순서 중요!)
|
|
router.delete("/menus/:menuId", deleteMenu); // 메뉴 삭제
|
|
|
|
// 사용자 관리 API
|
|
router.get("/users", getUserList);
|
|
router.get("/users/:userId", getUserInfo); // 사용자 상세 조회
|
|
router.get("/users/:userId/history", getUserHistory); // 사용자 변경이력 조회
|
|
router.get("/users/:userId/with-dept", getUserWithDept); // 사원 + 부서 조회 (NEW!)
|
|
router.patch("/users/:userId/status", changeUserStatus); // 사용자 상태 변경
|
|
router.post("/users", saveUser); // 사용자 등록/수정 (기존)
|
|
router.post("/users/with-dept", saveUserWithDept); // 사원 + 부서 통합 저장 (NEW!)
|
|
router.put("/users/:userId", saveUser); // 사용자 수정 (REST API)
|
|
router.put("/profile", updateProfile); // 프로필 수정
|
|
router.post("/users/check-duplicate", checkDuplicateUserId); // 사용자 ID 중복 체크
|
|
router.post("/users/reset-password", resetUserPassword); // 사용자 비밀번호 초기화
|
|
router.delete("/users/:userId", deleteUser); // 사용자 삭제 (soft delete)
|
|
|
|
// 부서 관리 API
|
|
router.get("/departments", getDepartmentList); // 부서 목록 조회
|
|
|
|
// 회사 관리 API (최고관리자 전용)
|
|
router.get("/companies", requireSuperAdmin, getCompanyList);
|
|
router.get("/companies/db", requireSuperAdmin, getCompanyListFromDB);
|
|
router.get("/companies/:companyCode", requireSuperAdmin, getCompanyByCode);
|
|
router.post("/companies", requireSuperAdmin, createCompany);
|
|
router.put("/companies/:companyCode", requireSuperAdmin, updateCompany);
|
|
router.delete("/companies/:companyCode", requireSuperAdmin, deleteCompany);
|
|
|
|
// 사용자 로케일 API
|
|
router.get("/user-locale", getUserLocale);
|
|
router.post("/user-locale", setUserLocale);
|
|
|
|
// 테이블 스키마 API (엑셀 업로드 컬럼 매핑용)
|
|
router.get("/tables/:tableName/schema", getTableSchema);
|
|
|
|
// 스마트공장 활용 로그 API (최고관리자 전용)
|
|
router.get("/smart-factory-log", requireSuperAdmin, getSmartFactoryLogs);
|
|
router.get("/smart-factory-log/stats", requireSuperAdmin, getSmartFactoryLogStats);
|
|
|
|
// 스마트공장 스케줄 관리 (최고관리자 전용)
|
|
router.get("/smart-factory-log/schedules", requireSuperAdmin, getSchedules);
|
|
router.get("/smart-factory-log/schedules/today-plan", requireSuperAdmin, getTodayPlanHandler);
|
|
router.post("/smart-factory-log/schedules", requireSuperAdmin, upsertSchedule);
|
|
router.delete("/smart-factory-log/schedules/:companyCode", requireSuperAdmin, deleteSchedule);
|
|
router.post("/smart-factory-log/schedules/:companyCode/run-now", requireSuperAdmin, runScheduleNowHandler);
|
|
|
|
// 스마트공장 공휴일 관리 (최고관리자 전용)
|
|
router.get("/smart-factory-log/holidays", requireSuperAdmin, getHolidays);
|
|
router.post("/smart-factory-log/holidays", requireSuperAdmin, addHoliday);
|
|
router.delete("/smart-factory-log/holidays/:id", requireSuperAdmin, deleteHoliday);
|
|
|
|
// 스마트공장 API 키 관리 (최고관리자 전용)
|
|
router.get("/smart-factory-log/api-keys", requireSuperAdmin, getApiKeys);
|
|
router.post("/smart-factory-log/api-keys", requireSuperAdmin, saveApiKey);
|
|
router.delete("/smart-factory-log/api-keys/:companyCode", requireSuperAdmin, deleteApiKey);
|
|
|
|
export default router;
|