#!/bin/zsh # 福建水务营收系统 - 分离文档管理工具 # 用于管理和查看分离导出的文档 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # 日志函数 log_info() { echo -e "${BLUE}[INFO]${NC} $1" } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 显示文档状态 show_status() { echo "📊 分离文档状态统计" echo "====================" echo "" # 定义文档列表 local documents=( "water_biz_system_architecture" "water_biz_module_design" "water_biz_database_design" "water_biz_interface_design" "water_biz_deployment_design" "water_biz_security_design" ) local doc_titles=( "系统架构设计" "模块功能设计" "数据库设计" "接口设计" "部署设计" "安全设计" ) # 格式化输出表格 printf "%-35s %-8s %-8s %-8s %-10s\n" "文档名称" "Word" "HTML" "PDF" "文件大小" printf "%-35s %-8s %-8s %-8s %-10s\n" "---" "---" "---" "---" "---" local total_count=0 local total_size=0 for i in {1..6}; do local doc="${documents[$i]}" local title="${doc_titles[$i]}" # 检查各种格式 local docx_status="❌" local html_status="❌" local pdf_status="❌" local size_total=0 if [[ -f "output/${doc}.docx" ]]; then docx_status="✅" local docx_size=$(stat -f%z "output/${doc}.docx" 2>/dev/null || echo 0) size_total=$((size_total + docx_size)) total_count=$((total_count + 1)) fi if [[ -f "output/${doc}.html" ]]; then html_status="✅" local html_size=$(stat -f%z "output/${doc}.html" 2>/dev/null || echo 0) size_total=$((size_total + html_size)) total_count=$((total_count + 1)) fi if [[ -f "output/${doc}.pdf" ]]; then pdf_status="✅" local pdf_size=$(stat -f%z "output/${doc}.pdf" 2>/dev/null || echo 0) size_total=$((size_total + pdf_size)) total_count=$((total_count + 1)) fi # 格式化文件大小 local size_str="" if [[ $size_total -gt 1048576 ]]; then size_str="$(echo "scale=1; $size_total/1048576" | bc)MB" elif [[ $size_total -gt 1024 ]]; then size_str="$(echo "scale=1; $size_total/1024" | bc)KB" else size_str="${size_total}B" fi printf "%-35s %-8s %-8s %-8s %-10s\n" "$title" "$docx_status" "$html_status" "$pdf_status" "$size_str" total_size=$((total_size + size_total)) done echo "" echo "📈 统计信息:" echo " - 总文档数量: $total_count 个" echo " - 总文件大小: $(echo "scale=1; $total_size/1048576" | bc)MB" echo "" } # 清理临时文件 clean_temp() { log_info "清理临时文件..." # 清理处理过的markdown文件 rm -f output/*_processed.md # 清理临时图表目录 rm -rf temp_mermaid_* # 清理其他临时文件 rm -f output/merged_documents*.md rm -f output/processed_documents.md log_success "临时文件清理完成" } # 组织文档到分类目录 organize_docs() { log_info "组织文档到分类目录..." # 创建分类目录 mkdir -p output/docx mkdir -p output/html mkdir -p output/pdf # 移动文档到对应目录 if ls output/*.docx 1> /dev/null 2>&1; then mv output/*.docx output/docx/ 2>/dev/null || true log_success "Word文档已移动到 output/docx/" fi if ls output/*.html 1> /dev/null 2>&1; then mv output/*.html output/html/ 2>/dev/null || true log_success "HTML文档已移动到 output/html/" fi if ls output/*.pdf 1> /dev/null 2>&1; then mv output/*.pdf output/pdf/ 2>/dev/null || true log_success "PDF文档已移动到 output/pdf/" fi echo "" echo "📁 文档已组织到以下目录:" echo " - output/docx/ - Word文档" echo " - output/html/ - HTML文档" echo " - output/pdf/ - PDF文档" } # 创建索引文件 create_index() { log_info "创建文档索引..." local index_file="output/README.md" cat > "$index_file" << 'EOF' # 福建水务营收系统分离文档索引 ## 文档说明 本目录包含福建水务营收系统概要设计文档的分离版本,每个模块都有独立的文档文件。 ## 文档列表 ### 系统架构设计 - **描述**: 系统整体架构、技术选型、部署架构设计 - **文件**: - Word: `water_biz_system_architecture.docx` - HTML: `water_biz_system_architecture.html` - PDF: `water_biz_system_architecture.pdf` ### 模块功能设计 - **描述**: 系统功能模块设计、业务流程、接口关系 - **文件**: - Word: `water_biz_module_design.docx` - HTML: `water_biz_module_design.html` - PDF: `water_biz_module_design.pdf` ### 数据库设计 - **描述**: 数据库表结构、索引设计、DDL语句 - **文件**: - Word: `water_biz_database_design.docx` - HTML: `water_biz_database_design.html` - PDF: `water_biz_database_design.pdf` ### 接口设计 - **描述**: RESTful API设计、接口参数、返回值定义 - **文件**: - Word: `water_biz_interface_design.docx` - HTML: `water_biz_interface_design.html` - PDF: `water_biz_interface_design.pdf` ### 部署设计 - **描述**: 容器化部署、环境配置、运维方案 - **文件**: - Word: `water_biz_deployment_design.docx` - HTML: `water_biz_deployment_design.html` - PDF: `water_biz_deployment_design.pdf` ### 安全设计 - **描述**: 等保三级安全设计、认证授权、数据安全 - **文件**: - Word: `water_biz_security_design.docx` - HTML: `water_biz_security_design.html` - PDF: `water_biz_security_design.pdf` ## 使用说明 1. **Word格式**: 适合编辑和进一步修改 2. **HTML格式**: 适合在线查看和分享 3. **PDF格式**: 适合打印和正式分发 ## 技术特点 - ✅ 每个文档都包含完整的Mermaid图表 - ✅ 独立的目录结构和导航 - ✅ 统一的文档样式和格式 - ✅ 支持中文字体和排版优化 ## 生成时间 本文档集合生成于: $(date '+%Y-%m-%d %H:%M:%S') EOF log_success "文档索引已创建: $index_file" } # 打开文档 open_doc() { local doc_name="$1" local format="${2:-docx}" local file_path="output/${doc_name}.${format}" if [[ -f "$file_path" ]]; then log_info "打开文档: $file_path" open "$file_path" else log_error "文档不存在: $file_path" echo "" echo "可用的文档:" ls output/*.${format} 2>/dev/null | sed 's/output\///g' | sed 's/\..*$//g' | sort | uniq fi } # 显示使用说明 show_usage() { echo "福建水务营收系统 - 分离文档管理工具" echo "" echo "用法: $0 [命令] [参数]" echo "" echo "命令:" echo " status 显示文档状态统计" echo " clean 清理临时文件" echo " organize 组织文档到分类目录" echo " index 创建文档索引" echo " open [fmt] 打开指定文档" echo "" echo "示例:" echo " $0 status # 显示状态" echo " $0 clean # 清理临时文件" echo " $0 organize # 组织文档" echo " $0 open water_biz_system_architecture # 打开系统架构文档(Word)" echo " $0 open water_biz_module_design html # 打开模块设计文档(HTML)" echo "" echo "可用文档名称:" echo " - water_biz_system_architecture (系统架构设计)" echo " - water_biz_module_design (模块功能设计)" echo " - water_biz_database_design (数据库设计)" echo " - water_biz_interface_design (接口设计)" echo " - water_biz_deployment_design (部署设计)" echo " - water_biz_security_design (安全设计)" echo "" echo "可用格式: docx, html, pdf" } # 主函数 main() { local command="${1:-status}" case "$command" in status) show_status ;; clean) clean_temp ;; organize) organize_docs ;; index) create_index ;; open) if [[ -z "$2" ]]; then log_error "请指定要打开的文档名称" echo "" show_usage exit 1 fi open_doc "$2" "$3" ;; -h|--help|help) show_usage ;; *) log_error "未知命令: $command" echo "" show_usage exit 1 ;; esac } # 执行主函数 main "$@"