文档

运维手册

部署架构、租户管理、权限 grant、日常运维与版本升级的操作指南。

系统运维手册

本文档为 设备运维管理系统(ruoyi-plus) 的安装部署、日常运维与常见问题处理总览,供运维、测试与实施人员使用。

专项文档索引:

文档说明
Deploy.md生产环境 deploy 目录打包与一键部署
deploy/产物更新部署.md日常产物编译与发版
APK下载的配置运维手册.md官网微信扫码 APK 下载
版本管理运维手册.mdAPP 版本号、发版流程、远程更新与版本 API
三端功能操作流程.mdWeb / App / 后端协作流程
资料Office转PDF转换服务部署运维说明.mdOffice 转 PDF 微服务详细运维
资料Office转PDF预览方案设计.mdOffice 预览功能架构设计
App离线数据与缓存清理规则.mdApp 本地缓存与清理
App图纸中心本地与云端图页设计.mdApp 自建图包与云端图页打开、同步、落盘
App离线登录与用户协议设计.mdApp 离线登录、用户协议、首次认证与免费版限额
App操作说明书.md移动端操作说明
PUBLIC租户与App自助入会运维说明.md公开租户类型、App 自助注册与数据赋权运维
私有租户管理运维手册.md私有租户创建、套餐、合同配额与用户接入全生命周期
App用户与现场运维员权限运维说明.mdApp 用户 Web 登录、dms_operator 角色、资源读/写权限与升级脚本
开发环境启停说明.mdWindows 本地 dev-start / dev-stop / dev-restart 脚本使用
代码提交说明.md三端 Git 提交、推送 GitHub 快速流程

一、系统组成与端口

1.1 三端架构

