331 lines
9.0 KiB
Bash
Executable File
331 lines
9.0 KiB
Bash
Executable File
#!/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 <doc> [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 "$@" |