网站首页/ 信息中心/ 档案百科/

人事数字档案馆系统:从零搭建到数据迁移全流程实操指南

发布时间:2026年09月19日 15:25:29 浏览量:0

系统架构与核心组件

人事数字档案馆系统采用分层架构设计,分为数据层、服务层和应用层。数据层使用PostgreSQL 14.7作为主数据库,Redis 6.2作为缓存数据库。服务层基于Spring Boot 2.7.8构建,应用层采用Vue 3.2作为前端框架。

环境要求与安装清单

操作系统:Ubuntu 20.04 LTS或CentOS 8

内存:至少8GB RAM

存储:至少100GB可用空间

需要安装的软件包:

后端环境搭建

Java环境配置

执行以下命令安装JDK 11:

``` sudo apt update sudo apt install openjdk-11-jdk -y ```

验证安装:

``` java -version ```

输出应显示"openjdk version 11.0.xx"。

数据库安装与配置

安装PostgreSQL:

``` sudo apt install postgresql-14 postgresql-contrib-14 -y ```

创建数据库和用户:

``` sudo -u postgres psql CREATE DATABASE hr_archive; CREATE USER hr_admin WITH PASSWORD 'YourSecurePassword123!'; GRANT ALL PRIVILEGES ON DATABASE hr_archive TO hr_admin; \q ```

修改PostgreSQL认证配置:

``` sudo nano /etc/postgresql/14/main/pg_hba.conf ```

找到以下行并修改为:

``` IPv4 local connections: host all all 127.0.0.1/32 md5 IPv6 local connections: host all all ::1/128 md5 ```

重启PostgreSQL服务:

``` sudo systemctl restart postgresql ```

Redis安装配置

安装Redis:

``` sudo apt install redis-server -y ```

修改Redis配置文件:

``` sudo nano /etc/redis/redis.conf ```

找到并修改以下配置项:

``` bind 127.0.0.1 requirepass YourRedisPassword456! maxmemory 2gb maxmemory-policy allkeys-lru ```

重启Redis服务:

``` sudo systemctl restart redis-server ```

后端系统部署

项目结构获取

克隆项目代码:

``` git clone https://github.com/hr-archive/backend.git cd backend ```

项目结构说明:

配置文件修改

编辑application.yml文件:

``` nano src/main/resources/application.yml ```

完整配置内容:

``` server: port: 8080 spring: datasource: url: jdbc:postgresql://localhost:5432/hr_archive username: hr_admin password: YourSecurePassword123! driver-class-name: org.postgresql.Driver redis: host: localhost port: 6379 password: YourRedisPassword456! database: 0 jpa: hibernate: ddl-auto: update show-sql: true properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect app: file: storage-path: /var/hr-archive/files max-size: 10485760 10MB security: jwt-secret: YourJWTSecretKey789!@ token-expiration: 86400000 24小时 ```

编译与启动

使用Maven编译项目:

``` mvn clean package -DskipTests ```

启动后端服务:

``` java -jar target/hr-archive-backend-1.0.0.jar ```

验证服务是否启动成功:

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

应返回{"status":"UP"}。

前端系统部署

Node.js环境安装

安装Node.js 16.17.0:

``` curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs ```

验证安装:

``` node --version npm --version ```

前端项目配置

克隆前端项目:

``` git clone https://github.com/hr-archive/frontend.git cd frontend ```

人事数字档案馆系统:从零搭建到数据迁移全流程实操指南

安装依赖:

``` npm install ```

修改环境配置文件:

``` nano .env.production ```

配置内容:

``` VUE_APP_API_BASE_URL=http://your-server-ip:8080/api VUE_APP_TITLE=人事数字档案馆系统 VUE_APP_PAGE_SIZE=20 ```

项目构建

构建生产版本:

``` npm run build ```

构建完成后,dist目录包含所有静态文件。

Nginx配置与部署

Nginx安装

安装Nginx:

``` sudo apt install nginx -y ```

站点配置

创建Nginx配置文件:

``` sudo nano /etc/nginx/sites-available/hr-archive ```

配置文件内容:

``` server { listen 80; server_name your-domain.com; 前端静态文件 location / { root /var/www/hr-archive; index index.html; try_files $uri $uri/ /index.html; } 后端API代理 location /api/ { proxy_pass http://localhost:8080/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } 文件上传下载 location /files/ { alias /var/hr-archive/files/; autoindex off; } } ```

启用站点配置:

``` sudo ln -s /etc/nginx/sites-available/hr-archive /etc/nginx/sites-enabled/ sudo rm /etc/nginx/sites-enabled/default ```

目录权限设置

创建必要的目录并设置权限:

``` sudo mkdir -p /var/www/hr-archive sudo mkdir -p /var/hr-archive/files sudo cp -r frontend/dist/ /var/www/hr-archive/ sudo chown -R www-data:www-data /var/www/hr-archive sudo chown -R www-data:www-data /var/hr-archive/files ```

重启Nginx

测试配置并重启:

``` sudo nginx -t sudo systemctl restart nginx ```

数据迁移与初始化

数据库表结构初始化

后端服务启动时会自动创建表结构,验证表是否创建成功:

``` sudo -u postgres psql -d hr_archive \dt ```

应显示以下核心表:

初始数据导入

创建系统管理员账户:

``` INSERT INTO system_users (username, password, email, role, status) VALUES ('admin', '$2a$10$YourBcryptHashHere', 'admin@example.com', 'ADMIN', 'ACTIVE'); ```

创建档案分类:

``` INSERT INTO archive_categories (code, name, description) VALUES ('PERSONAL', '个人信息', '员工基本信息档案'), ('CONTRACT', '合同协议', '劳动合同及相关协议'), ('PERFORMANCE', '绩效考核', '绩效评估记录'), ('TRAINING', '培训发展', '培训记录和证书'); ```

历史数据迁移

准备CSV格式的历史数据文件,使用pgAdmin导入工具:

  1. 打开pgAdmin,连接到hr_archive数据库
  2. 右键目标表选择"导入/导出"
  3. 选择CSV文件,设置编码为UTF-8
  4. 勾选"首行为标题"选项
  5. 点击"导入"按钮

或使用命令行导入:

``` psql -U hr_admin -d hr_archive -c "\copy employee_records FROM '/path/to/employees.csv' DELIMITER ',' CSV HEADER" ```

系统测试与验证

功能测试步骤

  1. 访问系统首页:http://your-server-ip
  2. 使用admin账户登录
  3. 测试档案上传功能
  4. 测试档案检索功能
  5. 测试权限管理功能

性能验证

使用ab工具进行并发测试:

``` ab -n 1000 -c 100 http://your-server-ip/api/archives/list ```

检查响应时间是否在可接受范围内(平均响应时间应小于200ms)。

监控配置

设置日志轮转:

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

配置内容:

``` /var/log/hr-archive/.log { daily rotate 30 compress delaycompress missingok notifempty create 640 www-data www-data } ```

常见问题解决

数据库连接失败

检查PostgreSQL服务状态:

``` sudo systemctl status postgresql ```

检查连接配置:

``` psql -U hr_admin -h localhost -d hr_archive ```

文件上传失败

检查目录权限:

``` ls -la /var/hr-archive/files/ ```

确保目录所有者是www-data,权限为755。

前端无法访问API

检查Nginx代理配置:

``` sudo nginx -T | grep -A 10 "location /api/" ```

验证后端服务是否运行:

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

内存不足问题

调整JVM内存参数:

``` java -Xms512m -Xmx2g -jar target/hr-archive-backend-1.0.0.jar ```

按照以上步骤操作,即可完成人事数字档案馆系统的完整部署。系统部署完成后,建议定期备份数据库和文件存储,并设置监控告警机制。

微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818