本仓库为远程超声诊断平台的统一代码仓库,包含前端、后端、AI质控模块以及专网实时通信中间件。 采用 Monorepo 结构管理,方便统一版本控制,支持针对不同医院/客户进行定制化开发。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

74 lines
2.4 KiB

import os
import re
entity_dir = r"d:/Projects/洛川康复中医院/imurs/src/main/java/com/imurs/entity"
# Header
print("| Table Name | Entity Class | Description |")
print("| :--- | :--- | :--- |")
files = sorted([f for f in os.listdir(entity_dir) if f.endswith(".java")])
for f in files:
path = os.path.join(entity_dir, f)
content = ""
try:
with open(path, 'r', encoding='utf-8') as file:
content = file.read()
except UnicodeDecodeError:
try:
with open(path, 'r', encoding='gbk') as file:
content = file.read()
except:
pass
if not content:
continue
# Extract Table Name
table_match = re.search(r'@TableName\s*\(\s*(?:value\s*=\s*)?"([^"]+)"\s*\)', content)
if not table_match:
table_match = re.search(r"@TableName\s*\(\s*(?:value\s*=\s*)?'([^']+)'\s*\)", content)
table_name = table_match.group(1) if table_match else ""
# Extract Class Name
class_match = re.search(r'public\s+class\s+(\w+)', content)
class_name = class_match.group(1) if class_match else f.replace(".java", "")
# Extract Description
description = ""
if class_match:
start_index = class_match.start()
# Search backwards from class definition
preceding = content[:start_index]
# Find all javadoc blocks
# We want the one closest to the class def, but typically it is the last one in 'preceding'
# unless there are other methods/fields above (unlikely for entity start)
comments = list(re.finditer(r'/\*\*(.*?)\*/', preceding, re.DOTALL))
if comments:
# Use the last one
last_comment = comments[-1]
raw_comment = last_comment.group(1)
# Clean comment
lines = raw_comment.split('\n')
desc_lines = []
for line in lines:
line = line.strip()
# Remove comment markers *
line = re.sub(r'^\*+', '', line).strip()
if not line:
continue
if line.startswith("@"):
continue
desc_lines.append(line)
description = " ".join(desc_lines)
# Escape pipes
description = description.replace("|", "\\|")
if table_name:
print(f"| `{table_name}` | `{class_name}` | {description} |")