ERP R4 — 미션 자동판정 실데이터 배선 + 6방 빠른입력 실동작
개요
크라우니엔터프라이즈 게임화 ERP (enterprise.crowny.org/world) R4 고도화.
서버.한선에
POST /api/mission/complete-rule 신규 라우트 추가,
enterprise-world.js QUICK_FORMS 실 API 연결 + 미션 progress 필드 추가.
작업 내용
1. POST /api/mission/complete-rule (서버.한선 ~3629-3800줄)
미션ID → _미션DB 조회 → 영역(area) 확인
영역별 실 모듈 DB 데이터 쿼리:
factory: _품질DB → qc합격수, 검사수량
finance: _예산DB(한도/사용액) + _결산DB(결산완료여부)
promo: _캠페인DB → 반응수(=노출수), 예산×100(=목표노출), 상태
contract: 계약_조회() → 계약 단계
maintain: 유지보수요약() → 완료수/전체수/sla초과수
people: 인사_직원수() + 인사_성과등록건() + 목표율90
맵생성/맵넣어 로 데이터맵 구성
미션완료평가_룰(미션ID, 데이터맵) 호출 (modules/미션.한선 → 미션판정룰_셀코어.한선)
판정결과(T/O/A/U) + 수치 + 사유 JSON 반환2. /api/mission/room/{area} progress 필드 (서버.한선 ~1949-1980줄)
- 감산루프로 (현재단계/총단계)×100 계산 (나눗셈 금지 준수)
- T 상태면 100, 아니면 step 기반 계산
- 응답에
progress, step, totalStep 필드 추가
6방 각 도메인 실제 서버 필드명으로 수정:
factory: /api/production/plan (제품코드, 이름, 수량, 시작일, 종료일)
promo: /api/crm/campaign (이름, 유형, 예산, 시작일, 종료일)
contract: /api/contract (title, customerName, customerCode, amount, endDate)
maintain: /api/maintenance/request (targetCode, type, priority, description)
people: /api/hrm/employee (사번, 이름, 부서, 직급, 연봉, 이메일)
finance: /api/finance/journal (차변코드, 대변코드, 금액, 적요, 일자)
각 도메인 successMsg 함수 추가4. evalMissionRule() JS 함수
.ew-mc-rule-btn 버튼 → fetch POST /api/mission/complete-rule
- 판정 T → completeMission() 자동 호출 + XP 부여
- O/A → 사유 표시
5. RPN 동반 파일
/Users/ef/crowny-enterprise/미션자동판정_배선.rpn.한선 — RPN 정본 (크라우니 헌법 준수)
관련 파일 경로
/Users/ef/crowny-enterprise/서버.한선 — 메인 서버 (핸들러 추가)
/Users/ef/crowny-enterprise/web/js/enterprise-world.js — 프론트엔드
/Users/ef/crowny-enterprise/미션자동판정_배선.rpn.한선 — RPN 정본
/Users/ef/crowny-enterprise/modules/미션.한선 — 미션완료평가_룰() 정의
/Users/ef/crowny-enterprise/미션판정룰_셀코어.한선 — 6영역 판정 룰
/tmp/ent.r4.toau — 컴파일 완료 바이트코드 (EXIT:0)
빌드 검증
- 컴파일:
./hanseonc_high /Users/ef/crowny-enterprise/서버.한선 > /tmp/ent.r4.toau → EXIT:0 성공
- 파일 크기: 13,554,746 bytes (기존 enterprise.toau 13,168,876 대비 +385KB 신규 코드)
잔여 이슈
- 테스트포트(19750) 통합 테스트: STR 풀 초기화가 너무 느려서 포트 바인딩 전에 타임아웃.
해결방안: 배포 시 라이브서버를 새 toau로 원자 교체 후 재기동(gateway session 담당)
- 라이브 배포:
mv /tmp/ent.r4.toau /tmp/enterprise.toau + 서버 재기동 (gateway/라이브 세션이 수행)
- 멀티테넌시 검증: 회사격리전체() 래퍼 적용됨 — 실 데이터 있는 회사 대상 추가 검증 필요