프론트 전면 구성: 330개 전 서비스 화면 포털 (매니페스트 자동생성)
- tools/gen_screens.py: svc 소스에서 입력(getl/gets_)·출력(setl/sets) 필드와 한글 설명을 추출해 app/ui/screens.js(330 화면 매니페스트) 생성 - index.html 확장: 모듈별 메뉴트리(11그룹×30화면) + 화면검색 + 주요업무 즐겨찾기 9종, 화면별 입력폼 자동구성(한글라벨·기본값), 조회성 화면 XA 자동 off, 결과그리드·거래저널 - README: 화면 계층(4.0) 문서화 - 검증: screens.js 서빙, ACQ_DUPCHK(조회)·RC_STATS(통계)·MM_MERCH_REG(XA 등록) 실호출 정상 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5c819239ad
commit
844a1d50fc
4 changed files with 4488 additions and 105 deletions
30
tools/gen_screens.py
Executable file
30
tools/gen_screens.py
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env python3
|
||||
"""app/src/*/svc/*.pgc 에서 화면 매니페스트(app/ui/screens.js)를 재생성한다.
|
||||
각 tpservice 의 입력(getl/gets_)·출력(setl/sets) 필드와 한글 설명을 추출."""
|
||||
import re, os, json, glob
|
||||
|
||||
MOD_NAMES = {'ac':'매입','au':'승인/한도','rc':'대사','st':'정산/수수료','py':'지급',
|
||||
'lg':'원장','cl':'마감','mm':'마스터','vl':'정합성검증','mg':'전문게이트웨이','cm':'공통'}
|
||||
screens=[]
|
||||
for path in sorted(glob.glob('app/src/*/svc/*.pgc')):
|
||||
mod = path.split('/')[2]
|
||||
svc = os.path.basename(path)[:-4]
|
||||
src = open(path, encoding='utf-8', errors='ignore').read()
|
||||
desc=''
|
||||
for line in src.splitlines()[:12]:
|
||||
line=line.strip().lstrip('/*').strip(' *')
|
||||
if re.search(r'[가-힣]', line) and svc not in line[:len(svc)+8]:
|
||||
desc=line.strip(); break
|
||||
if re.search(r'[가-힣]', line) and ':' in line:
|
||||
desc=line.split('-',1)[-1].strip(); break
|
||||
if not desc:
|
||||
m=re.search(r'\*\s*([^\n]*[가-힣][^\n]*)', src[:600])
|
||||
desc=m.group(1).strip() if m else ''
|
||||
dedup=lambda xs: list(dict.fromkeys(xs))
|
||||
screens.append({'mod':mod,'modnm':MOD_NAMES.get(mod,mod),'svc':svc,'desc':desc[:80],
|
||||
'in':dedup(re.findall(r'(?:getl|gets_)\(b,\s*([A-Z_0-9]+)',src)),
|
||||
'out':dedup(re.findall(r'(?:setl|sets|sets_)\(b,\s*([A-Z_0-9]+)',src))})
|
||||
with open('app/ui/screens.js','w',encoding='utf-8') as f:
|
||||
f.write("/* 자동생성: app/src/*/svc/*.pgc 에서 추출한 화면 매니페스트 (재생성: tools/gen_screens.py) */\n")
|
||||
f.write("const SVC_SCREENS = "); json.dump(screens,f,ensure_ascii=False,indent=1); f.write(";\n")
|
||||
print(f"screens: {len(screens)}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue