安澜应急指挥系统

yuanzhongqiao cb19491458 gcc há 1 mês atrás
aegis-admin cb19491458 gcc há 1 mês atrás
aegis-camera cb19491458 gcc há 1 mês atrás
aegis-case cb19491458 gcc há 1 mês atrás
aegis-common cb19491458 gcc há 1 mês atrás
aegis-emergency cb19491458 gcc há 1 mês atrás
aegis-file cb19491458 gcc há 1 mês atrás
aegis-framework cb19491458 gcc há 1 mês atrás
aegis-knowledge cb19491458 gcc há 1 mês atrás
aegis-notification cb19491458 gcc há 1 mês atrás
aegis-quartz cb19491458 gcc há 1 mês atrás
aegis-resource cb19491458 gcc há 1 mês atrás
aegis-system cb19491458 gcc há 1 mês atrás
aegis-ui cb19491458 gcc há 1 mês atrás
deployment cb19491458 gcc há 1 mês atrás
images cb19491458 gcc há 1 mês atrás
.gitignore cb19491458 gcc há 1 mês atrás
README.md cb19491458 gcc há 1 mês atrás
pom.xml cb19491458 gcc há 1 mês atrás

README.md

安澜应急指挥系统

Java Spring Boot Vue

安澜应急指挥是一套面向政府与企事业单位的应急业务软件:在统一门户下支撑日常值守、事件接报、调度与处置、资源与预案、数据报送、案例与知识、视频与系统集成等能力。

主控制台

一、产品定位与适用场景

维度 说明
谁在用 应急指挥中心值班员、调度员、业务科室与系统管理员;可按角色授权访问不同菜单与数据范围。
解决什么 将事件与任务、资源与位置、预案与流程、上报与留痕放在同一套系统里,减少多系统切换与信息断层。
典型场景 值守排班与缺班提醒;接警/调度/处置三类工作台与地图协同;资源(队伍/车辆/专家/物资等)全生命周期与看板;上级单位要求的数据报送;案例沉淀与知识检索;摄像头等设备的统一登记与能力扩展。

二、能力概览(按业务域)

下表帮助你在“菜单很多”时建立心理模型;具体以你环境中的菜单与权限为准。

业务域 能力要点
应急调度 排班、接警工作台、调度工作台、处置工作台;与地图、任务状态、参与方等联动。
数据报送 面向规定的报送链路(如上级报送、模板配置等),支持查询与留痕。
预案管理 预案维表、状态与发布/审批流(以实际配置为准)。
资源管理 资源看板、队伍/车辆/专家/装备/仓库/物资,以及供应、采购、征用等扩展能力。
案例与知识 案例库、知识库分类与内容管理。
系统集成 摄像头等设备接入与维护(可配合 ZLMediaKit 等流媒体能力,按部署启用)。
系统管理 / 监控 用户、角色、菜单、部门、字典、参数、通知公告、日志与系统监控等。
首页看板 KPI、趋势与分布类图表、最新事件/调度/待办/公告等;支持演示/联调环境变量(见下节与产品说明)。

地图:业务页中的地图能力依赖高德 Web 端;需在系统参数配置中维护 amap.api.key 等(前端从后端拉取,未配置时会有明确提示)


三、技术架构(简图)

flowchart LR
  subgraph client [浏览器]
    UI[Vue 2.6 前端 aegis-ui]
  end
  subgraph server [应用层]
    API[Spring Boot 单体 aegis-admin]
  end
  subgraph data [数据与缓存]
    MySQL[(MySQL)]
    Redis[(Redis)]
  end
  subgraph ext [按部署选装]
    ZLM[ZLMediaKit]
    JIT[Jitsi / Nginx 等]
  end
  UI -->|/dev-api 或 /prod-api 等同源前缀| API
  API --> MySQL
  API --> Redis
  API -.-> ZLM
  API -.-> JIT
  • 形态:当前为主应用 aegis-admin 聚合一组 aegis-* 业务模块的 Java 服务 + 独立前端工程,开发时通过 同域 API 前缀 访问后端(见下「本地联调」)。
  • 可选能力:视频、会议、容器编排等以 deployment 与业务开关为准,并非单机开发必需。

四、界面预览

以下为 images/ 目录中截图,展示浅色主区 + 深色侧栏、多标签页、地图与列表等典型布局。

说明 预览
主控制台 / 态势总览 主控制台
登录(双栏布局与产品要点) 登录页
应急调度 · 排班管理 排班管理
应急调度 · 接警工作台(含地图) 接警工作台
应急调度 · 调度工作台(统一调度地图与资源层) 调度工作台
应急调度 · 处置工作台(任务详情、事件位置等) 处置工作台
数据报送 · 上级报送 上级报送
预案管理 预案管理
资源管理 · 资源看板 资源看板
资源管理 · 队伍管理 队伍管理
资源管理 · 车辆管理(列表) 车辆管理-列表
资源管理 · 车辆管理(位置弹窗、深色顶栏) 车辆管理-位置
资源管理 · 专家管理 专家管理
资源管理 · 物资台账 物资台账
系统集成 · 摄像头管理 摄像头管理
案例库管理 案例库
系统管理 · 菜单管理 菜单管理

五、功能特性(摘要)

  • 应急调度闭环:从排班、接报、统一调度到处置工位的分工界面,配合地图与任务详情。
  • 资源全视图:看板 + 分资源类型的台账与能力标签、位置能力(依赖地图与设备侧数据质量)。
  • 预案与报送:预案全生命周期与报送口径可配置。
  • 视频与集成:摄像头等设备的登记与能力扩展。
  • 系统治理能力:多租户/多机构常规模型下的用户、角色、菜单、部门、参数与日志。
  • 可扩展看板与智能助手:看板可纯真实数据、可演示;顶栏智能助手为独立配置(Key 存浏览器、不经业务后端落库)——见产品说明。

六、仓库与模块

project-aegis-command/
├── aegis-admin/          # 可运行主应用,聚合各业务模块
├── aegis-framework/     # 安全、通用 Web 等框架能力
├── aegis-system/        # 系统管理
├── aegis-common/        # 公共类库
├── aegis-emergency/     # 应急管理
├── aegis-resource/      # 资源管理
├── aegis-camera/        # 摄像头 / 视频相关
├── aegis-case/          # 案例
├── aegis-knowledge/     # 知识库
├── aegis-notification/  # 通知
├── aegis-file/          # 文件
├── aegis-quartz/        # 定时任务
├── aegis-ui/            # 前端:Vue 2.6、Element UI、ECharts
├── deployment/          # MySQL 脚本、Docker Compose、Nginx 示例、本地起停脚本
└── docs/                 # 产品/联调类文档

七、技术栈

技术
后端 Spring Boot 2.5.15、Spring Security、MyBatis-Plus 3.5.1、Swagger 3.0、Quartz
数据 MySQL 8+、Redis 6+
前端 Vue 2.6、Vue Router、Vuex、Element UI 2.15、ECharts、Vue CLI / webpack
构建 Maven 3.x、Node.js 14+(用于前端)
部署(可选) Docker / Compose、Nginx、ZLMediaKit、Jitsi 等

八、环境要求

  • JDK 1.8+
  • Maven 3.6+
  • Node.js 14+(仅开发/构建 aegis-ui 时)
  • MySQL 8+、Redis 6+(与 application-druid.yml 等配置一致)
  • Docker 20.10+(仅在使用 Compose 时)

九、快速开始

9.1 使用 Docker Compose

  1. 克隆本仓库。
  2. 打开并修改 deployment/docker-compose.yml 中的数据库密码、端口、卷等。
  3. deployment 目录执行:

    docker compose up -d
    
  4. 访问地址与 API、Swagger 路径以 Compose 中端口与路由 为准,一般为 http://<主机>:<端口>/swagger-ui/index.html

Windows 本地一键(在 deployment 目录):

.\up-local.ps1

或双击 deployment\up-local.bat停止

.\down-local.ps1

.bat 在极少环境下对中文路径不友好,请直接用 PowerShell 执行上述 ps1

9.2 手动部署:数据库脚本顺序

deployment/mysql/ 下按文件名顺序(建议与下列一致)在 MySQL 中执行,并保证连接账号、库名与后端配置一致:

  1. 01-ruoyi.sql — 基础库表与预置管理数据
  2. 02-quartz.sql — 定时任务相关表
  3. 03-aegis.sql — 业务表结构
  4. 04-aegis-seed-data.sql(可选)— 演示/联调用种子数据,生产环境请评估后再执行,并在上线后修改预置密码与敏感参数

数据库名在脚本中默认为 aegis,若你改名,请同步 application-druid.yml

9.3 手动部署:启动后端

  1. 编辑 aegis-admin/src/main/resources/application-druid.ymlapplication.yml:数据源、Redis、文件路径 ruoyi.profile 等。
  2. 在项目根目录:

    mvn clean install -DskipTests
    cd aegis-admin
    mvn spring-boot:run
    
  3. 默认服务端口在 application.yml 中为 8080(可按需修改)。

9.4 本地联调:前端

cd aegis-ui
npm install --registry=https://registry.npmmirror.com
npm run dev

前后端如何接上:

  • 开发环境 aegis-ui/.env.developmentVUE_APP_BASE_API/dev-api
  • aegis-ui/vue.config.jsdevServer.proxy/dev-api 代理到 baseUrl 指向的后端,默认 http://localhost:8080,并去掉路径前缀。
  • 因此:先启动本机 8080 上的后端,再开前端;若后端不是 8080,请改 vue.config.js 里的 baseUrl
  • 开发服务默认 端口 80vue.config.jsport 可由环境变量或 npm 覆盖);若 80 被占用,可设置 port 环境变量或使用 npm run dev -- --port 端口号(以 Vue CLI 行为为准)。

生产构建与部署

npm run build:prod

dist 由 Nginx 等托管;生产环境 API 前缀在 .env.production 中一般为 /prod-api,需在网关或 Nginx 中反向代理到 Java 服务,并与后端 context-path、各 server 块中的 location 一致。示例可参考 deployment/nginx/(若存在)。

9.5 与部署相关的子数据 / 服务

  • 预置用户:主初始化脚本中常包含 adminry 等账号,默认密码需以库内与首次登录要求为准(常见为 123456上线后必须改密)。
  • 地图:业务地图使用前请在系统参数中配置 amap.api.key 等。
  • 智能助手VUE_APP_GITCC_API、同源 /gitcc-api 反代、基址与 /v1 约定、405 排障等

十、配置项速查

位置 作用
aegis-admin/.../application.yml 服务端口、上传限制、spring.profiles、Token 等全局项
aegis-admin/.../application-druid.yml 数据源、连接池、MyBatis 等
aegis-ui/.env.development VUE_APP_TITLEVUE_APP_BASE_APIVUE_APP_GITCC_API
aegis-ui/vue.config.js 开发代理到后端的 baseUrl、端口、GitCC 代理等
系统管理 - 参数设置 如高德 amap.api.key 等运行期业务参数
deployment/docker-compose.yml 容器化时的服务、环境变量与卷

十一、安全与合规模块(必读)

  • 预置账号与密码仅用于开发/验收;在公网或生产环境必须改密、启用强策略,并收拢管理后台访问来源。
  • 智能助手 API Key 仅存用户浏览器,经本系统业务接口持久化,请勿在自研代码中回传、记录或落库用户 Key。
  • 媒体与地图密钥:流媒体和地图厂商 key 应放在安全配置与权限可控的位置,并定期轮换。

十二、常见问题(FAQ)

  1. 前端能打开但接口全红 / 登不进
    检查后端是否监听 vue.config.jsbaseUrl 的地址与端口;若跨域,开发环境应走代理而非在浏览器里硬写全路径(除非 CORS 已配好)。
  2. 地图空白或报「未配置」
    参数设置中配置 amap.api.key,并检查浏览器控制台与网络请求。
  3. 智能助手 401 / 405
    基址、路径 /v1同源反代是否按文档配置;见产品说明 §5、§6
  4. 表不存在或缺少菜单
    确认 deployment/mysql 已按序导入且库名application-druid 中一致。

十三、参与贡献

欢迎通过 Issue 描述问题、通过合并请求(Pull Request)提交改进。建议单次提交聚焦单一主题并写清复现/验证方式,便于审阅。