| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """?????????admin-saas / fs-qw-task ?????? -> fs-task???????? @Scheduled"""
- import os
- import re
- import shutil
- from pathlib import Path
- ROOT = Path(__file__).resolve().parent.parent
- FS_TASK = ROOT / "fs-task" / "src" / "main" / "java"
- FS_SERVICE = ROOT / "fs-service" / "src" / "main" / "java"
- FS_ADMIN_SAAS = ROOT / "fs-admin-saas" / "src" / "main" / "java"
- FS_QW_TASK = ROOT / "fs-qw-task" / "src" / "main" / "java"
- ADMIN_SAAS_MOVE_DIRS = [
- "com/fs/his/task",
- "com/fs/hisStore/task",
- "com/fs/course/task",
- "com/fs/tenant/task",
- "com/fs/ad/controller/task",
- ]
- ADMIN_SAAS_MOVE_FILES = [
- "com/fs/admin/sync/LobsterBridgeDataSyncService.java",
- ]
- ADMIN_SAAS_TASK_FILES = [
- "com/fs/task/CrmCustomerAiProcessingTask.java",
- "com/fs/task/ComprehensiveStatisticsTask.java",
- "com/fs/task/FsCompanyTask.java",
- "com/fs/task/FsStoreTask.java",
- "com/fs/task/MiniProgramSubTask.java",
- "com/fs/task/QwExternalAiAnalyzeTask.java",
- "com/fs/task/SyncTuLinStudentInfoTask.java",
- ]
- QW_MOVE_DIRS = [
- "com/fs/app/task",
- "com/fs/app/taskService",
- ]
- SERVICE_TASK_DELETE_DIRS = [
- "com/fs/his/task",
- "com/fs/hisStore/task",
- "com/fs/course/task",
- "com/fs/tenant/task",
- "com/fs/task",
- "com/fs/proxy/task",
- "com/fs/ad/controller/task",
- ]
- SCHEDULED_IMPORT = re.compile(r"^\s*import org\.springframework\.scheduling\.annotation\.Scheduled;\s*\n", re.M)
- SCHEDULED_ANN = re.compile(r"^\s*@Scheduled\([^)]*\)\s*\n", re.M)
- def ensure_parent(path: Path):
- path.parent.mkdir(parents=True, exist_ok=True)
- def move_path(src: Path, dst: Path):
- if not src.exists():
- return
- ensure_parent(dst)
- if dst.exists():
- dst.unlink()
- shutil.move(str(src), str(dst))
- print(f"MOVE {src.relative_to(ROOT)} -> {dst.relative_to(ROOT)}")
- def move_tree(src_root: Path, rel: str, dst_root: Path):
- src = src_root / rel
- if not src.exists():
- return
- dst = dst_root / rel
- if src.is_dir():
- if dst.exists():
- shutil.rmtree(dst)
- shutil.move(str(src), str(dst))
- print(f"MOVE DIR {src.relative_to(ROOT)} -> {dst.relative_to(ROOT)}")
- else:
- move_path(src, dst)
- def strip_scheduled(content: str) -> str:
- content = SCHEDULED_ANN.sub("", content)
- content = SCHEDULED_IMPORT.sub("", content)
- return content
- def process_java_file(path: Path):
- for enc in ("utf-8", "gbk", "latin-1"):
- try:
- text = path.read_text(encoding=enc)
- break
- except UnicodeDecodeError:
- text = None
- if text is None:
- print(f"SKIP (encoding) {path.relative_to(ROOT)}")
- return
- new_text = strip_scheduled(text)
- if new_text != text:
- path.write_text(new_text, encoding="utf-8")
- print(f"STRIP @Scheduled {path.relative_to(ROOT)}")
- def strip_tree(root: Path):
- if not root.exists():
- return
- for p in root.rglob("*.java"):
- process_java_file(p)
- def delete_tree(base: Path, rel: str):
- p = base / rel
- if p.exists():
- if p.is_dir():
- shutil.rmtree(p)
- else:
- p.unlink()
- print(f"DELETE {p.relative_to(ROOT)}")
- def main():
- FS_TASK.mkdir(parents=True, exist_ok=True)
- for rel in ADMIN_SAAS_MOVE_DIRS:
- move_tree(FS_ADMIN_SAAS, rel, FS_TASK)
- for rel in ADMIN_SAAS_MOVE_FILES + ADMIN_SAAS_TASK_FILES:
- move_path(FS_ADMIN_SAAS / rel, FS_TASK / rel)
- for rel in QW_MOVE_DIRS:
- move_tree(FS_QW_TASK, rel, FS_TASK)
- for rel in SERVICE_TASK_DELETE_DIRS:
- delete_tree(FS_SERVICE, rel)
- strip_tree(FS_TASK)
- # fs-service ??? @Scheduled ????????????????? Quartz ?????
- for rel in [
- "com/fs/proxy/service/impl/PlatformStatisticsServiceImpl.java",
- "com/fs/erp/service/impl/JstTokenService.java",
- "com/fs/company/service/workflow/heartbeat/impl/HeartbeatSchedulerImpl.java",
- "com/fs/company/service/workflow/evolution/impl/EvolutionSchedulerImpl.java",
- "com/fs/company/service/workflow/event/UserEventMonitor.java",
- "com/fs/fastgptApi/util/EventLogUtils.java",
- ]:
- p = FS_SERVICE / rel
- if p.exists():
- process_java_file(p)
- print("DONE")
- if __name__ == "__main__":
- main()
|