目录默认访问说明
Web 管理端dmsysr-frontendhttp://<host>/Vue 3 管理后台
后端 APIdmsysr-backend/jula-admin8080Spring Boot 业务服务
App 移动端DMsysGApp/api/* 兼容层Kotlin + Compose

生产环境 Web 通过 Nginx 反向代理,API 前缀为 /prod-api/

1.2 基础组件(deploy 编排)

组件默认端口默认账号(生产请修改)
MySQL3306root / root
Redis6379密码 Jula123
MinIO9000 / 9001Jula / Jula1234
jula-admin8080见系统用户表
Nginx80

1.3 可选转换微服务

服务端口用途编排路径
dmsys-cad-converter8095STEP → GLB 图纸 3D 预览dmsysr-backend/script/docker/docker-compose.yml
dmsys-office-converter8096Office → PDF 资料预览同上

二、主系统部署

2.1 生产环境(deploy 目录)

详细步骤见 Deploy.md。简要流程:

# 1. 上传 deploy 目录到 Linux 服务器
# 2. 按顺序导入 deploy/sql/ 下脚本到 MySQL ry-vue 库
# 3. 启动
cd deploy
chmod +x start.sh
./start.sh

访问:http://<服务器IP>/(管理后台),API:/prod-api/ → 后端 8080。

2.2 开发环境

组件启动方式
一键启停项目根目录 .\dev-start.ps1 -Backend / -Frontend 等(详见 开发环境启停说明.md)
后端IDE 或 mvn 运行 jula-admin,profile dev
前端cd dmsysr-frontend && pnpm dev(默认 9527)
MySQL / Redis / MinIO本地或 Docker

2.3 推荐启动顺序

MySQL → Redis → MinIO → 转换微服务(8095/8096,若启用)→ jula-admin → Nginx / 前端

三、数据库升级

3.1 新装环境

按顺序执行 deploy/sql/dmsysr-backend/script/sql/ 下脚本,业务表见 04_dmsys.sql

3.2 存量环境增量升级

脚本用途
dmsysr-backend/script/sql/dmsys_upgrade_doc_preview.sql资料 Office PDF 预览字段(preview_oss_id 等)
dmsysr-backend/script/sql/dmsys_upgrade_cad_preview.sql图纸 CAD 预览字段
dmsysr-backend/script/sql/dmsys_upgrade_tenant_contract_quota.sql私有租户合同配额:生效时间、图/资/工上限、单文件 MB
dmsysr-backend/script/sql/dmsys_upgrade_tenant_type.sql租户类型 tenant_type、工单 access_mode 与授权表
dmsysr-backend/script/sql/dmsys_upgrade_app_operator_role.sql全部租户 dms_operator 角色、菜单(含工作台 11901)与 app_user 绑定

脚本均为可重复执行设计(部分语句在已升级库上可能报重复列/表,可忽略)。公开租户与 App 自助注册详见 PUBLIC租户与App自助入会运维说明.md;私有租户开租户、合同配额与用户接入详见 私有租户管理运维手册.md;App 用户 Web 权限与 Demo 写保护详见 App用户与现场运维员权限运维说明.md。

mysql -u root -p ry-vue < dmsysr-backend/script/sql/dmsys_upgrade_doc_preview.sql

四、资料/图纸附件上传限制

管理端上传或替换资料、图纸附件时,若文件过大可能导致上传失败。各层限制须保持一致,修改任一层时需同步调整其余层。

4.1 当前默认限制

层级配置项默认值配置文件
前端校验DMS_MAX_UPLOAD_MB200 MBdmsysr-frontend/src/constants/dms-upload.ts
前端 HTTP 超时DMS_UPLOAD_REQUEST_TIMEOUT_MS10 分钟同上
Spring multipart 单文件spring.servlet.multipart.max-file-size200 MBjula-admin/.../application.yml
Spring multipart 总请求spring.servlet.multipart.max-request-size220 MB同上
业务校验dmsys.upload.max-file-mb200 MB同上
Undertow POST 体server.undertow.max-http-post-size1 GB同上
Nginx 请求体client_max_body_size220mdeploy/nginx/conf/nginx.conf
Vite 开发代理超时timeout / proxyTimeout10 分钟dmsysr-frontend/build/config/proxy.ts

Office PDF 预览转换另有独立上限 dmsys.office.convert.max-file-mb(默认 50 MB)。超过 50 MB 的 Office 文件可以上传成功,但服务端 PDF 转换会失败;需调大该值并同步调整 office-converterMAX_FILE_MB

4.2 上传失败常见原因

现象可能原因处理
小文件正常,大文件超时失败前端 axios 默认仅 10s(已修复为 10 分钟)更新前端并重启 pnpm dev
超过约 100MB 失败(生产)Nginx client_max_body_size 过小(已调整为 220m)修改 Nginx 后 nginx -s reload
后端返回「文件大小超过 XX MB」超过 dmsys.upload.max-file-mb 或 Spring multipart 限制按需调大配置并重启后端
开发环境大文件失败Vite 代理超时过短已设置 10 分钟,重启前端 dev
HTTP 413 Request Entity Too LargeNginx 或网关限制调大 client_max_body_size

4.3 调大上传上限(示例:改为 500MB)

同步修改以下配置后重启相关服务:

1. 后端 application.yml

spring:
  servlet:
    multipart:
      max-file-size: 500MB
      max-request-size: 520MB

dmsys:
  upload:
    max-file-mb: 500

2. Nginx deploy/nginx/conf/nginx.conf

client_max_body_size 520m;

3. 前端 dmsysr-frontend/src/constants/dms-upload.ts

export const DMS_MAX_UPLOAD_MB = 500;

4. 重新构建/部署前端与后端,并重载 Nginx。

4.4 相关实现入口

层级路径
资料上传 APIPOST /dmsys/document/{id}/upload
后端业务校验DmsDocumentServiceImpl.uploadFile()
全局超限异常GlobalExceptionHandlerMaxUploadSizeExceededException
前端上传 APIfetchUploadDocument()document.ts
前端上传 UIdocument-operate-drawer.vuedocument/index.vue

五、Office 转 PDF 转换服务

资料模块上传 Office 文档(doc/docx/xls/xlsx/ppt/pptx)后,后端异步调用 dmsys-office-converter(端口 8096)生成 PDF 预览。

5.1 快速启动

Docker:

cd dmsysr-backend/script/docker
docker compose up -d dmsys-office-converter
curl http://127.0.0.1:8096/health   # 期望 {"status":"ok"}

命令行(Windows 开发):

# 需安装 LibreOffice 并将 program 目录加入 PATH
cd dmsysr-backend\script\office-converter
pip install -r requirements.txt
uvicorn app:app --host 127.0.0.1 --port 8096

后端配置application.yml):

dmsys:
  office:
    convert:
      enabled: true
      converter-base-url: http://127.0.0.1:8096
      max-file-mb: 50
      timeout-sec: 300

5.2 转换状态

资料表 doc_process_statusNONE / PENDING / READY / FAILED。管理端列表可查看「PDF 预览」列;失败时可调用 POST /dmsys/document/{id}/reconvert 重新转换。

5.3 详细说明

完整安装、systemd 常驻、排障与验证步骤见:

资料Office转PDF转换服务部署运维说明.md


六、CAD 转换服务(简要)

项目
服务名dmsys-cad-converter
端口8095
功能STEP/STP → PreviewBundle(GLB + assembly.json)
配置项dmsys.cad.convert.*
源码dmsysr-backend/script/cad-converter/
cd dmsysr-backend/script/docker
docker compose up -d dmsys-cad-converter
curl http://127.0.0.1:8095/health

6.1 详细说明

完整安装、Docker / 本机启动、API、排障与验证步骤见:

图纸CAD转换服务部署运维说明.md


七、常见问题排障

7.1 Office 转换 HTTP 422 / Invalid HTTP request

现象:office-converter 日志出现 422 Unprocessable EntityInvalid HTTP request received

原因:Java HttpClient 默认 HTTP/2,uvicorn 解析异常。

处理:确认 DocConvertServiceImpl 已强制 HttpClient.Version.HTTP_1_1;重启 jula-admin;对失败资料执行「重新转换」。

7.2 Office 转换连接拒绝

处理:启动 office-converter;核对 converter-base-url;检查防火墙 8096 端口。

7.3 资料上传失败(非超限)

  1. 检查 MinIO/OSS 是否可达(dmsys.upload.use-oss
  2. 查看 jula-admin 日志中 DmsFileStorageService 相关错误
  3. 本地降级目录:./uploads/dmsys/{tenant}/document/{id}/

7.4 App 无法同步资料

  1. 确认后端 /api/sync 可访问且 Token 有效
  2. 检查资料授权(access_mode / dms_equipment_doc_grant
  3. 弱网环境:按分类同步或打开详情触发附件下载

7.5 生产环境修改配置后未生效

组件操作
jula-admin重启 Java 进程或 Docker 容器
Nginxnginx -s reload 或重启容器
前端静态资源重新 pnpm build 并部署 nginx/html
office-converter重启服务或 docker compose restart

八、配置速查表

配置路径关键项默认值
application.ymlspring.servlet.multipart.max-file-size200MB
application.ymldmsys.upload.max-file-mb200
application.ymldmsys.upload.use-osstrue
application.ymldmsys.office.convert.converter-base-urlhttp://127.0.0.1:8096
application.ymldmsys.office.convert.max-file-mb50
application.ymldmsys.cad.convert.converter-base-urlhttp://127.0.0.1:8095
deploy/nginx/conf/nginx.confclient_max_body_size220m
dms-upload.tsDMS_MAX_UPLOAD_MB200
office-converter 环境变量MAX_FILE_MB50
office-converter 环境变量CONVERT_TIMEOUT_SEC300

九、日志位置

组件日志
jula-admindeploy/data/server/logs/ 或 IDE 控制台
Nginxdeploy/data/nginx/log/
office-converter(Docker)docker compose logs dmsys-office-converter
office-converter(命令行)终端标准输出
AppAndroid Logcat,过滤 com.jula

十、日常巡检清单

  • MySQL / Redis / MinIO 容器或进程运行正常
  • curl http://127.0.0.1:8080 或健康检查端点可达
  • 管理后台可登录,资料列表可加载
  • office-converter GET /health 返回 ok(若启用 Office 预览)
  • cad-converter GET /health 返回 ok(若启用 3D 预览)
  • 磁盘空间:uploads/dmsys、MinIO 数据目录、MySQL 数据目录
  • 抽查上传 10MB+ 资料附件是否成功
  • 抽查 Office 资料 PDF 预览状态为 READY

文档版本:v1.0 | 随系统功能迭代更新,专项细节以各子文档为准

需要 PDF 打印版或单车间试点?

以上文档已在线发布。如需 PDF 打印版、私有化部署支持或行业 Demo 数据,欢迎邮件或微信联系我们。

立即下载

扫码下载 DMsys 智能运维终端 App,获取行业设备台账模板、单车间免费试点方案,以及完整产品说明书与操作手册。

DMsys 智能运维终端

Android 现场端 · 扫码下载安装包

微信扫码后请点击右上角 ··· → 在浏览器中打开

如需企业部署、试点方案或技术支持,欢迎联系我们

微信客服二维码

微信客服

上海聚拉 · 客服

扫码添加客服微信