# OpenATC-Admin
**Repository Path**: Debugman/open-atc-admin
## Basic Information
- **Project Name**: OpenATC-Admin
- **Description**: OpenATC管理平台,包含设备管理,设备配置,权限管理,绿波路线,勤务路线等多种功能。通讯协议开源开放,支持对接多种协议的交通信号控制设备。具有最实用的信控优化算法,并可对接OpenATC虚拟环境,对更高级的信控算法进行扩展和验证。
- **Primary Language**: Java
- **License**: MulanPSL-2.0
- **Default Branch**: dev
- **Homepage**: http://www.openatc.org.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 123
- **Created**: 2025-03-30
- **Last Updated**: 2025-03-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## OpenATC-Admin
### 简介
- 这是一款开源的现代交通信号控制软件,可应用于小型、大型、特殊路口等多种场景,并且包含了灯控、检测、故障以及用户管理等多种功能,快来使用它吧!
---
### 演示预览
- https://www.openatc.org.cn/demo/openatc/#/login
- 用户名/密码:demo_user/123!test
---
### 准备工作
在进行开发之前,您需要安装以下程序:
- git
- Java 1.8+
- Maven 3.3.9+
- npm 5 or above
- Vue
---
### 前端部分
#### 技术栈
| Component | 技术 |
| -------- | -------- |
| 框架 | Vue|
| 构建工具 | npm |
| UI | element-ui |
| 语法 | ES2015+ |
| HTTP客户端 | axios |
#### 开发环境部署
``` bash
# 克隆项目
git clone https://gitee.com/openatc/open-atc-admin.git
# 打包OpenATC-Config-web项目(该项目为平台主项目的组件项目,故需要提前打包,不然直接编译会出现找不到edgebase-front依赖包的情况。)
# 进入目录 open-atc-admin/ OpenATC-Admin-ui / OpenATC-Configer-web , 执行以下命令:
npm install
npm run package:prod
# 安装OpenATC-Admin-web主项目依赖
# 进入目录 open-atc-admin/ OpenATC-Admin-ui / OpenATC-Admin-web , 执行以下命令:
npm install
# 建议不要用cnpm 安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev
# 访问
访问地址为:http://localhost:9528
# 构建测试环境
npm run build:stage
# 构建生成环境
npm run build:prod
# 预览发布环境效果 + 静态资源分析
npm run preview --report
```
#### 第三方通过url跳转配置界面说明
##### 跳转url
`https://dolphin-dev.kedacom.com/openatc/#/overviewNew/index`
##### url传参说明
| 参数名 | 必选 | 类型 | 说明 | 可选项 |
| -------- | -------- | -------- | -------- | -------- |
| agentid | 是 | number | 设备id | 10001 |
| isfromatc | 否 | boolean (default: false) | 控制国际化切换、登出、修改密码功能是否可见,传true则不可见 | true |
| hideMenu | 否 | boolean (default: false) | 控制左侧菜单栏以及切换到文字界面的图标是否可见,传true则不可见 | true |
| shrink | 否 | number | 首页主内容区域缩放比例(取值为0~1之间) | 0.8 |
| graphicMode | 否 | boolean (default: false) | 控制首页只显示路口图 | true |
##### 举例
`https://dolphin-dev.kedacom.com/openatc/#/overviewNew/index?agentid=10001&isfromatc=true&hideMenu=true`
#### chrome浏览器下,脚本页面无法正常登陆解决方法
##### 原因
Chrome浏览器默认限制了第三方Cookie,这将影响正常登录,需要更改浏览器的隐私设置,解除限制后重试
##### 解决方法
chrome://flags/ 把这句复制到浏览器,回车
SameSite by default cookies
Cookies without SameSite must be secure
找到上面这两两项设置成 Disable即可
#### 系统配置参数
##### 可用参数说明
| 模块 | 名称 | 说明 | 是否必传 | 可选值 |
| -------- | -------- | -------- | -------- | -------- |
| theme | theme | 系统默认加载的主题,dark代表加载深色系主题,不填或light加载浅色主题 | 否 | dark/light |
| theme | logo | 系统logo名称 | 否 | openATC |
| theme | information | 登录页提示信息 | 否 | 演示用户名:test001,演示用户密码:1234567 |
| language | language | 默认加载的语言:zh代表中文,en代表英文 | 否 | zh/en |
| media | mediaWebsocketUrl | 视频ws流媒体地址 | 否 | wss://192.168.7.183/ |
| jupyter | url | jupyter跳转地址 | 否 | http://192.168.14.168:8888/tree |
| gis | zoom | 地图默认缩放等级,推荐12 | 否 | 0~18 |
| gis | maxZoom | 地图最大缩放等级,推荐18 | 否 | 0~18 |
| gis | minZoom | 地图最小缩放等级,推荐12 | 否 | 0~18|
| gis | center | 地图默认中心点,可填:[31.22784056, 121.68148040] | 是 | [Lat, Lng] |
| gis | gisNormal | 2D地图本地服务资源地址 | 否 | http://192.168.14.168:7080/PBS/rest/services/MyPBSService1/MapServer/tile/{z}/{y}/{x} |
| gis | gisStatellite | 卫星图本地服务资源地址 | 否 | http://192.168.14.168:7081/PBS/rest/services/MyPBSService2/MapServer/tile/{z}/{y}/{x} |
| gis | gisNormalAnnotationZh | 地图中文注记资源地址 | 否 | https://t3.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILECOL={x}&TILEROW={y}&TILEMATRIX={z}&tk=您的密钥 |
| gis | gisNormalAnnotationEn | 地图英文注记资源地址 | 否 | https://t3.tianditu.gov.cn/eva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=eva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILECOL={x}&TILEROW={y}&TILEMATRIX={z}&tk=您的密钥 |
| gis | gisBoundLeftTop | 地图边界的左上角纬度经度,可填:[31.36360615, 121.30622863] | 否 | [Lat, Lng] |
| gis | gisBoundRightBottom | 地图边界的右下角纬度经度,可填:[31.11040156, 121.95270538] | 否 | [Lat, Lng] |
| gis | isShowVideo | gis勤务路线是否显示视频:true代表显示视频(前提是有视频资源),不填或false代表不显示视频 | 否 | true/false |
| gis | isShowGisMenu | 首页是否显示地图:true代表显示,不填或false代表不显示 | 是 | true/false |
| home | homesimple | 不开启首页地图的前提下,是否加载简单版首页:true代表显示,不填或false代表不显示 | 是 | true/false |
| areaOptimize | isShowAreaOptimizeMenu | 是否显示区域优化页面:true代表显示,不填或false代表不显示 | 是 | true/false |
### 注意:
isShowGisMenu 控制地图是否显示,默认不显示。
gisNormal 是2D地图服务参数,需要自行。
gisStatellite 是3D地图服务参数,需要自行配置。
目前可支持OSM地图、高德地图和百度地图。
例如高德地图,离线地图配置,详情参考:https://blog.51cto.com/bigemap/4997736#:~:text=%E9%AB%98%E5%BE%B7%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E5%BC%80%E5%8F%91%E4%B8%BB%E8%A6%81%E6%9C%89%E4%B8%A4%E9%83%A8%E5%88%86%E7%BB%84%E6%88%90%EF%BC%9A1%E3%80%81%E8%8E%B7%E5%8F%96%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E6%95%B0%E6%8D%AE%EF%BC%9B%E5%9B%A0%E4%B8%BA%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E4%B8%80%E8%88%AC%E9%83%BD%E6%98%AF%E5%B1%80%E5%9F%9F%E7%BD%91%EF%BC%8C%E6%89%80%E4%BB%A5%E9%9C%80%E8%A6%81%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E6%95%B0%E6%8D%AE%E6%94%BE%E5%9C%A8%E5%86%85%E7%BD%91%E4%B8%AD%E4%BD%BF%E7%94%A8%EF%BC%9B2%E3%80%81%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA%E4%BB%A5%E5%8F%8A%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91%E6%8E%A5%E5%8F%A3%E6%8F%90%E4%BE%9B%EF%BC%8C%E7%A6%BB%E7%BA%BF%E5%9C%B0%E5%9B%BE%E6%98%AF%E4%B8%80%E7%A7%8D%E6%9C%8D%E5%8A%A1%EF%BC%8C%E5%B0%B1%E5%83%8F%E6%88%91%E4%BB%ACApache%E6%8F%90%E4%BE%9B%E7%9A%84WEB%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%80%E6%A0%B7%EF%BC%8C%E4%BB%96%E6%98%AF%E4%B8%80%E7%A7%8D%E5%87%86%E4%BB%AC%E7%9A%84%E5%9C%B0%E5%9B%BE%E6%9C%8D%E5%8A%A1%EF%BC%9A%E6%8F%90%E4%BE%9B%E4%BA%86%E5%8C%85%E6%8B%AC,WEB%E6%9C%8D%E5%8A%A1%E3%80%81TMS%E6%9C%8D%E5%8A%A1%E3%80%81WMTS%E6%9C%8D%E5%8A%A1%E7%AD%89%E7%AD%89%E3%80%82
#### 界面展示



