74 lines
5.2 KiB
JSON
74 lines
5.2 KiB
JSON
{
|
|
"solution": "GUARDiA MES",
|
|
"doc_type": "설계서",
|
|
"out": "C:/GUARDiA/workspace/guardia-mes/doc/mes_설계서_v1.pptx",
|
|
"subtitle": "AI 기반 제조실행시스템 (MES/WMS/QMS) · 지오정보기술 / 2026",
|
|
"design": {"primary":"1F3A5F","accent":"2E86C1","text":"222222","font_ko":"맑은 고딕"},
|
|
"sections": [
|
|
{"title":"1. 시스템 구성도", "bullets":[
|
|
"단일 JAR 서비스(포트 8013): Spring Boot 3.5 백엔드 + React 19 정적 번들",
|
|
"DB: PostgreSQL mes_db (제조 도메인 + tb_uiws_* 권한관리 테이블)",
|
|
"AI: Ollama 온프레미스(11434) — 불량분석·예측·예지보전·SPC 이상감지 (폴백 내장)",
|
|
"외부 연계: ERP·ITSM·OCR·BI (REST)",
|
|
"클라이언트: 관리자 웹 + 현장 작업자 모바일앱(통합 메신저 앱 app/mes)"
|
|
], "note":"구성도 도식 자리 — 클라이언트/서비스/DB/AI/연계 5블록"},
|
|
{"type":"table", "title":"2. 도메인 / ERD 요약 (MES 본연)", "headers":["영역","핵심 엔터티"], "rows":[
|
|
["MES","작업지시·생산실적·공정/라우팅·BOM·설비/OEE·LOT추적·생산계획"],
|
|
["WMS","입고·출고·재고·로케이션·재고실사·LOT/시리얼"],
|
|
["QMS","검사(수입/공정/출하)·검사기준·NCR·CAPA·SPC관리도·성적서"],
|
|
["기준정보","품목·거래처·회원·BOM 구성"]
|
|
]},
|
|
{"type":"table", "title":"3. 도메인 / ERD 요약 (UIMS 이식)", "headers":["영역","테이블/엔터티"], "rows":[
|
|
["업무협업","업무일지·일정·쪽지·통계 (uiws.* 도메인)"],
|
|
["권한관리(RBAC)","tb_uiws_sys_user(VARCHAR user_id)·role·dept_role·program·menu·role_menu"],
|
|
["기준(시스템)","tb_uiws_dept·company·code_grp·code"],
|
|
["주의","tb_uiws_sys_user 와 mes_user(BIGSERIAL)는 별개·미병합"]
|
|
]},
|
|
{"type":"table", "title":"4. API 설계 — 주요 엔드포인트", "headers":["영역","베이스 / 메서드"], "rows":[
|
|
["MES/WMS/QMS","도메인별 REST CRUD (작업지시·생산실적·검사·재고 등)"],
|
|
["로그인 보조","POST /api/mes/auth/signup · /find-id · /reset-password (permitAll)"],
|
|
["권한관리","/api/system/{users,roles,roles/{id}/menus,menus,depts,companies,codes}"],
|
|
["공통조회","GET /api/public/** (permitAll, 드롭다운 룩업)"],
|
|
["응답봉투","ApiResponse{success,message,data} · 목록 PageResponse{content,total,page,size}"]
|
|
]},
|
|
{"type":"table", "title":"5. 화면 설계 — 관리자 웹 메뉴", "headers":["섹션","화면"], "rows":[
|
|
["MES","작업지시·생산실적·공정진행·BOM/라우팅·설비OEE·LOT추적·생산계획"],
|
|
["WMS","입출고·재고·로케이션·피킹·재고실사"],
|
|
["QMS","수입/공정/출하검사·부적합NCR·CAPA·SPC관리도·성적서"],
|
|
["기준/공통","품목·거래처·사용자·설정·분석·AI도구"],
|
|
["업무(UIMS)","업무일지·일정·쪽지·통계"],
|
|
["시스템관리(권한)","권한관리·역할-메뉴권한·공통코드·메뉴관리·부서관리·거래처관리 (SUPERADMIN)"]
|
|
]},
|
|
{"type":"table", "title":"6. 화면 설계 — UIMS 시스템관리 라우트", "headers":["라우트","화면 / 권한"], "rows":[
|
|
["/uiws/system/roles","권한 관리(역할 CRUD·다중삭제) · SUPERADMIN"],
|
|
["/uiws/system/role-menus","역할-메뉴 권한(읽기/쓰기 매핑) · SUPERADMIN"],
|
|
["/uiws/system/codes","공통코드(그룹+값 일괄 CRUD) · SUPERADMIN"],
|
|
["/uiws/system/menus","메뉴 관리(2-depth 트리) · SUPERADMIN"],
|
|
["/uiws/system/depts","부서 관리(2-depth 트리) · SUPERADMIN"],
|
|
["/uiws/system/companies","거래처 관리(CRUD·다중삭제) · SUPERADMIN"]
|
|
]},
|
|
{"title":"7. DB 스키마 설계", "bullets":[
|
|
"DB: mes_db — 제조 도메인 테이블 + db/92_uiws_system.sql(권한관리 10테이블)",
|
|
"권한관리: dept·company·code_grp·code·sys_user·role·dept_role·program·menu·role_menu",
|
|
"멱등 적용: CREATE IF NOT EXISTS / ON CONFLICT DO NOTHING + 최소 시드(ROLE/COMPANY/DEPT)",
|
|
"application.yml schema-locations에 92_uiws_system.sql 병기 (mode=always·continue-on-error)",
|
|
"MesUser에 approved 필드 추가(기존 계정 기본 true → 로그인 회귀 0)"
|
|
]},
|
|
{"title":"8. 보안 설계", "bullets":[
|
|
"인증: JWT + 2차 인증(2FA, 이메일 인증코드 verify-token)",
|
|
"RBAC: /api/system/** → hasRole(SUPERADMIN), /api/public/** permitAll, /api/mes/auth/** permitAll",
|
|
"회원가입 승인 게이트: approved=false 차단, role=VIEWER 기본",
|
|
"계정 열거 방지: reset-password 미존재도 success=true, 임시비번 응답/로그 미노출(메일만)",
|
|
"아이디찾기 마스킹(앞 2자), 임시비번 BCrypt 저장",
|
|
"보안 불변: 자격증명·비밀번호·SSH·내부IP·스택트레이스 미노출 (외부 API 0)"
|
|
]},
|
|
{"type":"table", "title":"9. 연계 설계", "headers":["연계 대상","내용"], "rows":[
|
|
["ERP","재고/정산 연계"],
|
|
["ITSM","CS / 운영 연계"],
|
|
["OCR","문서/상품 등록 연계"],
|
|
["BI","제조 데이터 분석 피드"],
|
|
["통합 메신저앱","모바일 QR 배포 (중앙 APK 저장소 재사용)"]
|
|
]}
|
|
]
|
|
}
|