# OpenATC-Admin
**Repository Path**: repoAlex/open-atc-admin
## Basic Information
- **Project Name**: OpenATC-Admin
- **Description**: OpenATC管理平台,包含设备管理,设备配置,权限管理,绿波路线,勤务路线等多种功能。通讯协议开源开放,支持对接多种协议的交通信号控制设备。具有最实用的信控优化算法,并可对接OpenATC虚拟环境,对更高级的信控算法进行扩展和验证。
- **Primary Language**: Java
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: http://www.openatc.org.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 123
- **Created**: 2022-07-14
- **Last Updated**: 2022-07-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## OpenATC-Admin
### 简介
- 这是一款开源的现代交通信号控制软件,可应用于小型、大型、特殊路口等多种场景,并且包含了灯控、检测、故障以及用户管理等多种功能,快来使用它吧!
---
### 准备工作
在进行开发之前,您需要安装以下程序:
- 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://github.com/apache/****-admin.git
# 打包OpenATC-Config-web项目(该项目为平台主项目的组件项目,故需要提前打包,不然直接编译会出现找不到edgebase-front依赖包的情况。)
npm install
npm run package
# 安装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 |
| 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 | 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 |
### 注意:
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(10.1+) |
| 持久化 | JPA |
| 构建工具 | Maven (3.5.2+) |
| JDK | 1.8 |
#### 开发环境部署
1、Clone project
git clone https://gitee.com/openatc/open-atc-admin.git
2、Maven管理项目
(1)使用IDE工具(推荐Idea)打开项目;
(2)右键OpenATC-Admin/OpenATC-Admin-server/pom.xml文件,Add as Maven Project,将项目交给Maven管理;
(3)等依赖下载完毕;
3、创建数据库
创建数据库(openatc)
4、修改配置文件
(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端口 |
| spring.redis.password | redis密码 |
| agent.server.shiro | 是否开启shiro(默认true) |
| agent.comm.thread.count.scp | scp协议线程数量(内部协议) |
| agent.comm.thread.count.ocp | ocp协议线程数量(内部协议) |
5、启动项目
(0)说明:若运行了前端项目,可忽略步骤(1)
(1)下载前端打包文件:版本附件中(static.rar),解压后放入OpenATC-Admin/OpenATC-Admin-server/目录下;
(2)启动类所在位置:OpenATC-Admin/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/AgentApplication
(3)运行启动类
6、访问项目:
http://服务运行环境ip:服务端口号(配置文件中server.port对应的值)/openatc
7、平台使用手册:
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