---
### 后端部分
#### 技术栈
| Component | 技术 |
| -------- | -------- |
| 框架 | SpringBoot |
| 安全 | Shiro + JWT|
| 数据库 | PostgreSQL(14+) |
| 持久化 | JPA |
| 构建工具 | Maven (3.5.2+) |
| JDK | 11 |
#### 开发环境部署
##### 一、源码构建
- 下载源码
```
git clone https://gitee.com/openatc/open-atc-admin.git
cd open-atc-admin/OpenATC-Admin-server
```
- 使用以下命令构建
```
mvn clean install
```
这会把静态资源、编译文件打包进JAR包。
##### 二、IDE
保证你的IDE配置了JDK 11和Maven 3.5.2+。
以下测试使用IntelliJ IDEA 2022.3
1、导入项目到IDEA
File -> New -> Project from Existing Sources -> Navigate to directory -> Select pom.xml
2、创建数据库
3、修改配置文件
(1)配置文件位置:OpenATC-Admin/OpenATC-Admin-server/agent/src/main/application.properties
(2)配置参数说明(必须配置的参数):
|属性|说明| 默认值 |
| :-------------------------: | --------------------------------------------------------- | --------- |
| server.port | 服务端口 |10003 |
| server.servlet.context-path | 服务根目录 |/openatc(不可修改) |
| spring.datasource.url | 数据源url | |
| spring.datasource.username | 数据源用户名 | |
| spring.datasource.password | 数据源密码 | |
| spring.redis.host | redis地址 | |
| spring.redis.port | redis端口 | 6379 |
| spring.redis.password | redis密码 | |
| agent.server.shiro | 是否开启shiro | true |
| agent.comm.port.scp | scp协议(内部协议)通信端口 | 31002 |
| agent.comm.port.ocp | ocp协议(内部协议)通信端口 | 31003 |
| datebasename | 数据库名称 | openatc |
| schema | 使用的schema |public|
4、启动项目
(0)说明:若运行了前端项目,可忽略步骤(1);
(1)将打包好的前端文件解压后放入OpenATC-Admin/OpenATC-Admin-server/目录下;
(2)运行启动类:OpenATC-Admin/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/AgentApplication;
5、访问项目:
http://服务运行环境ip:服务端口号(配置文件中server.port对应的值)/openatc
6、平台使用手册:
https://www.openatc.org.cn/
---
### 注意
- 为了方便开发,我们提供了这种前后端分离的部署模式,主要的好处是支持前端热部署,在这种模式下,前端会通过9528端口访问后端的restful api接口,获取数据, 这将导致跨域访问的问题。因此我们在`OpenATC-admin-ui/config/index.js`添加了支持跨域访问的配置,当前端通过`npm run dev`单独启动时,这些配置将被激活,允许跨域访问
---
### License
- Mulan PSL v2
---
### 联系我们
- 在Gitee Issues中提问
- 电子邮件:openatc@kedacom.com