档案管理软件机械版:从零部署到生产环境实操指南

一、核心组件安装与环境配置

系统要求:Ubuntu Server 22.04 LTS,4核CPU,8GB内存,100GB SSD存储。

1.1 数据库安装与配置

执行以下命令安装PostgreSQL 15:

``` sudo apt update sudo apt install -y postgresql-15 postgresql-contrib-15 ```

创建数据库用户和数据库:

``` sudo -u postgres psql -c "CREATE USER arch_user WITH PASSWORD 'StrongPass123!';" sudo -u postgres psql -c "CREATE DATABASE mechanical_archive OWNER arch_user;" sudo -u postgres psql -d mechanical_archive -c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" ```

1.2 应用服务器部署

下载并解压应用包:

``` wget https://archive.software.com/releases/mechanical-v2.3.1.tar.gz tar -xzf mechanical-v2.3.1.tar.gz cd mechanical-v2.3.1 ```

创建配置文件:

``` nano config/application.properties ```

配置文件内容:

``` 数据库配置 spring.datasource.url=jdbc:postgresql://localhost:5432/mechanical_archive spring.datasource.username=arch_user spring.datasource.password=StrongPass123! spring.datasource.driver-class-name=org.postgresql.Driver 文件存储路径 file.storage.path=/var/mechanical-archive/files file.max-size=104857600 服务器端口 server.port=8080 server.servlet.context-path=/archive ```

二、系统初始化与数据建模

2.1 数据库表结构初始化

执行初始化SQL脚本:

``` psql -U arch_user -d mechanical_archive -f sql/init_tables.sql ```

关键表结构示例:

``` CREATE TABLE mechanical_documents ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), document_number VARCHAR(50) UNIQUE NOT NULL, equipment_code VARCHAR(30) NOT NULL, document_type VARCHAR(20) CHECK (document_type IN ('图纸', '工艺卡', '检验单', '维修记录')), version INTEGER DEFAULT 1, file_path VARCHAR(500) NOT NULL, upload_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, last_modify_time TIMESTAMP, status VARCHAR(15) DEFAULT '有效' ); CREATE INDEX idx_equipment_code ON mechanical_documents(equipment_code); CREATE INDEX idx_document_type ON mechanical_documents(document_type); ```

2.2 存储目录权限设置

创建文件存储目录并设置权限:

``` sudo mkdir -p /var/mechanical-archive/files sudo chown -R $USER:$USER /var/mechanical-archive chmod 755 /var/mechanical-archive/files ```

三、应用启动与基础配置

3.1 启动应用服务

使用systemd创建服务:

``` sudo nano /etc/systemd/system/mechanical-archive.service ```

服务配置文件内容:

``` [Unit] Description=Mechanical Archive Management System After=postgresql.service [Service] User=your_username WorkingDirectory=/home/your_username/mechanical-v2.3.1 ExecStart=/usr/bin/java -jar mechanical-archive.jar Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ```

启动并启用服务:

``` sudo systemctl daemon-reload sudo systemctl start mechanical-archive sudo systemctl enable mechanical-archive ```

3.2 验证服务状态

检查服务运行状态:

``` sudo systemctl status mechanical-archive ```

测试API接口:

``` curl http://localhost:8080/archive/api/health ```

预期返回:{"status":"UP","version":"2.3.1"}

四、文件上传与分类配置

4.1 配置文档分类规则

创建分类配置文件:

``` nano config/document_categories.json ```

配置文件内容:

``` { "categories": [ { "code": "DWG", "name": "工程图纸", "allowed_extensions": [".dwg", ".dxf", ".pdf"], "max_size_mb": 50, "required_metadata": ["equipment_code", "drawing_number", "revision"] }, { "code": "PROC", "name": "工艺文件", "allowed_extensions": [".doc", ".docx", ".pdf"], "max_size_mb": 20, "required_metadata": ["process_code", "operation_sequence", "tooling_ref"] } ] } ```

4.2 实现文件上传接口

档案管理软件机械版:从零部署到生产环境实操指南

创建上传脚本示例:

``` !/bin/bash upload_document.sh API_URL="http://localhost:8080/archive/api/documents" FILE_PATH="$1" EQUIPMENT_CODE="$2" DOC_TYPE="$3" curl -X POST \ -F "file=@$FILE_PATH" \ -F "equipmentCode=$EQUIPMENT_CODE" \ -F "documentType=$DOC_TYPE" \ -F "uploader=system" \ "$API_URL/upload" ```

使用示例:

``` ./upload_document.sh "/path/to/drawing.dwg" "MACH-001" "图纸" ```

五、版本控制与变更管理

5.1 配置版本控制策略

创建版本管理配置:

``` nano config/version_policy.json ```

配置内容:

``` { "auto_versioning": true, "keep_previous_versions": 5, "version_naming": "v{MAJOR}.{MINOR}", "change_log_required": true, "approval_workflow": { "enabled": true, "approvers_required": 2, "auto_archive_old": true } } ```

5.2 实现文档版本更新

版本更新API调用示例:

``` curl -X PUT http://localhost:8080/archive/api/documents/{documentId}/version \ -H "Content-Type: application/json" \ -d '{ "change_description": "更新了尺寸公差要求", "new_file": "base64_encoded_file_content", "reviewer": "engineer_zhang" }' ```

六、搜索与检索功能配置

6.1 配置全文搜索引擎

安装Elasticsearch并配置索引:

``` 安装Elasticsearch wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list sudo apt update sudo apt install elasticsearch 创建文档索引 curl -X PUT "localhost:9200/mechanical_documents" \ -H 'Content-Type: application/json' \ -d '{ "mappings": { "properties": { "document_number": {"type": "keyword"}, "equipment_code": {"type": "keyword"}, "document_type": {"type": "keyword"}, "content": {"type": "text"}, "upload_time": {"type": "date"} } } }' ```

6.2 实现复合搜索接口

搜索API示例:

``` curl -X GET "http://localhost:8080/archive/api/documents/search" \ -H "Content-Type: application/json" \ -d '{ "equipment_code": "MACH-001", "document_type": ["图纸", "工艺卡"], "keywords": "主轴 装配", "date_from": "2024-01-01", "date_to": "2024-12-31", "page": 1, "size": 20 }' ```

七、权限管理与审计日志

7.1 配置RBAC权限模型

创建角色权限配置:

``` nano config/roles_permissions.json ```

配置内容:

``` { "roles": { "viewer": { "permissions": ["document:read", "search:execute"] }, "editor": { "permissions": ["document:read", "document:upload", "document:update"] }, "approver": { "permissions": ["document:read", "document:approve", "version:manage"] }, "admin": { "permissions": [""] } } } ```

7.2 启用审计日志

配置审计日志表:

``` CREATE TABLE audit_logs ( id SERIAL PRIMARY KEY, user_id VARCHAR(50) NOT NULL, action VARCHAR(50) NOT NULL, resource_type VARCHAR(30), resource_id VARCHAR(100), details JSONB, ip_address INET, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX idx_audit_user ON audit_logs(user_id); CREATE INDEX idx_audit_timestamp ON audit_logs(timestamp); ```

八、备份与恢复策略

8.1 配置自动备份

创建备份脚本:

``` !/bin/bash backup_archive.sh BACKUP_DIR="/backup/mechanical-archive" DATE=$(date +%Y%m%d_%H%M%S) 备份数据库 pg_dump -U arch_user mechanical_archive > $BACKUP_DIR/db_backup_$DATE.sql 备份文件存储 tar -czf $BACKUP_DIR/files_backup_$DATE.tar.gz /var/mechanical-archive/files 备份配置文件 cp -r config $BACKUP_DIR/config_backup_$DATE 保留最近7天的备份 find $BACKUP_DIR -name ".sql" -mtime +7 -delete find $BACKUP_DIR -name ".tar.gz" -mtime +7 -delete ```

设置定时任务:

``` crontab -e 添加以下行,每天凌晨2点执行备份 0 2 /path/to/backup_archive.sh ```

8.2 恢复流程

数据库恢复命令:

``` psql -U arch_user -d mechanical_archive -f /backup/mechanical-archive/db_backup_20240101_020000.sql ```

文件恢复命令:

``` tar -xzf /backup/mechanical-archive/files_backup_20240101_020000.tar.gz -C / ```

九、监控与维护

9.1 系统健康检查配置

创建健康检查端点:

``` 在应用中添加健康检查 curl http://localhost:8080/archive/actuator/health ```

预期返回包含:

``` { "status": "UP", "components": { "db": {"status": "UP"}, "diskSpace": {"status": "UP", "details": {"total": 100000000000, "free": 50000000000}}, "elasticsearch": {"status": "UP"} } } ```

9.2 日志监控配置

配置日志轮转:

``` sudo nano /etc/logrotate.d/mechanical-archive ```

配置内容:

``` /var/log/mechanical-archive/.log { daily rotate 30 compress delaycompress missingok notifempty create 644 your_username your_username } ```
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统