Compare commits
3 Commits
master
...
platform-a
Author | SHA1 | Date |
---|---|---|
4670101279 | c267e8fb88 | 2 years ago |
4670101279 | b6379a2c8b | 2 years ago |
zhangn | 6bb2c98e8b | 2 years ago |
114 changed files with 435 additions and 5182 deletions
@ -1,97 +1,2 @@ |
|||||||
<p align="center"> |
程序运行需要将本地jar包安装到maven仓库 |
||||||
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png"> |
mvn install:install-file -Dfile=lib/jna.jar -DgroupId=com.sun -DartifactId=jna -Dversion=1.0 -Dpackaging=jar |
||||||
</p> |
|
||||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.2</h1> |
|
||||||
<h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4> |
|
||||||
<p align="center"> |
|
||||||
<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a> |
|
||||||
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.2-brightgreen.svg"></a> |
|
||||||
<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a> |
|
||||||
</p> |
|
||||||
|
|
||||||
## 平台简介 |
|
||||||
|
|
||||||
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 |
|
||||||
|
|
||||||
* 前端采用Vue、Element UI。 |
|
||||||
* 后端采用Spring Boot、Spring Security、Redis & Jwt。 |
|
||||||
* 权限认证使用Jwt,支持多终端认证系统。 |
|
||||||
* 支持加载动态权限菜单,多方式轻松权限控制。 |
|
||||||
* 高效率开发,使用代码生成器可以一键生成前后端代码。 |
|
||||||
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。 |
|
||||||
* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。 |
|
||||||
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud) |
|
||||||
* 特别鸣谢:[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web)。 |
|
||||||
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip) |
|
||||||
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console) |
|
||||||
|
|
||||||
## 内置功能 |
|
||||||
|
|
||||||
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 |
|
||||||
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 |
|
||||||
3. 岗位管理:配置系统用户所属担任职务。 |
|
||||||
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 |
|
||||||
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 |
|
||||||
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 |
|
||||||
7. 参数管理:对系统动态配置常用参数。 |
|
||||||
8. 通知公告:系统通知公告信息发布维护。 |
|
||||||
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 |
|
||||||
10. 登录日志:系统登录日志记录查询包含登录异常。 |
|
||||||
11. 在线用户:当前系统中活跃用户状态监控。 |
|
||||||
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 |
|
||||||
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 |
|
||||||
14. 系统接口:根据业务代码自动生成相关的api接口文档。 |
|
||||||
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 |
|
||||||
16. 缓存监控:对系统的缓存信息查询,命令统计等。 |
|
||||||
17. 在线构建器:拖动表单元素生成相应的HTML代码。 |
|
||||||
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 |
|
||||||
|
|
||||||
## 在线体验 |
|
||||||
|
|
||||||
- admin/admin123 |
|
||||||
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 |
|
||||||
|
|
||||||
演示地址:http://vue.ruoyi.vip |
|
||||||
文档地址:http://doc.ruoyi.vip |
|
||||||
|
|
||||||
## 演示图 |
|
||||||
|
|
||||||
<table> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td> |
|
||||||
</tr> |
|
||||||
<tr> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td> |
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td> |
|
||||||
</tr> |
|
||||||
</table> |
|
||||||
|
|
||||||
|
|
||||||
## 若依前后端分离交流群 |
|
||||||
|
|
||||||
QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) 点击按钮入群。 |
|
||||||
|
@ -1,43 +0,0 @@ |
|||||||
package com.ruoyi.api.app; |
|
||||||
|
|
||||||
import com.ruoyi.api.controller.AbstractApiController; |
|
||||||
import com.ruoyi.api.params.AlarmDataParams; |
|
||||||
import com.ruoyi.api.params.WaterDataParams; |
|
||||||
import com.ruoyi.api.service.AlarmDataApiService; |
|
||||||
import com.ruoyi.api.service.WaterDataApiService; |
|
||||||
import com.ruoyi.code.warning.service.IWaAlarmService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.validator.ValidatorUtils; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.RestController; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 系统对外接口-检测信息 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/api") |
|
||||||
@Slf4j |
|
||||||
public class AlarmDataApiController extends AbstractApiController { |
|
||||||
|
|
||||||
@Resource |
|
||||||
private AlarmDataApiService alarmDataApiService; |
|
||||||
/** |
|
||||||
* 预警数据查询 |
|
||||||
* |
|
||||||
* @param params |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@PostMapping("v1/alarm_data/query") |
|
||||||
public R query(@RequestBody AlarmDataParams params) { |
|
||||||
log.info("[预警数据查询接口查询参数为{}]", params); |
|
||||||
ValidatorUtils.validateV2(params); |
|
||||||
return alarmDataApiService.query(params); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,41 +0,0 @@ |
|||||||
package com.ruoyi.api.app; |
|
||||||
|
|
||||||
import com.ruoyi.api.controller.AbstractApiController; |
|
||||||
import com.ruoyi.api.params.AlarmJobParams; |
|
||||||
import com.ruoyi.api.service.AlarmJobService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.validator.ValidatorUtils; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.RestController; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 系统对外接口-检测信息 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/job") |
|
||||||
@Slf4j |
|
||||||
public class AlarmJobController extends AbstractApiController { |
|
||||||
|
|
||||||
@Resource |
|
||||||
private AlarmJobService alarmJobService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 报警数据接收 |
|
||||||
* |
|
||||||
* @param params |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@PostMapping("v1/alarm/add") |
|
||||||
public R query(@RequestBody AlarmJobParams params) { |
|
||||||
log.info("[报警数据接收接口数据为:{}]", params); |
|
||||||
ValidatorUtils.validateV2(params); |
|
||||||
return alarmJobService.add(params); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
package com.ruoyi.api.app; |
|
||||||
|
|
||||||
import com.ruoyi.api.domain.RegularTime; |
|
||||||
import com.ruoyi.api.service.IRegularTimeService; |
|
||||||
import com.ruoyi.api.util.RegularTimeUtil; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.StringUtils; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.RestController; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
/** |
|
||||||
* 定时报Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-23 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/api/regular/time") |
|
||||||
public class RegularTimeController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IRegularTimeService regularTimeService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
public R add(String asciiCode){ |
|
||||||
if (StringUtils.isEmpty(asciiCode)){ |
|
||||||
return R.error("asciiCode不能为空!"); |
|
||||||
} |
|
||||||
RegularTime regularTime = RegularTimeUtil.hourlyReportASCII(asciiCode); |
|
||||||
regularTimeService.save(regularTime); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,66 +0,0 @@ |
|||||||
package com.ruoyi.api.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 定时报对象 regular_time |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-23 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("regular_time") |
|
||||||
public class RegularTime implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 中心站地址 */ |
|
||||||
private String centralStationAddr; |
|
||||||
|
|
||||||
/** 遥测站地址 */ |
|
||||||
private String stationAddr; |
|
||||||
|
|
||||||
/** 密码 */ |
|
||||||
private String password; |
|
||||||
|
|
||||||
/** 功能码 */ |
|
||||||
private String code; |
|
||||||
|
|
||||||
/** 报文上下行标识和长度 */ |
|
||||||
private String msgIdAndLength; |
|
||||||
|
|
||||||
/** 流水号 */ |
|
||||||
private String serialNum; |
|
||||||
|
|
||||||
/** 发报时间 */ |
|
||||||
private String dispatchTime; |
|
||||||
|
|
||||||
/** 遥测站分类码 */ |
|
||||||
private String stationTypeCode; |
|
||||||
|
|
||||||
/** 观测时间 */ |
|
||||||
private String observationTime; |
|
||||||
|
|
||||||
/** 瞬时水位 */ |
|
||||||
private String waterLevel; |
|
||||||
|
|
||||||
/** 电压 */ |
|
||||||
private String voltage; |
|
||||||
|
|
||||||
/** 温度 */ |
|
||||||
private String temperature; |
|
||||||
|
|
||||||
/** 校验 */ |
|
||||||
private String checkCode; |
|
||||||
|
|
||||||
} |
|
@ -1,40 +0,0 @@ |
|||||||
package com.ruoyi.api.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat; |
|
||||||
import lombok.Data; |
|
||||||
import org.springframework.format.annotation.DateTimeFormat; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("xs_alarm") |
|
||||||
public class XsAlarmEntity implements Serializable { |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
|
|
||||||
@TableId(type = IdType.AUTO) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
private String name; |
|
||||||
|
|
||||||
private String level; |
|
||||||
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|
||||||
private Date alarmTime; |
|
||||||
|
|
||||||
private String longitudeAndLatitude; |
|
||||||
|
|
||||||
private String description; |
|
||||||
|
|
||||||
private Long mainId; |
|
||||||
|
|
||||||
} |
|
@ -1,36 +0,0 @@ |
|||||||
package com.ruoyi.api.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat; |
|
||||||
import lombok.Data; |
|
||||||
import org.springframework.format.annotation.DateTimeFormat; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("xs_alarm_list") |
|
||||||
public class XsAlarmListEntity implements Serializable { |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
|
|
||||||
@TableId(type = IdType.AUTO) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
private String sendTitle; |
|
||||||
|
|
||||||
private String sendPhone; |
|
||||||
|
|
||||||
private String sendContent; |
|
||||||
|
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|
||||||
private Date sendEffectiveTime; |
|
||||||
|
|
||||||
} |
|
@ -1,34 +0,0 @@ |
|||||||
package com.ruoyi.api.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat; |
|
||||||
import lombok.Data; |
|
||||||
import org.springframework.format.annotation.DateTimeFormat; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("xs_alarm_user") |
|
||||||
public class XsAlarmUserEntity implements Serializable { |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
|
|
||||||
@TableId(type = IdType.AUTO) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
private String name; |
|
||||||
|
|
||||||
private String sex; |
|
||||||
|
|
||||||
private String phone; |
|
||||||
|
|
||||||
private Long mainId; |
|
||||||
|
|
||||||
} |
|
@ -1,17 +0,0 @@ |
|||||||
package com.ruoyi.api.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import com.ruoyi.api.domain.RegularTime; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-23 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface RegularTimeMapper extends BaseMapper<RegularTime> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.api.domain.XsAlarmListEntity; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface XsAlarmListMapper extends BaseMapper<XsAlarmListEntity> { |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.api.domain.XsAlarmEntity; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface XsAlarmMapper extends BaseMapper<XsAlarmEntity> { |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.api.domain.XsAlarmUserEntity; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface XsAlarmUserMapper extends BaseMapper<XsAlarmUserEntity> { |
|
||||||
} |
|
@ -1,16 +0,0 @@ |
|||||||
package com.ruoyi.api.params; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank; |
|
||||||
import javax.validation.constraints.NotNull; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class AlarmDataParams { |
|
||||||
|
|
||||||
private Long stnmId; |
|
||||||
|
|
||||||
private String startTime; |
|
||||||
|
|
||||||
private String endTime; |
|
||||||
} |
|
@ -1,17 +0,0 @@ |
|||||||
package com.ruoyi.api.params; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class AlarmJobDataParams { |
|
||||||
|
|
||||||
private String name; |
|
||||||
|
|
||||||
private String level; |
|
||||||
|
|
||||||
private String alarmTime; |
|
||||||
|
|
||||||
private String longitudeAndLatitude; |
|
||||||
|
|
||||||
private String description; |
|
||||||
} |
|
@ -1,21 +0,0 @@ |
|||||||
package com.ruoyi.api.params; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class AlarmJobParams { |
|
||||||
|
|
||||||
private String sendTitle; |
|
||||||
|
|
||||||
private String sendPhone; |
|
||||||
|
|
||||||
private String sendContent; |
|
||||||
|
|
||||||
private String sendEffectiveTime; |
|
||||||
|
|
||||||
private AlarmJobDataParams data; |
|
||||||
|
|
||||||
private List<AlarmJobSendUserParams> sendUser; |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.params; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class AlarmJobSendUserParams { |
|
||||||
|
|
||||||
private String name; |
|
||||||
|
|
||||||
private String sex; |
|
||||||
|
|
||||||
private String phone; |
|
||||||
} |
|
@ -1,31 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.ruoyi.api.params.AlarmDataParams; |
|
||||||
import com.ruoyi.api.params.WaterDataParams; |
|
||||||
import com.ruoyi.code.warning.domain.WaAlarm; |
|
||||||
import com.ruoyi.code.warning.service.IWaAlarmService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
@Service |
|
||||||
public class AlarmDataApiService { |
|
||||||
|
|
||||||
@Resource |
|
||||||
private IWaAlarmService waAlarmService; |
|
||||||
|
|
||||||
public R query(AlarmDataParams params) { |
|
||||||
Map<String,Object> map = new HashMap<>(); |
|
||||||
map.put("stnmId",params.getStnmId()); |
|
||||||
map.put("startTime",params.getStartTime()); |
|
||||||
map.put("endTime",params.getEndTime()); |
|
||||||
|
|
||||||
List<WaAlarm> list = waAlarmService.queryAlarm(map); |
|
||||||
return R.ok().put("data", list); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,65 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.ruoyi.api.domain.XsAlarmEntity; |
|
||||||
import com.ruoyi.api.domain.XsAlarmListEntity; |
|
||||||
import com.ruoyi.api.domain.XsAlarmUserEntity; |
|
||||||
import com.ruoyi.api.params.AlarmJobDataParams; |
|
||||||
import com.ruoyi.api.params.AlarmJobParams; |
|
||||||
import com.ruoyi.api.params.AlarmJobSendUserParams; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.DateUtils; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
@Service |
|
||||||
public class AlarmJobService { |
|
||||||
|
|
||||||
@Resource |
|
||||||
private XsAlarmListService xsAlarmListService; |
|
||||||
@Resource |
|
||||||
private XsAlarmUserService xsAlarmUserService; |
|
||||||
@Resource |
|
||||||
private XsAlarmService xsAlarmService; |
|
||||||
|
|
||||||
public R add(AlarmJobParams params) { |
|
||||||
XsAlarmListEntity list = new XsAlarmListEntity(); |
|
||||||
list.setSendTitle(params.getSendTitle()); |
|
||||||
list.setSendContent(params.getSendContent()); |
|
||||||
list.setSendEffectiveTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, params.getSendEffectiveTime())); |
|
||||||
xsAlarmListService.save(list); |
|
||||||
|
|
||||||
List<AlarmJobSendUserParams> sendUser = params.getSendUser(); |
|
||||||
if(!sendUser.isEmpty()){ |
|
||||||
XsAlarmUserEntity user; |
|
||||||
List<XsAlarmUserEntity> userList = new ArrayList<>(); |
|
||||||
for (AlarmJobSendUserParams u : sendUser) { |
|
||||||
user = new XsAlarmUserEntity(); |
|
||||||
user.setMainId(list.getId()); |
|
||||||
user.setName(u.getName()); |
|
||||||
user.setPhone(u.getPhone()); |
|
||||||
user.setSex(u.getSex()); |
|
||||||
userList.add(user); |
|
||||||
} |
|
||||||
xsAlarmUserService.saveBatch(userList); |
|
||||||
} |
|
||||||
|
|
||||||
AlarmJobDataParams data = params.getData(); |
|
||||||
XsAlarmEntity alarm = new XsAlarmEntity(); |
|
||||||
if(data != null){ |
|
||||||
alarm.setMainId(list.getId()); |
|
||||||
alarm.setName(data.getName()); |
|
||||||
alarm.setAlarmTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, data.getAlarmTime())); |
|
||||||
alarm.setDescription(data.getDescription()); |
|
||||||
alarm.setLongitudeAndLatitude(data.getLongitudeAndLatitude()); |
|
||||||
alarm.setLevel(data.getLevel()); |
|
||||||
xsAlarmService.save(alarm); |
|
||||||
} |
|
||||||
|
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.api.domain.RegularTime; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-23 |
|
||||||
*/ |
|
||||||
public interface IRegularTimeService extends IService<RegularTime> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
} |
|
@ -1,12 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.api.domain.XsAlarmListEntity; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
public interface XsAlarmListService extends IService<XsAlarmListEntity> { |
|
||||||
} |
|
||||||
|
|
@ -1,12 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.api.domain.XsAlarmEntity; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
public interface XsAlarmService extends IService<XsAlarmEntity> { |
|
||||||
} |
|
||||||
|
|
@ -1,12 +0,0 @@ |
|||||||
package com.ruoyi.api.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.api.domain.XsAlarmUserEntity; |
|
||||||
|
|
||||||
/** |
|
||||||
* 对外接口表 |
|
||||||
* |
|
||||||
*/ |
|
||||||
public interface XsAlarmUserService extends IService<XsAlarmUserEntity> { |
|
||||||
} |
|
||||||
|
|
@ -1,34 +0,0 @@ |
|||||||
package com.ruoyi.api.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.api.domain.RegularTime; |
|
||||||
import com.ruoyi.api.mapper.RegularTimeMapper; |
|
||||||
import com.ruoyi.api.service.IRegularTimeService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-23 |
|
||||||
*/ |
|
||||||
@Service("regularTimeService") |
|
||||||
public class RegularTimeServiceImpl extends ServiceImpl<RegularTimeMapper, RegularTime> implements IRegularTimeService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
IPage<RegularTime> page = this.page( |
|
||||||
new Query<RegularTime>().getPage(params), |
|
||||||
new QueryWrapper<RegularTime>() |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.api.domain.XsAlarmListEntity; |
|
||||||
import com.ruoyi.api.mapper.XsAlarmListMapper; |
|
||||||
import com.ruoyi.api.service.XsAlarmListService; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
|
|
||||||
@Service("xsAlarmListService") |
|
||||||
public class XsAlarmListServiceImpl extends ServiceImpl<XsAlarmListMapper, XsAlarmListEntity> implements XsAlarmListService { |
|
||||||
|
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.api.domain.XsAlarmEntity; |
|
||||||
import com.ruoyi.api.mapper.XsAlarmMapper; |
|
||||||
import com.ruoyi.api.service.XsAlarmService; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
|
|
||||||
@Service("xsAlarmService") |
|
||||||
public class XsAlarmServiceImpl extends ServiceImpl<XsAlarmMapper, XsAlarmEntity> implements XsAlarmService { |
|
||||||
|
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.ruoyi.api.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.api.domain.XsAlarmUserEntity; |
|
||||||
import com.ruoyi.api.mapper.XsAlarmUserMapper; |
|
||||||
import com.ruoyi.api.service.XsAlarmUserService; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
|
|
||||||
@Service("xsAlarmUserService") |
|
||||||
public class XsAlarmUserServiceImpl extends ServiceImpl<XsAlarmUserMapper, XsAlarmUserEntity> implements XsAlarmUserService { |
|
||||||
|
|
||||||
} |
|
@ -1,127 +0,0 @@ |
|||||||
package com.ruoyi.api.util; |
|
||||||
import org.apache.commons.codec.binary.Hex; |
|
||||||
import org.apache.commons.lang3.Validate; |
|
||||||
|
|
||||||
import java.security.GeneralSecurityException; |
|
||||||
import java.security.MessageDigest; |
|
||||||
import java.security.SecureRandom; |
|
||||||
import java.util.Random; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author wcy |
|
||||||
* @date 2021/8/13 下午3:03 |
|
||||||
*/ |
|
||||||
|
|
||||||
public class Digests { |
|
||||||
private static SecureRandom random = new SecureRandom(); |
|
||||||
/** |
|
||||||
* 加密遵循RFC2671规范 将相关参数加密生成一个MD5字符串,并返回 |
|
||||||
*/ |
|
||||||
public static String http_da_calc_HA1(String username, String realm, String password, |
|
||||||
String nonce, String nc, String cnonce, String qop, |
|
||||||
String method, String uri, String algorithm) { |
|
||||||
String HA1, HA2; |
|
||||||
if ("MD5-sess".equals(algorithm)) { |
|
||||||
HA1 = HA1_MD5_sess(username, realm, password, nonce, cnonce); |
|
||||||
} else { |
|
||||||
HA1 = HA1_MD5(username, realm, password); |
|
||||||
} |
|
||||||
byte[] md5Byte = md5(HA1.getBytes()); |
|
||||||
HA1 = new String(Hex.encodeHex(md5Byte)); |
|
||||||
|
|
||||||
md5Byte = md5(HA2(method, uri).getBytes()); |
|
||||||
HA2 = new String(Hex.encodeHex(md5Byte)); |
|
||||||
|
|
||||||
String original = HA1 + ":" + (nonce + ":" + nc + ":" + cnonce + ":" + qop) + ":" + HA2; |
|
||||||
|
|
||||||
md5Byte = md5(original.getBytes()); |
|
||||||
return new String(Hex.encodeHex(md5Byte)); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* algorithm值为MD5时规则 |
|
||||||
*/ |
|
||||||
private static String HA1_MD5(String username, String realm, String password) { |
|
||||||
return username + ":" + realm + ":" + password; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* algorithm值为MD5-sess时规则 |
|
||||||
*/ |
|
||||||
private static String HA1_MD5_sess(String username, String realm, String password, String nonce, String cnonce) { |
|
||||||
// MD5(username:realm:password):nonce:cnonce
|
|
||||||
|
|
||||||
String s = HA1_MD5(username, realm, password); |
|
||||||
byte[] md5Byte = md5(s.getBytes()); |
|
||||||
String smd5 = new String(Hex.encodeHex(md5Byte)); |
|
||||||
|
|
||||||
return smd5 + ":" + nonce + ":" + cnonce; |
|
||||||
} |
|
||||||
|
|
||||||
private static String HA2(String method, String uri) { |
|
||||||
return method + ":" + uri; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 对输入字符串进行md5散列. |
|
||||||
*/ |
|
||||||
public static byte[] md5(byte[] input) { |
|
||||||
return digest(input, "MD5", null, 1); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 对字符串进行散列, 支持md5与sha1算法. |
|
||||||
*/ |
|
||||||
private static byte[] digest(byte[] input, String algorithm, byte[] salt, int iterations) { |
|
||||||
try { |
|
||||||
MessageDigest digest = MessageDigest.getInstance(algorithm); |
|
||||||
|
|
||||||
if (salt != null) { |
|
||||||
digest.update(salt); |
|
||||||
} |
|
||||||
|
|
||||||
byte[] result = digest.digest(input); |
|
||||||
|
|
||||||
for (int i = 1; i < iterations; i++) { |
|
||||||
digest.reset(); |
|
||||||
result = digest.digest(result); |
|
||||||
} |
|
||||||
return result; |
|
||||||
} catch (GeneralSecurityException e) { |
|
||||||
throw new RuntimeException(e); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 随机生成numBytes长度数组 |
|
||||||
* @param numBytes |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public static byte[] generateSalt(int numBytes) { |
|
||||||
Validate.isTrue(numBytes > 0, "numBytes argument must be a positive integer (1 or larger)", (long)numBytes); |
|
||||||
byte[] bytes = new byte[numBytes]; |
|
||||||
random.nextBytes(bytes); |
|
||||||
return bytes; |
|
||||||
} |
|
||||||
|
|
||||||
@Deprecated |
|
||||||
public static String generateSalt2(int length) { |
|
||||||
String val = ""; |
|
||||||
Random random = new Random(); |
|
||||||
//参数length,表示生成几位随机数
|
|
||||||
for(int i = 0; i < length; i++) { |
|
||||||
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; |
|
||||||
//输出字母还是数字
|
|
||||||
if( "char".equalsIgnoreCase(charOrNum) ) { |
|
||||||
//输出是大写字母还是小写字母
|
|
||||||
int temp = random.nextInt(2)%2 == 0 ? 65 : 97; |
|
||||||
val += (char)(random.nextInt(26) + temp); |
|
||||||
} else if( "num".equalsIgnoreCase(charOrNum) ) { |
|
||||||
val += String.valueOf(random.nextInt(10)); |
|
||||||
} |
|
||||||
} |
|
||||||
return val.toLowerCase(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,500 +0,0 @@ |
|||||||
package com.ruoyi.api.util; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON; |
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
import org.slf4j.Logger; |
|
||||||
import org.slf4j.LoggerFactory; |
|
||||||
|
|
||||||
import java.io.BufferedReader; |
|
||||||
import java.io.IOException; |
|
||||||
import java.io.InputStreamReader; |
|
||||||
import java.io.OutputStream; |
|
||||||
import java.net.HttpURLConnection; |
|
||||||
import java.net.URL; |
|
||||||
import java.net.URLConnection; |
|
||||||
import java.util.*; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author wcy |
|
||||||
* @date 2021/8/13 下午3:04 |
|
||||||
*/ |
|
||||||
|
|
||||||
public class HttpRequestUtils { |
|
||||||
private static final Logger logger = LoggerFactory.getLogger(HttpRequestUtils.class); |
|
||||||
|
|
||||||
public static void main(String[] args) { |
|
||||||
|
|
||||||
// String json = HttpRequestUtils.sendPost("http://112.13.167.212:10000/uas/v1/api/dev/list",
|
|
||||||
// "", "nb012105", "Fhsw123456", "{}", "json");
|
|
||||||
|
|
||||||
String devListUrl = "http://112.13.167.212:10000/uas/v1/api/dev/list"; |
|
||||||
String mediaLiveUrl = "http://112.13.167.212:10000/mss/v1/api/media/live"; |
|
||||||
|
|
||||||
|
|
||||||
String jsonRtsp = HttpRequestUtils.sendPost(mediaLiveUrl, |
|
||||||
"", "nb012105", "Fhsw123456", "{\n" + |
|
||||||
" \"cameraId\": \"33021322031505040301000000581502\",\n" + |
|
||||||
" \"streamType\": 1,\n" + |
|
||||||
" \"urlType\": 1,\n" + |
|
||||||
" \"agentType\": 1\n" + |
|
||||||
"}", "json"); |
|
||||||
|
|
||||||
// String json = HttpRequestUtils.sendPost("http://112.13.167.212:10000/uas/v1/api/ptz/control",
|
|
||||||
//// String json = HttpRequestUtils.sendPost("http://112.13.167.212:10000/dcs/v1/api/preset/get",
|
|
||||||
// "", "nb012105", "Fhsw123456", "{\n" +
|
|
||||||
//// " \"cameraId\": \"33021323010505040301020001151452\"" +
|
|
||||||
// " \"cameraId\": \"33021323010505040301020001151452\",\n" +
|
|
||||||
// " \"opCode\": \"PTZ_PREFAB_BIT_RUN\",\n" +
|
|
||||||
// " \"param1\": 1,\n" +
|
|
||||||
// " \"param2\": 10\n" +
|
|
||||||
// "}", "json");
|
|
||||||
System.out.println(jsonRtsp); |
|
||||||
JSONObject object = JSON.parseObject(jsonRtsp); |
|
||||||
System.out.println(object.getString("url")); |
|
||||||
System.out.println("ws://localhost:8866/live?url="+object.getString("url")); |
|
||||||
System.out.println("let rtspUrl =\""+object.getString("url")+"\";"); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
static int nc = 0; //调用次数
|
|
||||||
private static final String GET = "GET"; |
|
||||||
private static final String POST = "POST"; |
|
||||||
private static final String PUT = "PUT"; |
|
||||||
private static final String DELETE = "DELETE"; |
|
||||||
|
|
||||||
/** |
|
||||||
* 向指定URL发送DELETE方法的请求 |
|
||||||
* @param url 发送请求的URL |
|
||||||
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 |
|
||||||
* @param username 验证所需的用户名 |
|
||||||
* @param password 验证所需的密码 |
|
||||||
* @param json 请求json字符串 |
|
||||||
* @param type 返回xml和json格式数据,默认xml,传入json返回json数据 |
|
||||||
* @return URL 所代表远程资源的响应结果 |
|
||||||
*/ |
|
||||||
public static String sendDelete(String url, String param, String username, String password, String json, String type) { |
|
||||||
StringBuilder result = new StringBuilder(); |
|
||||||
BufferedReader in = null; |
|
||||||
try { |
|
||||||
String wwwAuth = sendGet(url, param); //发起一次授权请求
|
|
||||||
if (wwwAuth.startsWith("WWW-Authenticate:")) { |
|
||||||
wwwAuth = wwwAuth.replaceFirst("WWW-Authenticate:", ""); |
|
||||||
} else { |
|
||||||
return wwwAuth; |
|
||||||
} |
|
||||||
nc ++; |
|
||||||
String urlNameString = url + (StringUtils.isNotEmpty(param) ? "?" + param : ""); |
|
||||||
URL realUrl = new URL(urlNameString); |
|
||||||
// 打开和URL之间的连接
|
|
||||||
HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection(); |
|
||||||
|
|
||||||
// 设置是否向connection输出,因为这个是post请求,参数要放在
|
|
||||||
// http正文内,因此需要设为true
|
|
||||||
connection.setDoOutput(true); |
|
||||||
// Read from the connection. Defaultis true.
|
|
||||||
connection.setDoInput(true); |
|
||||||
// 默认是 GET方式
|
|
||||||
connection.setRequestMethod(DELETE); |
|
||||||
|
|
||||||
// 设置通用的请求属性
|
|
||||||
setRequestProperty(connection, wwwAuth, realUrl, username, password, DELETE, type); |
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(json)) { |
|
||||||
byte[] writebytes =json.getBytes(); |
|
||||||
connection.setRequestProperty("Content-Length",String.valueOf(writebytes.length)); |
|
||||||
OutputStream outwritestream = connection.getOutputStream(); |
|
||||||
outwritestream.write(json.getBytes()); |
|
||||||
outwritestream.flush(); |
|
||||||
outwritestream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
if (connection.getResponseCode() == 200) { |
|
||||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
|
||||||
String line; |
|
||||||
while ((line = in.readLine()) != null) { |
|
||||||
result.append(line); |
|
||||||
} |
|
||||||
} else { |
|
||||||
String errResult = formatResultInfo(connection, type); |
|
||||||
logger.info(errResult); |
|
||||||
return errResult; |
|
||||||
} |
|
||||||
|
|
||||||
nc = 0; |
|
||||||
} catch (Exception e) { |
|
||||||
nc = 0; |
|
||||||
throw new RuntimeException(e); |
|
||||||
} finally { |
|
||||||
try { |
|
||||||
if (in != null) in.close(); |
|
||||||
} catch (Exception e2) { |
|
||||||
e2.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return result.toString(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 向指定URL发送PUT方法的请求 |
|
||||||
* @param url 发送请求的URL |
|
||||||
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 |
|
||||||
* @param username 验证所需的用户名 |
|
||||||
* @param password 验证所需的密码 |
|
||||||
* @param json 请求json字符串 |
|
||||||
* @param type 返回xml和json格式数据,默认xml,传入json返回json数据 |
|
||||||
* @return URL 所代表远程资源的响应结果 |
|
||||||
*/ |
|
||||||
public static String sendPUT(String url, String param, String username, String password, String json, String type) { |
|
||||||
StringBuilder result = new StringBuilder(); |
|
||||||
BufferedReader in = null; |
|
||||||
try { |
|
||||||
String wwwAuth = sendGet(url, param); //发起一次授权请求
|
|
||||||
if (wwwAuth.startsWith("WWW-Authenticate:")) { |
|
||||||
wwwAuth = wwwAuth.replaceFirst("WWW-Authenticate:", ""); |
|
||||||
} else { |
|
||||||
return wwwAuth; |
|
||||||
} |
|
||||||
nc ++; |
|
||||||
String urlNameString = url + (StringUtils.isNotEmpty(param) ? "?" + param : ""); |
|
||||||
URL realUrl = new URL(urlNameString); |
|
||||||
// 打开和URL之间的连接
|
|
||||||
HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection(); |
|
||||||
|
|
||||||
// 设置是否向connection输出,因为这个是post请求,参数要放在
|
|
||||||
// http正文内,因此需要设为true
|
|
||||||
connection.setDoOutput(true); |
|
||||||
// Read from the connection. Defaultis true.
|
|
||||||
connection.setDoInput(true); |
|
||||||
// 默认是 GET方式
|
|
||||||
connection.setRequestMethod(PUT); |
|
||||||
// Post 请求不能使用缓存
|
|
||||||
connection.setUseCaches(false); |
|
||||||
|
|
||||||
// 设置通用的请求属性
|
|
||||||
setRequestProperty(connection, wwwAuth,realUrl, username, password, PUT, type); |
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(json)) { |
|
||||||
byte[] writebytes =json.getBytes(); |
|
||||||
connection.setRequestProperty("Content-Length",String.valueOf(writebytes.length)); |
|
||||||
OutputStream outwritestream = connection.getOutputStream(); |
|
||||||
outwritestream.write(json.getBytes()); |
|
||||||
outwritestream.flush(); |
|
||||||
outwritestream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
if (connection.getResponseCode() == 200) { |
|
||||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
|
||||||
String line; |
|
||||||
while ((line = in.readLine()) != null) { |
|
||||||
result.append(line); |
|
||||||
} |
|
||||||
} else { |
|
||||||
String errResult = formatResultInfo(connection, type); |
|
||||||
logger.info(errResult); |
|
||||||
return errResult; |
|
||||||
} |
|
||||||
|
|
||||||
nc = 0; |
|
||||||
} catch (Exception e) { |
|
||||||
nc = 0; |
|
||||||
throw new RuntimeException(e); |
|
||||||
} finally { |
|
||||||
try { |
|
||||||
if (in != null) in.close(); |
|
||||||
} catch (Exception e2) { |
|
||||||
e2.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return result.toString(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 向指定URL发送POST方法的请求 |
|
||||||
* @param url 发送请求的URL |
|
||||||
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 |
|
||||||
* @param username 验证所需的用户名 |
|
||||||
* @param password 验证所需的密码 |
|
||||||
* @param json 请求json字符串 |
|
||||||
* @param type 返回xml和json格式数据,默认xml,传入json返回json数据 |
|
||||||
* @return URL 所代表远程资源的响应结果 |
|
||||||
*/ |
|
||||||
public static String sendPost(String url, String param, String username, String password, String json, String type) { |
|
||||||
StringBuilder result = new StringBuilder(); |
|
||||||
BufferedReader in = null; |
|
||||||
try { |
|
||||||
String wwwAuth = sendGet(url, param); //发起一次授权请求
|
|
||||||
if (wwwAuth.startsWith("WWW-Authenticate:")) { |
|
||||||
wwwAuth = wwwAuth.replaceFirst("WWW-Authenticate:", ""); |
|
||||||
} else { |
|
||||||
return wwwAuth; |
|
||||||
} |
|
||||||
nc ++; |
|
||||||
String urlNameString = url + (StringUtils.isNotEmpty(param) ? "?" + param : ""); |
|
||||||
URL realUrl = new URL(urlNameString); |
|
||||||
// 打开和URL之间的连接
|
|
||||||
HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection(); |
|
||||||
|
|
||||||
// 设置是否向connection输出,因为这个是post请求,参数要放在
|
|
||||||
// http正文内,因此需要设为true
|
|
||||||
connection.setDoOutput(true); |
|
||||||
// Read from the connection. Defaultis true.
|
|
||||||
connection.setDoInput(true); |
|
||||||
// 默认是 GET方式
|
|
||||||
connection.setRequestMethod(POST); |
|
||||||
// Post 请求不能使用缓存
|
|
||||||
connection.setUseCaches(false); |
|
||||||
|
|
||||||
// 设置通用的请求属性
|
|
||||||
setRequestProperty(connection, wwwAuth,realUrl, username, password, POST, type); |
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(json)) { |
|
||||||
byte[] writebytes =json.getBytes(); |
|
||||||
connection.setRequestProperty("Content-Length",String.valueOf(writebytes.length)); |
|
||||||
OutputStream outwritestream = connection.getOutputStream(); |
|
||||||
outwritestream.write(json.getBytes()); |
|
||||||
outwritestream.flush(); |
|
||||||
outwritestream.close(); |
|
||||||
} |
|
||||||
if (connection.getResponseCode() == 200 || connection.getResponseCode() == 201) { |
|
||||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
|
||||||
String line; |
|
||||||
while ((line = in.readLine()) != null) { |
|
||||||
result.append(line); |
|
||||||
} |
|
||||||
} else { |
|
||||||
String errResult = formatResultInfo(connection, type); |
|
||||||
logger.info(errResult); |
|
||||||
return errResult; |
|
||||||
} |
|
||||||
|
|
||||||
nc = 0; |
|
||||||
} catch (Exception e) { |
|
||||||
nc = 0; |
|
||||||
throw new RuntimeException(e); |
|
||||||
} finally { |
|
||||||
try { |
|
||||||
if (in != null) in.close(); |
|
||||||
} catch (Exception e2) { |
|
||||||
e2.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return result.toString(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 向指定URL发送GET方法的请求 |
|
||||||
* @param url 发送请求的URL |
|
||||||
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 |
|
||||||
* @param username 验证所需的用户名 |
|
||||||
* @param password 验证所需的密码 |
|
||||||
* @param type 返回xml和json格式数据,默认xml,传入json返回json数据 |
|
||||||
* @return URL 所代表远程资源的响应结果 |
|
||||||
*/ |
|
||||||
public static String sendGet(String url, String param, String username, String password, String type) { |
|
||||||
|
|
||||||
StringBuilder result = new StringBuilder(); |
|
||||||
BufferedReader in = null; |
|
||||||
try { |
|
||||||
String wwwAuth = sendGet(url, param); //发起一次授权请求
|
|
||||||
if (wwwAuth.startsWith("WWW-Authenticate:")) { |
|
||||||
wwwAuth = wwwAuth.replaceFirst("WWW-Authenticate:", ""); |
|
||||||
} else { |
|
||||||
return wwwAuth; |
|
||||||
} |
|
||||||
nc ++; |
|
||||||
String urlNameString = url + (StringUtils.isNotEmpty(param) ? "?" + param : ""); |
|
||||||
URL realUrl = new URL(urlNameString); |
|
||||||
// 打开和URL之间的连接
|
|
||||||
HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection(); |
|
||||||
// 设置通用的请求属性
|
|
||||||
setRequestProperty(connection, wwwAuth,realUrl, username, password, GET, type); |
|
||||||
// 建立实际的连接
|
|
||||||
// connection.connect();
|
|
||||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
|
||||||
String line; |
|
||||||
while ((line = in.readLine()) != null) { |
|
||||||
result.append(line); |
|
||||||
} |
|
||||||
nc = 0; |
|
||||||
} catch (Exception e) { |
|
||||||
nc = 0; |
|
||||||
throw new RuntimeException(e); |
|
||||||
} finally { |
|
||||||
try { |
|
||||||
if (in != null) in.close(); |
|
||||||
} catch (Exception e2) { |
|
||||||
e2.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return result.toString(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 生成授权信息 |
|
||||||
* @param authorization 上一次调用返回401的WWW-Authenticate数据 |
|
||||||
* @param username 用户名 |
|
||||||
* @param password 密码 |
|
||||||
* @return 授权后的数据, 应放在http头的Authorization里 |
|
||||||
* @throws IOException 异常 |
|
||||||
*/ |
|
||||||
private static String getAuthorization(String authorization, String uri, String username, String password, String method) throws IOException { |
|
||||||
|
|
||||||
uri = StringUtils.isEmpty(uri) ? "/" : uri; |
|
||||||
// String temp = authorization.replaceFirst("Digest", "").trim();
|
|
||||||
String temp = authorization.replaceFirst("Digest", "").trim().replace("MD5","\"MD5\""); |
|
||||||
// String json = "{\"" + temp.replaceAll("=", "\":").replaceAll(",", ",\"") + "}";
|
|
||||||
String json = withdrawJson(authorization); |
|
||||||
// String json = "{ \"realm\": \"Wowza\", \" domain\": \"/\", \" nonce\": \"MTU1NzgxMTU1NzQ4MDo2NzI3MWYxZTZkYjBiMjQ2ZGRjYTQ3ZjNiOTM2YjJjZA==\", \" algorithm\": \"MD5\", \" qop\": \"auth\" }";
|
|
||||||
|
|
||||||
JSONObject jsonObject = JSON.parseObject(json); |
|
||||||
String cnonce = Digests.generateSalt2(8); |
|
||||||
String ncstr = ("00000000" + nc).substring(Integer.toString(nc).length()); //认证的次数,第一次是1,第二次是2...
|
|
||||||
// String algorithm = jsonObject.getString("algorithm");
|
|
||||||
String algorithm = jsonObject.getString("algorithm"); |
|
||||||
String qop = jsonObject.getString("qop"); |
|
||||||
String nonce = jsonObject.getString("nonce"); |
|
||||||
String realm = jsonObject.getString("realm"); |
|
||||||
|
|
||||||
String response = Digests.http_da_calc_HA1(username, realm, password, |
|
||||||
nonce, ncstr, cnonce, qop, |
|
||||||
method, uri, algorithm); |
|
||||||
|
|
||||||
//组成响应authorization
|
|
||||||
authorization = "Digest username=\"" + username + "\"," + temp; |
|
||||||
authorization += ",uri=\"" + uri |
|
||||||
+ "\",nc=\"" + ncstr |
|
||||||
+ "\",cnonce=\"" + cnonce |
|
||||||
+ "\",response=\"" + response+"\""; |
|
||||||
return authorization; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 将返回的Authrization信息转成json |
|
||||||
* @param authorization authorization info |
|
||||||
* @return 返回authrization json格式数据 如:String json = "{ \"realm\": \"Wowza\", \" domain\": \"/\", \" nonce\": \"MTU1NzgxMTU1NzQ4MDo2NzI3MWYxZTZkYjBiMjQ2ZGRjYTQ3ZjNiOTM2YjJjZA==\", \" algorithm\": \"MD5\", \" qop\": \"auth\" }"; |
|
||||||
*/ |
|
||||||
private static String withdrawJson(String authorization) { |
|
||||||
String temp = authorization.replaceFirst("Digest", "").trim().replaceAll("\"",""); |
|
||||||
// String noncetemp = temp.substring(temp.indexOf("nonce="), temp.indexOf("uri="));
|
|
||||||
// String json = "{\"" + temp.replaceAll("=", "\":").replaceAll(",", ",\"") + "}";
|
|
||||||
String[] split = temp.split(","); |
|
||||||
Map<String, String> map = new HashMap<>(); |
|
||||||
Arrays.asList(split).forEach(c -> { |
|
||||||
String c1 = c.replaceFirst("=",":"); |
|
||||||
String[] split1 = c1.split(":"); |
|
||||||
map.put(split1[0].trim(), split1[1].trim()); |
|
||||||
}); |
|
||||||
return JSONObject.toJSONString(map); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 向指定URL发送GET方法的请求 |
|
||||||
* @param url 发送请求的URL |
|
||||||
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 |
|
||||||
* @return URL 所代表远程资源的响应结果 |
|
||||||
*/ |
|
||||||
public static String sendGet(String url, String param) { |
|
||||||
StringBuilder result = new StringBuilder(); |
|
||||||
BufferedReader in = null; |
|
||||||
try { |
|
||||||
|
|
||||||
String urlNameString = url + (StringUtils.isNotEmpty(param) ? "?" + param : ""); |
|
||||||
URL realUrl = new URL(urlNameString); |
|
||||||
// 打开和URL之间的连接
|
|
||||||
URLConnection connection = realUrl.openConnection(); |
|
||||||
// 设置通用的请求属性
|
|
||||||
connection.setRequestProperty("accept", "*/*"); |
|
||||||
connection.setRequestProperty("connection", "Keep-Alive"); |
|
||||||
connection.setRequestProperty("user-agent", |
|
||||||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); |
|
||||||
|
|
||||||
connection.connect(); |
|
||||||
|
|
||||||
//返回401时需再次用用户名和密码请求
|
|
||||||
//此情况返回服务器的 WWW-Authenticate 信息
|
|
||||||
if (((HttpURLConnection) connection).getResponseCode() == 401) { |
|
||||||
Map<String, List<String>> map = connection.getHeaderFields(); |
|
||||||
return "WWW-Authenticate:" + map.get("WWW-Authenticate").get(0); |
|
||||||
} |
|
||||||
|
|
||||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream())); |
|
||||||
String line; |
|
||||||
while ((line = in.readLine()) != null) { |
|
||||||
result.append(line); |
|
||||||
} |
|
||||||
} catch (Exception e) { |
|
||||||
throw new RuntimeException("get请求发送失败",e); |
|
||||||
} |
|
||||||
// 使用finally块来关闭输入流
|
|
||||||
finally { |
|
||||||
try { |
|
||||||
if (in != null) in.close(); |
|
||||||
} catch (Exception e2) { |
|
||||||
e2.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return result.toString(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* HTTP set request property |
|
||||||
* |
|
||||||
* @param connection HttpConnection |
|
||||||
* @param wwwAuth 授权auth |
|
||||||
* @param realUrl 实际url |
|
||||||
* @param username 验证所需的用户名 |
|
||||||
* @param password 验证所需的密码 |
|
||||||
* @param method 请求方式 |
|
||||||
* @param type 返回xml和json格式数据,默认xml,传入json返回json数据 |
|
||||||
*/ |
|
||||||
private static void setRequestProperty(HttpURLConnection connection, String wwwAuth, URL realUrl, String username, String password, String method, String type) |
|
||||||
throws IOException { |
|
||||||
if (type != null && type.equals("json")) { |
|
||||||
// 返回json
|
|
||||||
connection.setRequestProperty("accept", "application/json;charset=UTF-8"); |
|
||||||
connection.setRequestProperty("Content-Type","application/json;charset=UTF-8"); |
|
||||||
connection.setRequestProperty("connection", "Keep-Alive"); |
|
||||||
connection.setRequestProperty("user-agent", |
|
||||||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); |
|
||||||
} else { |
|
||||||
// 返回xml
|
|
||||||
if (!method.equals(GET)) { |
|
||||||
connection.setRequestProperty("Content-Type","application/json;charset=UTF-8"); |
|
||||||
} |
|
||||||
connection.setRequestProperty("accept", "*/*"); |
|
||||||
connection.setRequestProperty("connection", "Keep-Alive"); |
|
||||||
// connection.setRequestProperty("Cache-Control", "no-cache");
|
|
||||||
connection.setRequestProperty("user-agent", |
|
||||||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); |
|
||||||
|
|
||||||
} |
|
||||||
//授权信息
|
|
||||||
String authentication = getAuthorization(wwwAuth, realUrl.getPath(), username, password, method); |
|
||||||
connection.setRequestProperty("Authorization", authentication); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 格式化请求返回信息,支持json和xml格式 |
|
||||||
* @param connection HttpConnection |
|
||||||
* @param type 指定返回数据格式,json、xml,默认xml |
|
||||||
* @return 返回数据 |
|
||||||
*/ |
|
||||||
private static String formatResultInfo(HttpURLConnection connection, String type) throws IOException { |
|
||||||
String result = ""; |
|
||||||
if (type != null && type.equals("json")) { |
|
||||||
result = String.format("{\"errCode\":%s, \"message\":%s}",connection.getResponseCode(),connection.getResponseMessage()); |
|
||||||
} else { |
|
||||||
result = String.format(" <?xml version=\"1.0\" encoding=\"UTF-8\" ?> " |
|
||||||
+ " <wmsResponse>" |
|
||||||
+ " <errCode>%d</errCode>" |
|
||||||
+ " <message>%s</message>" |
|
||||||
+ " </wmsResponse>",connection.getResponseCode(),connection.getResponseMessage()); |
|
||||||
} |
|
||||||
return result; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,53 +0,0 @@ |
|||||||
package com.ruoyi.api.util; |
|
||||||
|
|
||||||
import com.ruoyi.api.domain.RegularTime; |
|
||||||
|
|
||||||
public class RegularTimeUtil { |
|
||||||
|
|
||||||
// 每天整点报 整点 ASCII
|
|
||||||
public static RegularTime hourlyReportASCII(String asciiCode) { |
|
||||||
RegularTime regularTime = new RegularTime(); |
|
||||||
String[] strArr = asciiCode.split(" "); |
|
||||||
String s1 = strArr[0]; |
|
||||||
// 中心站地址
|
|
||||||
String centralStationAddr = s1.substring(0, 2); |
|
||||||
regularTime.setCentralStationAddr(centralStationAddr); |
|
||||||
// 遥测站地址
|
|
||||||
String stationAddr = s1.substring(2, 12); |
|
||||||
regularTime.setStationAddr(stationAddr); |
|
||||||
// 密码
|
|
||||||
String password = s1.substring(12, 16); |
|
||||||
regularTime.setPassword(password); |
|
||||||
//功能码
|
|
||||||
String code = s1.substring(16, 18); |
|
||||||
regularTime.setCode(code); |
|
||||||
//报文上下行标识和长度 报文标识和长度
|
|
||||||
String msgIDAndLength = s1.substring(18, 22); |
|
||||||
regularTime.setMsgIdAndLength(msgIDAndLength); |
|
||||||
// 流水号
|
|
||||||
String serialNum = s1.substring(22, 26); |
|
||||||
regularTime.setSerialNum(serialNum); |
|
||||||
// 发报时间
|
|
||||||
String dispatchTime = s1.substring(26, 38); |
|
||||||
regularTime.setDispatchTime(dispatchTime); |
|
||||||
// 遥测站分类码
|
|
||||||
String stationTypeCode = strArr[2]; |
|
||||||
regularTime.setStationTypeCode(stationTypeCode); |
|
||||||
// 观测时间
|
|
||||||
String observationTime = strArr[4]; |
|
||||||
regularTime.setObservationTime(observationTime); |
|
||||||
// 瞬时水位
|
|
||||||
String waterLevel = strArr[6]; |
|
||||||
regularTime.setWaterLevel(waterLevel); |
|
||||||
// 电压
|
|
||||||
String voltage = strArr[8]; |
|
||||||
regularTime.setVoltage(voltage); |
|
||||||
// 温度
|
|
||||||
String temperature = strArr[10]; |
|
||||||
regularTime.setTemperature(temperature); |
|
||||||
// 校验
|
|
||||||
String checkCode = strArr[11]; |
|
||||||
regularTime.setCheckCode(checkCode); |
|
||||||
return regularTime; |
|
||||||
} |
|
||||||
} |
|
@ -1,105 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.controller; |
|
||||||
|
|
||||||
import com.ruoyi.code.camera.domain.CameraBrand; |
|
||||||
import com.ruoyi.code.camera.service.ICameraBrandService; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.web.bind.annotation.*; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
/** |
|
||||||
* brandController |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-26 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/web/brand") |
|
||||||
public class CameraBrandController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private ICameraBrandService cameraBrandService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return cameraBrandService.queryPage(params); |
|
||||||
} |
|
||||||
/** |
|
||||||
* 查询列表 不带分页 |
|
||||||
*/ |
|
||||||
@RequestMapping("/brands") |
|
||||||
public R listBrand(){ |
|
||||||
return R.ok().put("data",cameraBrandService.list()); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
CameraBrand cameraBrand = cameraBrandService.getById(id); |
|
||||||
|
|
||||||
return R.ok().put("data", cameraBrand); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, CameraBrand cameraBrand) |
|
||||||
{ |
|
||||||
List<CameraBrand> list = cameraBrandService.list(); |
|
||||||
ExcelUtil<CameraBrand> util = new ExcelUtil<CameraBrand>(CameraBrand.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "CameraBrand", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:add')") |
|
||||||
public R add(@RequestBody CameraBrand cameraBrand){ |
|
||||||
cameraBrandService.save(cameraBrand); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:edit')") |
|
||||||
@Log(title = "CameraBrand", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody CameraBrand cameraBrand){ |
|
||||||
cameraBrandService.updateById(cameraBrand); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('web:brand:remove')") |
|
||||||
@Log(title = "CameraBrand", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
cameraBrandService.removeByIds(Arrays.asList(ids)); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.ruoyi.common.annotation.Excel; |
|
||||||
import java.io.Serializable; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* brand对象 camera_brand |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-26 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("camera_brand") |
|
||||||
public class CameraBrand implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 品牌名称 */ |
|
||||||
private String name; |
|
||||||
|
|
||||||
/** 品牌型号 */ |
|
||||||
private String model; |
|
||||||
|
|
||||||
/** rtsp地址 */ |
|
||||||
private String rtsp; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,15 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.domain; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class CameraParams { |
|
||||||
/** */ |
|
||||||
private Double lstart; |
|
||||||
/** 某一时刻水位+水位上水尺长度,单位m */ |
|
||||||
private Double tlen; |
|
||||||
/** 某一时刻水面上水尺长度(单位米)*/ |
|
||||||
private Double clen; |
|
||||||
/** 和水面上的水尺长度对应像素 */ |
|
||||||
private Double cp; |
|
||||||
} |
|
@ -1,18 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.mapper; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import com.ruoyi.code.camera.domain.CameraBrand; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-26 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface CameraBrandMapper extends BaseMapper<CameraBrand> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -1,64 +1,60 @@ |
|||||||
package com.ruoyi.code.camera.scheduled; |
//package com.ruoyi.code.camera.scheduled;
|
||||||
|
//
|
||||||
import com.alibaba.fastjson.JSON; |
//import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray; |
//import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject; |
//import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ruoyi.code.camera.domain.Camera; |
//import com.ruoyi.code.camera.domain.Camera;
|
||||||
import com.ruoyi.code.camera.service.ICameraService; |
//import com.ruoyi.code.camera.service.ICameraService;
|
||||||
import com.ruoyi.common.core.page.R; |
//import com.ruoyi.common.core.page.R;
|
||||||
import com.ruoyi.common.utils.IPUtils; |
//import com.ruoyi.common.utils.IPUtils;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration; |
//import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.env.Environment; |
//import org.springframework.core.env.Environment;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling; |
//import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
import org.springframework.scheduling.annotation.Scheduled; |
//import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component; |
//import org.springframework.stereotype.Component;
|
||||||
|
//
|
||||||
import javax.annotation.PostConstruct; |
//import javax.annotation.PostConstruct;
|
||||||
import java.util.ArrayList; |
//import java.util.ArrayList;
|
||||||
import java.util.List; |
//import java.util.List;
|
||||||
|
//
|
||||||
/*@Author: tongw |
///*@Author: tongw
|
||||||
*@CreateDate: 2020/8/11 8:58 |
// *@CreateDate: 2020/8/11 8:58
|
||||||
*@Description: |
// *@Description:
|
||||||
**/ |
// **/
|
||||||
|
//
|
||||||
@Component |
//@Component
|
||||||
@Configuration |
//@Configuration
|
||||||
@EnableScheduling |
//@EnableScheduling
|
||||||
public class RegisterServer { |
//public class RegisterServer {
|
||||||
private static String localip = ""; |
// private static String sercer_ip = "";
|
||||||
private static String accessmode = ""; |
//
|
||||||
|
// @Autowired
|
||||||
@Autowired |
// private Environment env;
|
||||||
private Environment env; |
//
|
||||||
|
// @PostConstruct
|
||||||
@PostConstruct |
// public void config() {
|
||||||
public void config() { |
// sercer_ip = env.getProperty("localip");
|
||||||
localip = env.getProperty("localip"); |
// }
|
||||||
accessmode = env.getProperty("accessmode"); |
// @Autowired
|
||||||
} |
// private ICameraService cameraService;
|
||||||
@Autowired |
//
|
||||||
private ICameraService cameraService; |
// @Scheduled(initialDelay = 5000, fixedRate = Long.MAX_VALUE)
|
||||||
|
// public void synStart(){
|
||||||
@Scheduled(initialDelay = 5000, fixedRate = Long.MAX_VALUE) |
// start();
|
||||||
public void synStart(){ |
// }
|
||||||
start(); |
//
|
||||||
} |
// private void start(){
|
||||||
|
|
||||||
private void start(){ |
|
||||||
// String ip = IPUtils.getLocalIpAddress();
|
// String ip = IPUtils.getLocalIpAddress();
|
||||||
String ip = "192.168.16.219"; |
// if(sercer_ip.equals(ip)){
|
||||||
System.out.println(ip); |
// R result = cameraService.register();
|
||||||
if(localip.equals(ip) && "0".equals(accessmode)){ |
// if("0".equals(result.get("code").toString())){
|
||||||
R result = cameraService.register(localip); |
// System.out.println("主动注册服务已启动");
|
||||||
if("0".equals(result.get("code").toString())){ |
// }else{
|
||||||
System.out.println("主动注册服务已启动"); |
// System.out.println("主动注册服务启动失败");
|
||||||
}else{ |
// }
|
||||||
System.out.println("主动注册服务启动失败"); |
// }
|
||||||
} |
// }
|
||||||
} |
//
|
||||||
} |
//}
|
||||||
|
|
||||||
} |
|
||||||
|
@ -1,36 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.scheduled; |
|
||||||
|
|
||||||
import com.ruoyi.code.camera.service.ICameraService; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.context.annotation.Configuration; |
|
||||||
import org.springframework.core.env.Environment; |
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling; |
|
||||||
import org.springframework.scheduling.annotation.Scheduled; |
|
||||||
import org.springframework.stereotype.Component; |
|
||||||
|
|
||||||
import javax.annotation.PostConstruct; |
|
||||||
|
|
||||||
@Component |
|
||||||
@Configuration |
|
||||||
@EnableScheduling |
|
||||||
public class RtspScreenshotTask { |
|
||||||
private static String accessmode = ""; |
|
||||||
|
|
||||||
@Autowired |
|
||||||
private Environment env; |
|
||||||
|
|
||||||
@PostConstruct |
|
||||||
public void config() { |
|
||||||
accessmode = env.getProperty("accessmode"); |
|
||||||
} |
|
||||||
|
|
||||||
@Autowired |
|
||||||
private ICameraService cameraService; |
|
||||||
|
|
||||||
@Scheduled(cron = "0 0/5 * * * ?") |
|
||||||
public void rtspScreenshot(){ |
|
||||||
if("1".equals(accessmode)){ |
|
||||||
cameraService.pullRtspPhoto(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,21 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import java.util.Map; |
|
||||||
import com.ruoyi.code.camera.domain.CameraBrand; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-26 |
|
||||||
*/ |
|
||||||
public interface ICameraBrandService extends IService<CameraBrand> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
} |
|
@ -1,33 +0,0 @@ |
|||||||
package com.ruoyi.code.camera.service.impl; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
import com.ruoyi.code.camera.mapper.CameraBrandMapper; |
|
||||||
import com.ruoyi.code.camera.domain.CameraBrand; |
|
||||||
import com.ruoyi.code.camera.service.ICameraBrandService; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-26 |
|
||||||
*/ |
|
||||||
@Service("cameraBrandService") |
|
||||||
public class CameraBrandServiceImpl extends ServiceImpl<CameraBrandMapper, CameraBrand> implements ICameraBrandService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
IPage<CameraBrand> page = this.page( |
|
||||||
new Query<CameraBrand>().getPage(params), |
|
||||||
new QueryWrapper<CameraBrand>() |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,113 +0,0 @@ |
|||||||
package com.ruoyi.code.rtudata.controller; |
|
||||||
|
|
||||||
import com.ruoyi.code.rtudata.domain.RtuData; |
|
||||||
import com.ruoyi.code.rtudata.service.IRtuDataService; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.web.bind.annotation.*; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
/** |
|
||||||
* 数据列表Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2024-01-17 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/rtudata/rtudata") |
|
||||||
public class RtuDataController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IRtuDataService rtuDataService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return rtuDataService.queryPage(params); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询标签列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:list')") |
|
||||||
@RequestMapping("/tabsList") |
|
||||||
public R tabsList(){ |
|
||||||
return rtuDataService.tabsList(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
RtuData rtuData = rtuDataService.getById(id); |
|
||||||
|
|
||||||
return R.ok().put("data", rtuData); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, RtuData rtuData) |
|
||||||
{ |
|
||||||
List<RtuData> list = rtuDataService.list(); |
|
||||||
ExcelUtil<RtuData> util = new ExcelUtil<RtuData>(RtuData.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "RtuData", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:add')") |
|
||||||
public R add(@RequestBody RtuData rtuData){ |
|
||||||
rtuDataService.save(rtuData); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:edit')") |
|
||||||
@Log(title = "RtuData", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody RtuData rtuData){ |
|
||||||
rtuDataService.updateById(rtuData); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('rtudata:rtudata:remove')") |
|
||||||
@Log(title = "RtuData", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
rtuDataService.removeByIds(Arrays.asList(ids)); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
@RequestMapping("/getChart") |
|
||||||
public R getChart(@RequestParam Map<String, Object> params){ |
|
||||||
Map<String, Object> map = rtuDataService.getChart(params); |
|
||||||
return R.ok().put("data",map); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,54 +0,0 @@ |
|||||||
package com.ruoyi.code.rtudata.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 数据列表对象 rtu_data |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2024-01-17 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("rtu_data") |
|
||||||
public class RtuData implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** $column.columnComment */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 遥测站地址 */ |
|
||||||
private Long sid; |
|
||||||
|
|
||||||
/** 遥测站分类码 */ |
|
||||||
private String type; |
|
||||||
|
|
||||||
/** 监测项 */ |
|
||||||
private String item; |
|
||||||
|
|
||||||
/** 监测码 */ |
|
||||||
private String itemCode; |
|
||||||
|
|
||||||
/** 监测值 */ |
|
||||||
private String val; |
|
||||||
|
|
||||||
/** 单位 */ |
|
||||||
private String unit; |
|
||||||
|
|
||||||
/** 观测时间 */ |
|
||||||
private Date dt; |
|
||||||
|
|
||||||
/** 上报时间 */ |
|
||||||
private Date updDt; |
|
||||||
|
|
||||||
/** 原始数据 */ |
|
||||||
private String originData; |
|
||||||
} |
|
@ -1,28 +0,0 @@ |
|||||||
package com.ruoyi.code.rtudata.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.code.camera.domain.YcData; |
|
||||||
import com.ruoyi.code.rtudata.domain.RtuData; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import org.apache.ibatis.annotations.Param; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2024-01-17 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface RtuDataMapper extends BaseMapper<RtuData> |
|
||||||
{ |
|
||||||
|
|
||||||
List<RtuData> tabsList(); |
|
||||||
|
|
||||||
List<Integer> getSids(@Param("params") Map<String, Object> params); |
|
||||||
|
|
||||||
List<YcData> selectWaterData(@Param("params") Map<String, Object> params); |
|
||||||
|
|
||||||
} |
|
@ -1,25 +0,0 @@ |
|||||||
package com.ruoyi.code.rtudata.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.code.rtudata.domain.RtuData; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2024-01-17 |
|
||||||
*/ |
|
||||||
public interface IRtuDataService extends IService<RtuData> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
R tabsList(); |
|
||||||
|
|
||||||
Map<String, Object> getChart(Map<String, Object> params); |
|
||||||
} |
|
@ -1,95 +0,0 @@ |
|||||||
package com.ruoyi.code.rtudata.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.code.camera.domain.ChartData; |
|
||||||
import com.ruoyi.code.camera.domain.YcData; |
|
||||||
import com.ruoyi.code.rtudata.domain.RtuData; |
|
||||||
import com.ruoyi.code.rtudata.mapper.RtuDataMapper; |
|
||||||
import com.ruoyi.code.rtudata.service.IRtuDataService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.apache.commons.lang3.ObjectUtils; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2024-01-17 |
|
||||||
*/ |
|
||||||
@Service("rtuDataService") |
|
||||||
public class RtuDataServiceImpl extends ServiceImpl<RtuDataMapper, RtuData> implements IRtuDataService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
IPage<RtuData> page = this.page( |
|
||||||
new Query<RtuData>().getPage(params), |
|
||||||
new QueryWrapper<RtuData>() |
|
||||||
.eq(ObjectUtils.isNotEmpty(params.get("itemCode")),"item_code",params.get("itemCode")) |
|
||||||
.ge(ObjectUtils.isNotEmpty(params.get("startTime")),"dt",params.get("startTime")) |
|
||||||
.le(ObjectUtils.isNotEmpty(params.get("endTime")),"dt",params.get("endTime")) |
|
||||||
.orderByDesc("dt") |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public R tabsList() { |
|
||||||
List<RtuData> list = baseMapper.tabsList(); |
|
||||||
return R.ok().put("data", list); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Map<String, Object> getChart(Map<String, Object> params) { |
|
||||||
Map<String, Object> map = new HashMap<>(); |
|
||||||
List<String> legend = new ArrayList<>(); |
|
||||||
List<ChartData> series = new ArrayList<>(); |
|
||||||
List<Integer> sids = baseMapper.getSids(params); |
|
||||||
for (Integer sid : sids) { |
|
||||||
params.put("sid", sid); |
|
||||||
// 图表的数据
|
|
||||||
ChartData chartData = getChartOptionData(params); |
|
||||||
if (chartData != null) { |
|
||||||
series.add(chartData); |
|
||||||
legend.add(chartData.getName()); |
|
||||||
} |
|
||||||
} |
|
||||||
map.put("legend",legend); |
|
||||||
map.put("series",series); |
|
||||||
return map; |
|
||||||
} |
|
||||||
|
|
||||||
public ChartData getChartOptionData(Map<String, Object> params){ |
|
||||||
ChartData data = null; |
|
||||||
List<YcData> dataList = baseMapper.selectWaterData(params); |
|
||||||
if(dataList != null && dataList.size()>0){ |
|
||||||
data = new ChartData(); |
|
||||||
data.setId(dataList.get(0).getId()); |
|
||||||
data.setName(dataList.get(0).getStnm()); |
|
||||||
String item = (String) params.get("item"); |
|
||||||
if (item.contains("降水量")){ |
|
||||||
data.setType("bar"); |
|
||||||
}else{ |
|
||||||
data.setType("line"); |
|
||||||
} |
|
||||||
data.setData(formatChartData(dataList)); |
|
||||||
} |
|
||||||
return data; |
|
||||||
} |
|
||||||
|
|
||||||
public List<Object> formatChartData(List<YcData> dataList){ |
|
||||||
List<Object> objs = new ArrayList<>(); |
|
||||||
for (int j = 0 ; j< dataList.size() ; j++){ |
|
||||||
objs.add(new Object[]{dataList.get(j).getClock()*1000,dataList.get(j).getValue()}); |
|
||||||
} |
|
||||||
return objs; |
|
||||||
} |
|
||||||
} |
|
@ -1,98 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.controller; |
|
||||||
|
|
||||||
import com.ruoyi.code.warning.domain.WaAlarm; |
|
||||||
import com.ruoyi.code.warning.service.IWaAlarmService; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.web.bind.annotation.*; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
/** |
|
||||||
* 预警管理Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/warning/alarm") |
|
||||||
public class WaAlarmController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IWaAlarmService waAlarmService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return waAlarmService.queryPage(params); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
WaAlarm waAlarm = waAlarmService.getById(id); |
|
||||||
|
|
||||||
return R.ok().put("data", waAlarm); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, WaAlarm waAlarm) |
|
||||||
{ |
|
||||||
List<WaAlarm> list = waAlarmService.list(); |
|
||||||
ExcelUtil<WaAlarm> util = new ExcelUtil<WaAlarm>(WaAlarm.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "WaAlarm", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:add')") |
|
||||||
public R add(@RequestBody WaAlarm waAlarm){ |
|
||||||
waAlarmService.save(waAlarm); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:edit')") |
|
||||||
@Log(title = "WaAlarm", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody WaAlarm waAlarm){ |
|
||||||
waAlarmService.updateById(waAlarm); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:alarm:remove')") |
|
||||||
@Log(title = "WaAlarm", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
waAlarmService.removeByIds(Arrays.asList(ids)); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,96 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.controller; |
|
||||||
|
|
||||||
import com.ruoyi.code.warning.domain.WaEmployee; |
|
||||||
import com.ruoyi.code.warning.service.IWaEmployeeService; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.web.bind.annotation.*; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
/** |
|
||||||
* 人员管理Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/warning/employee") |
|
||||||
public class WaEmployeeController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IWaEmployeeService waEmployeeService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return waEmployeeService.queryPage(params); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
WaEmployee waEmployee = waEmployeeService.getById(id); |
|
||||||
return R.ok().put("data", waEmployee); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, WaEmployee waEmployee) |
|
||||||
{ |
|
||||||
List<WaEmployee> list = waEmployeeService.list(); |
|
||||||
ExcelUtil<WaEmployee> util = new ExcelUtil<WaEmployee>(WaEmployee.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "WaEmployee", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:add')") |
|
||||||
public R add(@RequestBody WaEmployee waEmployee){ |
|
||||||
waEmployeeService.save(waEmployee); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:edit')") |
|
||||||
@Log(title = "WaEmployee", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody WaEmployee waEmployee){ |
|
||||||
waEmployeeService.updateById(waEmployee); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:employee:remove')") |
|
||||||
@Log(title = "WaEmployee", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
return waEmployeeService.delByIds(Arrays.asList(ids)); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,96 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.controller; |
|
||||||
|
|
||||||
import com.ruoyi.code.warning.domain.WaMessage; |
|
||||||
import com.ruoyi.code.warning.service.IWaMessageService; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.web.bind.annotation.*; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
/** |
|
||||||
* 短信管理Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/warning/message") |
|
||||||
public class WaMessageController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IWaMessageService waMessageService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return waMessageService.queryPage(params); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
WaMessage waMessage = waMessageService.selectById(id); |
|
||||||
return R.ok().put("data", waMessage); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, WaMessage waMessage) |
|
||||||
{ |
|
||||||
List<WaMessage> list = waMessageService.list(); |
|
||||||
ExcelUtil<WaMessage> util = new ExcelUtil<WaMessage>(WaMessage.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "WaMessage", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:add')") |
|
||||||
public R add(@RequestBody WaMessage waMessage){ |
|
||||||
return waMessageService.saveMessage(waMessage); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:edit')") |
|
||||||
@Log(title = "WaMessage", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody WaMessage waMessage){ |
|
||||||
waMessageService.updateByMessage(waMessage); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:message:remove')") |
|
||||||
@Log(title = "WaMessage", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
waMessageService.delByIds(Arrays.asList(ids)); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,106 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.controller; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.Map; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import javax.annotation.Resource; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import org.springframework.security.access.prepost.PreAuthorize; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.web.bind.annotation.GetMapping; |
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
|
||||||
import org.springframework.web.bind.annotation.PutMapping; |
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping; |
|
||||||
import org.springframework.web.bind.annotation.PathVariable; |
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
|
||||||
import org.springframework.web.bind.annotation.RequestParam; |
|
||||||
import org.springframework.web.bind.annotation.RestController; |
|
||||||
import com.ruoyi.common.annotation.Log; |
|
||||||
import com.ruoyi.common.core.controller.BaseController; |
|
||||||
import com.ruoyi.common.enums.BusinessType; |
|
||||||
import com.ruoyi.code.warning.domain.WaThreshold; |
|
||||||
import com.ruoyi.code.warning.service.IWaThresholdService; |
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil; |
|
||||||
/** |
|
||||||
* 阈值管理Controller |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@RestController |
|
||||||
@RequestMapping("/warning/threshold") |
|
||||||
public class WaThresholdController extends BaseController |
|
||||||
{ |
|
||||||
@Resource |
|
||||||
private IWaThresholdService waThresholdService; |
|
||||||
|
|
||||||
/** |
|
||||||
* 查询列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:list')") |
|
||||||
@RequestMapping("/list") |
|
||||||
public R list(@RequestParam Map<String, Object> params){ |
|
||||||
return waThresholdService.queryPage(params); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取详细信息 |
|
||||||
*/ |
|
||||||
@RequestMapping("/info/{id}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:query')") |
|
||||||
public R info(@PathVariable("id") Long id){ |
|
||||||
WaThreshold waThreshold = waThresholdService.getById(id); |
|
||||||
|
|
||||||
return R.ok().put("data", waThreshold); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 导出列表 |
|
||||||
*/ |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:export')") |
|
||||||
@Log(title = "列表", businessType = BusinessType.EXPORT) |
|
||||||
@PostMapping("/export") |
|
||||||
public void export(HttpServletResponse response, WaThreshold waThreshold) |
|
||||||
{ |
|
||||||
List<WaThreshold> list = waThresholdService.list(); |
|
||||||
ExcelUtil<WaThreshold> util = new ExcelUtil<WaThreshold>(WaThreshold.class); |
|
||||||
util.exportExcel(response, list, "列表数据"); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 新增 |
|
||||||
*/ |
|
||||||
@RequestMapping("/add") |
|
||||||
@Log(title = "WaThreshold", businessType = BusinessType.INSERT) |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:add')") |
|
||||||
public R add(@RequestBody WaThreshold waThreshold){ |
|
||||||
waThresholdService.save(waThreshold); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 修改 |
|
||||||
*/ |
|
||||||
@RequestMapping("/edit") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:edit')") |
|
||||||
@Log(title = "WaThreshold", businessType = BusinessType.UPDATE) |
|
||||||
public R edit(@RequestBody WaThreshold waThreshold){ |
|
||||||
waThresholdService.updateById(waThreshold); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 删除 |
|
||||||
*/ |
|
||||||
@RequestMapping("/delete/{ids}") |
|
||||||
@PreAuthorize("@ss.hasPermi('warning:threshold:remove')") |
|
||||||
@Log(title = "WaThreshold", businessType = BusinessType.DELETE) |
|
||||||
public R delete(@PathVariable Long[] ids){ |
|
||||||
waThresholdService.removeByIds(Arrays.asList(ids)); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,49 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableField; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat; |
|
||||||
import lombok.Data; |
|
||||||
import org.springframework.format.annotation.DateTimeFormat; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 预警管理对象 wa_alarm |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("wa_alarm") |
|
||||||
public class WaAlarm implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** 预警id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 测站id */ |
|
||||||
private Long stnmId; |
|
||||||
|
|
||||||
/** 预警内容 */ |
|
||||||
private String alarmContent; |
|
||||||
|
|
||||||
/** 预警时间 */ |
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|
||||||
private Date alarmTime; |
|
||||||
|
|
||||||
/** 0 未删除 1 删除 */ |
|
||||||
// @TableLogic
|
|
||||||
private Long deleted; |
|
||||||
|
|
||||||
|
|
||||||
@TableField(exist = false) |
|
||||||
private String stnm; |
|
||||||
} |
|
@ -1,36 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.ruoyi.common.annotation.Excel; |
|
||||||
import java.io.Serializable; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 短信人员对象 wa_emp_msg |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-20 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("wa_emp_msg") |
|
||||||
public class WaEmpMsg implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 人员id */ |
|
||||||
private Long empId; |
|
||||||
|
|
||||||
/** 消息id */ |
|
||||||
private Long msgId; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 人员管理对象 wa_employee |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("wa_employee") |
|
||||||
public class WaEmployee implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 姓名 */ |
|
||||||
private String name; |
|
||||||
|
|
||||||
/** 手机号 */ |
|
||||||
private Long phone; |
|
||||||
|
|
||||||
/** 备注 */ |
|
||||||
private String remarks; |
|
||||||
|
|
||||||
/** 0 未删除 1 删除 */ |
|
||||||
// @TableLogic
|
|
||||||
private Long deleted; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,50 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 短信管理对象 wa_message |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("wa_message") |
|
||||||
public class WaMessage implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** 短信id */ |
|
||||||
@TableId(value = "id",type = IdType.AUTO) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 短信名称 */ |
|
||||||
private String msgName; |
|
||||||
|
|
||||||
/** 短信内容 */ |
|
||||||
private String msgContent; |
|
||||||
|
|
||||||
/** 发送时间 */ |
|
||||||
private Date sendTime; |
|
||||||
|
|
||||||
/** 消息状态 */ |
|
||||||
private String sendStaus; |
|
||||||
|
|
||||||
/** 测站id */ |
|
||||||
private Long stnmId; |
|
||||||
|
|
||||||
/** 人员id */ |
|
||||||
@TableField(exist = false) |
|
||||||
private Long empId; |
|
||||||
|
|
||||||
/** 0 未删除 1 删除 */ |
|
||||||
// @TableLogic
|
|
||||||
private Long deleted; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,40 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.domain; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 阈值管理对象 wa_threshold |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@TableName("wa_threshold") |
|
||||||
public class WaThreshold implements Serializable |
|
||||||
{ |
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
/** 阈值id */ |
|
||||||
@TableId(type = IdType.INPUT) |
|
||||||
private Long id; |
|
||||||
|
|
||||||
/** 阈值一级 */ |
|
||||||
private String thresholdLevelL; |
|
||||||
|
|
||||||
/** 阈值二级 */ |
|
||||||
private String thresholdLevelLl; |
|
||||||
|
|
||||||
/** 阈值三级 */ |
|
||||||
private String thresholdLevelLll; |
|
||||||
|
|
||||||
/** 测站id */ |
|
||||||
private Long stnmId; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaAlarm; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import org.apache.ibatis.annotations.Param; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface WaAlarmMapper extends BaseMapper<WaAlarm> |
|
||||||
{ |
|
||||||
|
|
||||||
List<WaAlarm> queryAlarm(@Param("params") Map<String, Object> params); |
|
||||||
} |
|
@ -1,23 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmpMsg; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import org.apache.ibatis.annotations.Param; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-20 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface WaEmpMsgMapper extends BaseMapper<WaEmpMsg> |
|
||||||
{ |
|
||||||
|
|
||||||
boolean saveMessageAndStation(@Param("empId")Long empId, @Param("msgId")Long msgId); |
|
||||||
|
|
||||||
Long selectEmpIdByMsgId(Long msgId); |
|
||||||
|
|
||||||
WaEmpMsg selectByMsgId(Long id); |
|
||||||
} |
|
@ -1,18 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.mapper; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmployee; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface WaEmployeeMapper extends BaseMapper<WaEmployee> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -1,17 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.mapper; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaMessage; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface WaMessageMapper extends BaseMapper<WaMessage> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -1,18 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.mapper; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaThreshold; |
|
||||||
|
|
||||||
/** |
|
||||||
* Mapper接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface WaThresholdMapper extends BaseMapper<WaThreshold> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -1,24 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.code.warning.domain.WaAlarm; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
public interface IWaAlarmService extends IService<WaAlarm> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
List<WaAlarm> queryAlarm(Map<String, Object> params); |
|
||||||
} |
|
@ -1,21 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import java.util.Map; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmpMsg; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-20 |
|
||||||
*/ |
|
||||||
public interface IWaEmpMsgService extends IService<WaEmpMsg> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
} |
|
@ -1,24 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmployee; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
public interface IWaEmployeeService extends IService<WaEmployee> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
R delByIds(List<Long> asList); |
|
||||||
} |
|
@ -1,35 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.code.warning.domain.WaMessage; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
public interface IWaMessageService extends IService<WaMessage> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
/** |
|
||||||
* 保存短信 |
|
||||||
* @param waMessage |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
R saveMessage(WaMessage waMessage); |
|
||||||
|
|
||||||
WaMessage selectById(Long id); |
|
||||||
|
|
||||||
void updateByMessage(WaMessage waMessage); |
|
||||||
|
|
||||||
void delByIds(List<Long> asList); |
|
||||||
} |
|
@ -1,22 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.ruoyi.code.warning.domain.WaThreshold; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service接口 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
public interface IWaThresholdService extends IService<WaThreshold> |
|
||||||
{ |
|
||||||
/** |
|
||||||
* 查询 |
|
||||||
*/ |
|
||||||
R queryPage(Map<String, Object> params); |
|
||||||
|
|
||||||
} |
|
@ -1,44 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.code.warning.domain.WaAlarm; |
|
||||||
import com.ruoyi.code.warning.mapper.WaAlarmMapper; |
|
||||||
import com.ruoyi.code.warning.service.IWaAlarmService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import com.ruoyi.common.utils.StringUtils; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Service("waAlarmService") |
|
||||||
public class WaAlarmServiceImpl extends ServiceImpl<WaAlarmMapper, WaAlarm> implements IWaAlarmService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
Object stnmId = params.get("stnmId"); |
|
||||||
Object alarmTime = params.get("alarmTime"); |
|
||||||
IPage<WaAlarm> page = this.page( |
|
||||||
new Query<WaAlarm>().getPage(params), |
|
||||||
new QueryWrapper<WaAlarm>() |
|
||||||
.eq(StringUtils.isNotNull(stnmId),"stnm_id",stnmId) |
|
||||||
.eq(StringUtils.isNotNull(alarmTime),"alarm_time",alarmTime) |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<WaAlarm> queryAlarm(Map<String, Object> params){ |
|
||||||
return baseMapper.queryAlarm(params); |
|
||||||
} |
|
||||||
} |
|
@ -1,33 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service.impl; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
import com.ruoyi.code.warning.mapper.WaEmpMsgMapper; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmpMsg; |
|
||||||
import com.ruoyi.code.warning.service.IWaEmpMsgService; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-20 |
|
||||||
*/ |
|
||||||
@Service("waEmpMsgService") |
|
||||||
public class WaEmpMsgServiceImpl extends ServiceImpl<WaEmpMsgMapper, WaEmpMsg> implements IWaEmpMsgService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
IPage<WaEmpMsg> page = this.page( |
|
||||||
new Query<WaEmpMsg>().getPage(params), |
|
||||||
new QueryWrapper<WaEmpMsg>() |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,59 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmpMsg; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmployee; |
|
||||||
import com.ruoyi.code.warning.mapper.WaEmpMsgMapper; |
|
||||||
import com.ruoyi.code.warning.mapper.WaEmployeeMapper; |
|
||||||
import com.ruoyi.code.warning.service.IWaEmployeeService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.apache.commons.lang3.ObjectUtils; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Service("waEmployeeService") |
|
||||||
public class WaEmployeeServiceImpl extends ServiceImpl<WaEmployeeMapper, WaEmployee> implements IWaEmployeeService |
|
||||||
{ |
|
||||||
@Autowired |
|
||||||
private WaEmpMsgMapper waEmpMsgMapper; |
|
||||||
|
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
Object name = params.get("name"); |
|
||||||
Object phone = params.get("phone"); |
|
||||||
IPage<WaEmployee> page = this.page( |
|
||||||
new Query<WaEmployee>().getPage(params), |
|
||||||
new QueryWrapper<WaEmployee>() |
|
||||||
.like(ObjectUtils.isNotEmpty(name),"name",name) |
|
||||||
.eq(ObjectUtils.isNotEmpty(phone),"phone",phone) |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public R delByIds(List<Long> asList) { |
|
||||||
if (asList.size() > 0){ |
|
||||||
List<WaEmpMsg> list = waEmpMsgMapper.selectList(new LambdaQueryWrapper<WaEmpMsg>() |
|
||||||
.in(WaEmpMsg::getEmpId, asList)); |
|
||||||
if (list.size() == 0) { |
|
||||||
baseMapper.deleteBatchIds(asList); |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
} |
|
||||||
return R.error("该用户有短信消息,不能删除!"); |
|
||||||
} |
|
||||||
} |
|
@ -1,90 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.code.warning.domain.WaEmpMsg; |
|
||||||
import com.ruoyi.code.warning.domain.WaMessage; |
|
||||||
import com.ruoyi.code.warning.mapper.WaEmpMsgMapper; |
|
||||||
import com.ruoyi.code.warning.mapper.WaMessageMapper; |
|
||||||
import com.ruoyi.code.warning.service.IWaMessageService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.apache.commons.lang3.ObjectUtils; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
import org.springframework.transaction.annotation.Transactional; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Service("waMessageService") |
|
||||||
public class WaMessageServiceImpl extends ServiceImpl<WaMessageMapper, WaMessage> implements IWaMessageService |
|
||||||
{ |
|
||||||
@Autowired |
|
||||||
private WaEmpMsgMapper waEmpMsgMapper; |
|
||||||
|
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
Object stnmId = params.get("stnmId"); |
|
||||||
Object sendTime = params.get("sendTime"); |
|
||||||
Object sendStatus = params.get("sendStaus"); |
|
||||||
IPage<WaMessage> page = this.page( |
|
||||||
new Query<WaMessage>().getPage(params), |
|
||||||
new QueryWrapper<WaMessage>() |
|
||||||
.eq(ObjectUtils.isNotEmpty(stnmId),"stnm_id",stnmId) |
|
||||||
.eq(ObjectUtils.isNotEmpty(sendTime),"send_time",sendTime) |
|
||||||
.eq(ObjectUtils.isNotEmpty(sendStatus),"send_staus",sendStatus) |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
@Transactional |
|
||||||
public R saveMessage(WaMessage waMessage) { |
|
||||||
int result = baseMapper.insert(waMessage); |
|
||||||
System.out.println(waMessage.getId()); |
|
||||||
if (result > 0){ |
|
||||||
boolean flag = waEmpMsgMapper.saveMessageAndStation(waMessage.getEmpId(),waMessage.getId()); |
|
||||||
if(flag){ |
|
||||||
return R.ok(); |
|
||||||
} |
|
||||||
} |
|
||||||
return R.error(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public WaMessage selectById(Long id) { |
|
||||||
WaMessage waMessage = baseMapper.selectById(id); |
|
||||||
Long msgId = waMessage.getId(); |
|
||||||
Long empId = waEmpMsgMapper.selectEmpIdByMsgId(msgId); |
|
||||||
waMessage.setEmpId(empId); |
|
||||||
return waMessage; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void updateByMessage(WaMessage waMessage) { |
|
||||||
baseMapper.updateById(waMessage); |
|
||||||
Long empId = waMessage.getEmpId(); |
|
||||||
WaEmpMsg waEmpMsg = waEmpMsgMapper.selectByMsgId(waMessage.getId()); |
|
||||||
waEmpMsg.setEmpId(empId); |
|
||||||
waEmpMsgMapper.updateById(waEmpMsg); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void delByIds(List<Long> asList) { |
|
||||||
baseMapper.deleteBatchIds(asList); |
|
||||||
waEmpMsgMapper.delete(new LambdaQueryWrapper<WaEmpMsg>() |
|
||||||
.in(WaEmpMsg::getMsgId,asList)); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,36 +0,0 @@ |
|||||||
package com.ruoyi.code.warning.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.ruoyi.code.warning.domain.WaThreshold; |
|
||||||
import com.ruoyi.code.warning.mapper.WaThresholdMapper; |
|
||||||
import com.ruoyi.code.warning.service.IWaThresholdService; |
|
||||||
import com.ruoyi.common.core.page.R; |
|
||||||
import com.ruoyi.common.utils.Query; |
|
||||||
import org.apache.commons.lang3.ObjectUtils; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.Map; |
|
||||||
|
|
||||||
/** |
|
||||||
* Service业务层处理 |
|
||||||
* |
|
||||||
* @author ruoyi |
|
||||||
* @date 2022-09-19 |
|
||||||
*/ |
|
||||||
@Service("waThresholdService") |
|
||||||
public class WaThresholdServiceImpl extends ServiceImpl<WaThresholdMapper, WaThreshold> implements IWaThresholdService |
|
||||||
{ |
|
||||||
@Override |
|
||||||
public R queryPage(Map<String, Object> params) { |
|
||||||
IPage<WaThreshold> page = this.page( |
|
||||||
new Query<WaThreshold>().getPage(params), |
|
||||||
new QueryWrapper<WaThreshold>() |
|
||||||
.eq(ObjectUtils.isNotEmpty(params.get("stnmId")),"stnm_id",params.get("stnmId")) |
|
||||||
); |
|
||||||
|
|
||||||
return R.ok().put("count", page.getTotal()).put("data", page.getRecords()); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,79 +0,0 @@ |
|||||||
package utils; |
|
||||||
|
|
||||||
|
|
||||||
import org.apache.commons.codec.binary.Base64; |
|
||||||
|
|
||||||
import java.io.*; |
|
||||||
|
|
||||||
public class Base64Utils { |
|
||||||
/** |
|
||||||
* 图片转化成base64字符串 |
|
||||||
* |
|
||||||
* @param imgPath |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
public static String GetImageStr(String imgPath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
|
|
||||||
String imgFile = imgPath;// 待处理的图片
|
|
||||||
InputStream in = null; |
|
||||||
byte[] data = null; |
|
||||||
String encode = null; // 返回Base64编码过的字节数组字符串
|
|
||||||
// 对字节数组Base64编码
|
|
||||||
Base64 encoder = new Base64(); |
|
||||||
try { |
|
||||||
// 读取图片字节数组
|
|
||||||
in = new FileInputStream(imgFile); |
|
||||||
data = new byte[in.available()]; |
|
||||||
in.read(data); |
|
||||||
encode = encoder.encodeToString(data); |
|
||||||
} catch (IOException e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} finally { |
|
||||||
try { |
|
||||||
in.close(); |
|
||||||
} catch (IOException e) { |
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
return encode; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* base64字符串转化成图片 |
|
||||||
* |
|
||||||
* @param imgData 图片编码 |
|
||||||
* @param imgFilePath 存放到本地路径 |
|
||||||
* @return |
|
||||||
* @throws IOException |
|
||||||
*/ |
|
||||||
@SuppressWarnings("finally") |
|
||||||
public static boolean GenerateImage(String imgData, String imgFilePath) throws IOException { // 对字节数组字符串进行Base64解码并生成图片
|
|
||||||
if (imgData == null) // 图像数据为空
|
|
||||||
return false; |
|
||||||
Base64 decoder = new Base64(); |
|
||||||
OutputStream out = null; |
|
||||||
try { |
|
||||||
out = new FileOutputStream(imgFilePath); |
|
||||||
// Base64解码
|
|
||||||
byte[] b = decoder.decode(imgData); |
|
||||||
for (int i = 0; i < b.length; ++i) { |
|
||||||
if (b[i] < 0) {// 调整异常数据
|
|
||||||
b[i] += 256; |
|
||||||
} |
|
||||||
} |
|
||||||
out.write(b); |
|
||||||
} catch (FileNotFoundException e) { |
|
||||||
// TODO Auto-generated catch block
|
|
||||||
System.out.println(e.getMessage()); |
|
||||||
e.printStackTrace(); |
|
||||||
} catch (IOException e) { |
|
||||||
// TODO Auto-generated catch block
|
|
||||||
System.out.println(e.getMessage()); |
|
||||||
e.printStackTrace(); |
|
||||||
} finally { |
|
||||||
out.flush(); |
|
||||||
out.close(); |
|
||||||
return true; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,301 +0,0 @@ |
|||||||
package utils; |
|
||||||
|
|
||||||
import cn.hutool.core.util.RuntimeUtil; |
|
||||||
import com.alibaba.fastjson.JSON; |
|
||||||
import com.ruoyi.common.config.RuoYiConfig; |
|
||||||
import com.ruoyi.common.utils.DateUtils; |
|
||||||
import com.ruoyi.common.utils.http.HttpUtils; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.apache.commons.io.FileUtils; |
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling; |
|
||||||
import org.springframework.scheduling.annotation.Scheduled; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
import org.springframework.transaction.annotation.Transactional; |
|
||||||
|
|
||||||
import javax.annotation.PreDestroy; |
|
||||||
import java.io.*; |
|
||||||
import java.util.Date; |
|
||||||
import java.util.concurrent.ConcurrentHashMap; |
|
||||||
|
|
||||||
/** |
|
||||||
* rtsp 转 hlv协议 |
|
||||||
* |
|
||||||
* @author kzw |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@Slf4j |
|
||||||
@EnableScheduling |
|
||||||
public class RtspConvert { |
|
||||||
//转换map
|
|
||||||
private static ConcurrentHashMap<String, CoverThread> coverMap = new ConcurrentHashMap<>(); |
|
||||||
//拉流命令
|
|
||||||
private static final String ffmpegCmd = "ffmpeg -i \"%s\" -c copy -f hls -hls_time 5.0 -hls_list_size 2 -hls_flags 2 %s"; |
|
||||||
|
|
||||||
//ffmpeg -i "rtsp://admin:admin123@192.168.1.40:554/stream/realtime?channel=1&streamtype=0" -c copy -f hls -hls_time 4.0 -hls_list_size 2 -hls_flags 2 "D:\video\test.m3u8"
|
|
||||||
@PreDestroy |
|
||||||
public void closeProcess() { |
|
||||||
log.info("关闭ffmpeg转换进程,java程序不一定关闭process进程"); |
|
||||||
closeAllProcess(); |
|
||||||
for (String ip : coverMap.keySet()) { |
|
||||||
try { |
|
||||||
log.error("开始停止{}", ip); |
|
||||||
coverMap.get(ip).stopTask(); |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* ffmpeg -i "rtsp://admin:xxx@192.168.0.251:554/Streaming/Channels/101" -c copy -f hls -hls_time 5.0 -hls_list_size 5 -hls_flags 2 F:\resources\hls\2000\live.m3u8 |
|
||||||
*/ |
|
||||||
/** |
|
||||||
* 检查设备ip是否能正常访问 |
|
||||||
*/ |
|
||||||
private boolean checkDeviceOnline(String ip) { |
|
||||||
String res = HttpUtils.sendGet("http://" + ip); |
|
||||||
if (StringUtils.isNotBlank(res)) { |
|
||||||
return true; |
|
||||||
} |
|
||||||
return false; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 转换rtsp并获取hls文件路径 |
|
||||||
* 视频地址 http.../control-api/upload/hls/{ip}/live.m3u8 |
|
||||||
*/ |
|
||||||
public String rtsp2Hls(String ip, String userName, String pwd) { |
|
||||||
System.out.println(JSON.toJSON(coverMap)); |
|
||||||
if (coverMap.containsKey(ip)) { |
|
||||||
CoverThread thread = coverMap.get(ip); |
|
||||||
if (thread == null || thread.getTaskState() != CoverThread.running) { |
|
||||||
} else { |
|
||||||
return StringUtils.replace(thread.getM3U8File(), RuoYiConfig.getProfile(), ""); |
|
||||||
} |
|
||||||
} |
|
||||||
String rtspUrl = "rtsp://" + userName + ":" + pwd + "@" + ip + ":554/stream/realtime?channel=1&streamtype=0"; |
|
||||||
String m3u8File = RuoYiConfig.getProfile() + File.separator+"upload" + File.separator + "hls" |
|
||||||
// String m3u8File = "D:" + File.separator + "ruoyi" + File.separator + "uploadPath" + File.separator + "hls"
|
|
||||||
+ File.separator + ip.replaceAll("\\.", "_") + File.separator + "live.m3u8"; |
|
||||||
startTransform(ip, rtspUrl, m3u8File, userName, pwd); |
|
||||||
CoverThread thread = coverMap.get(ip); |
|
||||||
if (thread != null) { |
|
||||||
return StringUtils.replace(thread.getM3U8File(), RuoYiConfig.getProfile(), ""); |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 开启转换 |
|
||||||
*/ |
|
||||||
private void startTransform(String ip, String rtspUrl, String m3u8Path, String userName, String pwd) { |
|
||||||
log.info("转换rtsp, {},{},{}", ip, rtspUrl, m3u8Path); |
|
||||||
String memKey = "startLive" + ip; |
|
||||||
synchronized (memKey.intern()) { |
|
||||||
if (coverMap.containsKey(ip)) { |
|
||||||
stopTransform(ip); |
|
||||||
} |
|
||||||
CoverThread thread = new CoverThread(ip, rtspUrl, m3u8Path, userName, pwd); |
|
||||||
coverMap.put(ip, thread); |
|
||||||
thread.start(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 停止转换 |
|
||||||
*/ |
|
||||||
public void stopTransform(String ip) { |
|
||||||
String memKey = "startLive" + ip; |
|
||||||
synchronized (memKey.intern()) { |
|
||||||
System.out.println(JSON.toJSON(coverMap)); |
|
||||||
if (coverMap.containsKey(ip)) { |
|
||||||
CoverThread thread = coverMap.get(ip); |
|
||||||
if (thread != null && thread.getTaskState() != CoverThread.fail) { |
|
||||||
System.out.println("停止转换ip"+ip); |
|
||||||
thread.stopTask(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 监控所有的转换线程 |
|
||||||
*/ |
|
||||||
@Scheduled(cron = "0 0/8 * * * ?") |
|
||||||
public synchronized void monitorThreads() { |
|
||||||
for (String ip : coverMap.keySet()) { |
|
||||||
CoverThread thread = coverMap.get(ip); |
|
||||||
if (thread != null && thread.getTaskState() != CoverThread.running) { |
|
||||||
//线程出现异常
|
|
||||||
rtsp2Hls(ip, thread.getUserName(), thread.getPwd()); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public void closeAllProcess(){ |
|
||||||
String command = "taskkill /f /im ffmpeg.exe"; |
|
||||||
if(!isWin()){ |
|
||||||
command = "/usr/local/water-monitor-api/closeFFmpeg.sh"; |
|
||||||
} |
|
||||||
System.out.println("command ["+command+"]"); |
|
||||||
String result = RuntimeUtil.execForStr(command); |
|
||||||
System.out.println("command result ["+result+"]"); |
|
||||||
coverMap.clear(); |
|
||||||
} |
|
||||||
|
|
||||||
public boolean isWin(){ |
|
||||||
String os = System.getProperty("os.name"); |
|
||||||
return os.toLowerCase().startsWith("win"); |
|
||||||
} |
|
||||||
|
|
||||||
public class RunThread extends Thread { |
|
||||||
private InputStream is; |
|
||||||
private String printType; |
|
||||||
|
|
||||||
RunThread(InputStream is, String printType) { |
|
||||||
this.is = is; |
|
||||||
this.printType = printType; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void run() { |
|
||||||
try { |
|
||||||
InputStreamReader isr = new InputStreamReader(is); |
|
||||||
BufferedReader br = new BufferedReader(isr); |
|
||||||
String line; |
|
||||||
while ((line = br.readLine()) != null) { |
|
||||||
log.info(printType + ">" + line); |
|
||||||
} |
|
||||||
} catch (IOException ioe) { |
|
||||||
log.info("RunThread error:", ioe); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 执行命令线程 |
|
||||||
*/ |
|
||||||
private class CoverThread extends Thread { |
|
||||||
private String ip; |
|
||||||
private String rtspUrl; |
|
||||||
private String m3u8File; |
|
||||||
private String userName; |
|
||||||
private String pwd; |
|
||||||
private int taskState = 0; //运行状态 0未开始 1进行中 -1失败
|
|
||||||
private static final int notStart = 0; |
|
||||||
private static final int running = 1; |
|
||||||
private static final int fail = -1; |
|
||||||
private Process process = null; |
|
||||||
|
|
||||||
CoverThread(String ip, String rtspUrl, String m3u8File, String userName, String pwd) { |
|
||||||
this.ip = ip; |
|
||||||
this.rtspUrl = rtspUrl; |
|
||||||
this.m3u8File = m3u8File; |
|
||||||
this.userName = userName; |
|
||||||
this.pwd = pwd; |
|
||||||
setName("m3u8-" + ip); |
|
||||||
this.taskState = notStart; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void run() { |
|
||||||
try { |
|
||||||
FileUtils.forceMkdir(new File(m3u8File).getParentFile()); |
|
||||||
if (!checkDeviceOnline(ip)) { |
|
||||||
log.warn("设备{},离线", ip); |
|
||||||
this.taskState = fail; |
|
||||||
return; |
|
||||||
} |
|
||||||
String command = String.format(ffmpegCmd, rtspUrl, m3u8File); |
|
||||||
this.taskState = running; |
|
||||||
|
|
||||||
//判断是操作系统是linu2x还是windows
|
|
||||||
String[] comds; |
|
||||||
if (isWin()) { |
|
||||||
comds = new String[]{"cmd", "/c", command}; |
|
||||||
// comds = new String[]{"cmd", "/c", "start", "/b", "cmd.exe", "/k", command};
|
|
||||||
} else { |
|
||||||
comds = new String[]{"/bin/sh", "-c", command}; |
|
||||||
} |
|
||||||
|
|
||||||
// 开始执行命令
|
|
||||||
log.info("执行命令:" + command); |
|
||||||
process = Runtime.getRuntime().exec(comds); |
|
||||||
|
|
||||||
//开启线程监听(此处解决 waitFor() 阻塞/锁死 问题)
|
|
||||||
new RunThread(process.getInputStream(), "INFO").start(); |
|
||||||
new RunThread(process.getErrorStream(), "ERROR").start(); |
|
||||||
int flag = process.waitFor(); |
|
||||||
log.info("结束{}", ip); |
|
||||||
} catch (Exception e) { |
|
||||||
log.error("出现异常" + e.getMessage(), e); |
|
||||||
this.taskState = fail; |
|
||||||
} finally { |
|
||||||
if (process != null) { |
|
||||||
try { |
|
||||||
process.exitValue(); |
|
||||||
} catch (Exception e) { |
|
||||||
} |
|
||||||
try { |
|
||||||
process.destroyForcibly(); |
|
||||||
} catch (Exception e) { |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 获取任务执行状态 |
|
||||||
*/ |
|
||||||
public int getTaskState() { |
|
||||||
return taskState; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 立即停止任务 |
|
||||||
*/ |
|
||||||
public void stopTask() { |
|
||||||
if (process != null) { |
|
||||||
try { |
|
||||||
process.destroy(); |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public String getM3U8File() { |
|
||||||
return this.m3u8File; |
|
||||||
} |
|
||||||
|
|
||||||
public String getUserName() { |
|
||||||
return userName; |
|
||||||
} |
|
||||||
|
|
||||||
public String getPwd() { |
|
||||||
return pwd; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public void openTask(){ |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception { |
|
||||||
RtspConvert convert = new RtspConvert(); |
|
||||||
convert.closeAllProcess(); |
|
||||||
String ip = "192.168.1.40"; |
|
||||||
String userName = "admin"; |
|
||||||
String pwd = "admin123"; |
|
||||||
String m3u8 = convert.rtsp2Hls(ip, userName, pwd); |
|
||||||
System.out.println("***********************************" + m3u8); |
|
||||||
// Thread.sleep(10 * 1000);
|
|
||||||
// convert.stopTransform(ip);
|
|
||||||
// System.out.println("************************************结束**************");
|
|
||||||
} |
|
||||||
} |
|
@ -1,27 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
|
||||||
<!DOCTYPE mapper |
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|
||||||
<mapper namespace="com.ruoyi.code.rtudata.mapper.RtuDataMapper"> |
|
||||||
|
|
||||||
<select id="tabsList" resultType="com.ruoyi.code.rtudata.domain.RtuData"> |
|
||||||
SELECT DISTINCT item,item_code FROM `rtu_data` |
|
||||||
</select> |
|
||||||
<select id="getSids" resultType="java.lang.Integer"> |
|
||||||
SELECT DISTINCT sid FROM rtu_data |
|
||||||
<where> |
|
||||||
item_code = #{params.itemCode} |
|
||||||
<if test="params.startTime != null"> |
|
||||||
and dt>=#{params.startTime} |
|
||||||
</if> |
|
||||||
<if test="params.endTime != null"> |
|
||||||
and dt <=#{params.endTime} |
|
||||||
</if> |
|
||||||
</where> |
|
||||||
</select> |
|
||||||
<select id="selectWaterData" resultType="com.ruoyi.code.camera.domain.YcData"> |
|
||||||
SELECT id, sid as stnm, dt as tm, unix_timestamp(dt) as clock, val as value from rtu_data |
|
||||||
where item_code = #{params.itemCode} and sid = #{params.sid} and dt>=#{params.startTime} and dt <=#{params.endTime} |
|
||||||
order by dt desc |
|
||||||
</select> |
|
||||||
</mapper> |
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue