Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
b84b587a
提交
b84b587a
authored
5月 15, 2022
作者:
Administrator
浏览文件
操作
浏览文件
下载
差异文件
合并
上级
8d81b301
05a5010f
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
151 个修改的文件
包含
2054 行增加
和
507 行删除
+2054
-507
build.gradle
app/build.gradle
+3
-1
AlarmType.java
app/src/main/java/com/yiring/app/domain/alarm/AlarmType.java
+23
-0
Broadcast.java
.../main/java/com/yiring/app/domain/broadcast/Broadcast.java
+2
-4
District.java
...rc/main/java/com/yiring/app/domain/district/District.java
+10
-1
DistrictRepository.java
...va/com/yiring/app/domain/district/DistrictRepository.java
+9
-0
KeyAlarm.java
app/src/main/java/com/yiring/app/domain/key/KeyAlarm.java
+26
-5
KeyAlarmLog.java
app/src/main/java/com/yiring/app/domain/key/KeyAlarmLog.java
+58
-0
KeyAlarmLogRepository.java
...java/com/yiring/app/domain/key/KeyAlarmLogRepository.java
+2
-2
KeyAlarmRule.java
...src/main/java/com/yiring/app/domain/key/KeyAlarmRule.java
+3
-8
KeyAlarmRuleRepository.java
...ava/com/yiring/app/domain/key/KeyAlarmRuleRepository.java
+17
-0
LocationAlarmRule.java
...ava/com/yiring/app/domain/location/LocationAlarmRule.java
+4
-4
LocationBeacon.java
...n/java/com/yiring/app/domain/location/LocationBeacon.java
+1
-0
LocationFence.java
...in/java/com/yiring/app/domain/location/LocationFence.java
+8
-2
LocationFenceAlarm.java
...va/com/yiring/app/domain/location/LocationFenceAlarm.java
+92
-0
LocationFenceAlarmRepository.java
...ing/app/domain/location/LocationFenceAlarmRepository.java
+17
-0
LocationFenceRepository.java
...m/yiring/app/domain/location/LocationFenceRepository.java
+9
-0
LocationFenceRuleRepository.java
...ring/app/domain/location/LocationFenceRuleRepository.java
+1
-1
LocationLog.java
...main/java/com/yiring/app/domain/location/LocationLog.java
+9
-0
LocationTag.java
...main/java/com/yiring/app/domain/location/LocationTag.java
+5
-16
LocationTagRepository.java
...com/yiring/app/domain/location/LocationTagRepository.java
+28
-1
LocationTurnover.java
...java/com/yiring/app/domain/location/LocationTurnover.java
+76
-0
LocationTurnoverRepository.java
...iring/app/domain/location/LocationTurnoverRepository.java
+17
-0
AccidentSpot.java
...in/java/com/yiring/app/domain/rehearsal/AccidentSpot.java
+1
-1
EvacuationZone.java
.../java/com/yiring/app/domain/rehearsal/EvacuationZone.java
+1
-1
RehearsalPlanLog.java
...ava/com/yiring/app/domain/rehearsal/RehearsalPlanLog.java
+63
-0
RehearsalPlanLogRepository.java
...ring/app/domain/rehearsal/RehearsalPlanLogRepository.java
+23
-0
RehearsalPlanRepository.java
.../yiring/app/domain/rehearsal/RehearsalPlanRepository.java
+16
-0
Video.java
app/src/main/java/com/yiring/app/domain/video/Video.java
+1
-0
KeyAlarmExportExcel.java
...in/java/com/yiring/app/excel/key/KeyAlarmExportExcel.java
+65
-0
KeyAlarmRuleExportExcel.java
...ava/com/yiring/app/excel/key/KeyAlarmRuleExportExcel.java
+7
-7
LocationAlarmRuleExcel.java
...com/yiring/app/excel/location/LocationAlarmRuleExcel.java
+17
-13
RehearsalPlanExcel.java
...va/com/yiring/app/excel/rehearsal/RehearsalPlanExcel.java
+73
-0
UserImportExcel.java
.../main/java/com/yiring/app/excel/user/UserImportExcel.java
+2
-5
MockPositionMessageJob.java
.../main/java/com/yiring/app/job/MockPositionMessageJob.java
+54
-17
AlarmConditionParam.java
.../java/com/yiring/app/param/alarm/AlarmConditionParam.java
+2
-1
AlarmTypeAddParam.java
...in/java/com/yiring/app/param/alarm/AlarmTypeAddParam.java
+2
-1
AlarmTypeModifyParam.java
...java/com/yiring/app/param/alarm/AlarmTypeModifyParam.java
+2
-2
HistoryRouteConditionParam.java
...pp/param/analysis/history/HistoryRouteConditionParam.java
+2
-1
DistrictAddParam.java
.../java/com/yiring/app/param/district/DistrictAddParam.java
+1
-1
DistrictModifyParam.java
...va/com/yiring/app/param/district/DistrictModifyParam.java
+1
-1
KeyAlarmAddParam.java
.../main/java/com/yiring/app/param/key/KeyAlarmAddParam.java
+63
-0
KeyAlarmLogFindParam.java
...n/java/com/yiring/app/param/key/KeyAlarmLogFindParam.java
+38
-0
KeyAlarmRuleAddParam.java
...n/java/com/yiring/app/param/key/KeyAlarmRuleAddParam.java
+2
-2
KeyAlarmRuleExportParam.java
...ava/com/yiring/app/param/key/KeyAlarmRuleExportParam.java
+2
-2
KeyAlarmRuleModifyParam.java
...ava/com/yiring/app/param/key/KeyAlarmRuleModifyParam.java
+2
-2
KeyAlarmRulePageParam.java
.../java/com/yiring/app/param/key/KeyAlarmRulePageParam.java
+2
-2
LocationBeaconAddParam.java
...ing/app/param/location/beacon/LocationBeaconAddParam.java
+8
-3
LocationFenceAddParam.java
...iring/app/param/location/fence/LocationFenceAddParam.java
+2
-1
LocationFenceConditionParam.java
...app/param/location/fence/LocationFenceConditionParam.java
+2
-1
LocationFenceModifyParam.java
...ng/app/param/location/fence/LocationFenceModifyParam.java
+2
-2
AlarmRuleBatchAddParam.java
...iring/app/param/location/rule/AlarmRuleBatchAddParam.java
+29
-0
AlarmRuleBatchModifyParam.java
...ng/app/param/location/rule/AlarmRuleBatchModifyParam.java
+29
-0
LocationAlarmRuleAddParam.java
...ng/app/param/location/rule/LocationAlarmRuleAddParam.java
+17
-7
LocationAlarmRuleModifyParam.java
...app/param/location/rule/LocationAlarmRuleModifyParam.java
+14
-5
LocationFenceRuleAddParam.java
...ng/app/param/location/rule/LocationFenceRuleAddParam.java
+2
-1
LocationFenceRuleModifyParam.java
...app/param/location/rule/LocationFenceRuleModifyParam.java
+2
-1
RuleParam.java
...in/java/com/yiring/app/param/location/rule/RuleParam.java
+2
-1
AccidentSpotModifyParam.java
...m/yiring/app/param/rehearsal/AccidentSpotModifyParam.java
+0
-2
EvacuationZoneModifyParam.java
...yiring/app/param/rehearsal/EvacuationZoneModifyParam.java
+0
-2
RehearsalPlanAddParam.java
...com/yiring/app/param/rehearsal/RehearsalPlanAddParam.java
+78
-0
RehearsalPlanConditionParam.java
...ring/app/param/rehearsal/RehearsalPlanConditionParam.java
+43
-0
RehearsalPlanModifyParam.java
.../yiring/app/param/rehearsal/RehearsalPlanModifyParam.java
+72
-0
RehearsalPlanPlaybackParam.java
...iring/app/param/rehearsal/RehearsalPlanPlaybackParam.java
+36
-0
MockZyRabbitConfig.java
...java/com/yiring/app/rabbit/config/MockZyRabbitConfig.java
+21
-11
RabbitConfig.java
.../main/java/com/yiring/app/rabbit/config/RabbitConfig.java
+0
-17
ZyConfigProperties.java
...java/com/yiring/app/rabbit/config/ZyConfigProperties.java
+1
-0
ZyRabbitConfig.java
...ain/java/com/yiring/app/rabbit/config/ZyRabbitConfig.java
+30
-34
PositionMessageHandler.java
...om/yiring/app/rabbit/receiver/PositionMessageHandler.java
+15
-28
AlarmService.java
.../main/java/com/yiring/app/service/alarm/AlarmService.java
+1
-1
AlarmServiceImpl.java
...a/com/yiring/app/service/alarm/impl/AlarmServiceImpl.java
+4
-5
BroadcastAudioService.java
...m/yiring/app/service/broadcast/BroadcastAudioService.java
+9
-0
BroadcastAudioServiceImpl.java
...app/service/broadcast/impl/BroadcastAudioServiceImpl.java
+48
-2
DepartmentServiceImpl.java
...m/yiring/app/service/dept/impl/DepartmentServiceImpl.java
+14
-11
DistrictServiceImpl.java
...yiring/app/service/district/impl/DistrictServiceImpl.java
+1
-1
KeyAlarmLogService.java
...n/java/com/yiring/app/service/key/KeyAlarmLogService.java
+24
-0
KeyAlarmRuleService.java
.../java/com/yiring/app/service/key/KeyAlarmRuleService.java
+15
-15
KeyAlarmService.java
...main/java/com/yiring/app/service/key/KeyAlarmService.java
+8
-0
KeyAlarmLogServiceImpl.java
...m/yiring/app/service/key/impl/KeyAlarmLogServiceImpl.java
+78
-0
KeyAlarmRuleServiceImpl.java
.../yiring/app/service/key/impl/KeyAlarmRuleServiceImpl.java
+0
-0
KeyAlarmServiceImpl.java
.../com/yiring/app/service/key/impl/KeyAlarmServiceImpl.java
+105
-7
LocationFenceServiceImpl.java
...service/location/fence/impl/LocationFenceServiceImpl.java
+1
-1
LocationAlarmRuleService.java
...g/app/service/location/rule/LocationAlarmRuleService.java
+18
-2
LocationAlarmRuleServiceImpl.java
...vice/location/rule/impl/LocationAlarmRuleServiceImpl.java
+41
-7
PositionMessageService.java
...om/yiring/app/service/message/PositionMessageService.java
+1
-1
PositionMessageServiceImpl.java
.../app/service/message/impl/PositionMessageServiceImpl.java
+0
-0
ZyMessageServiceImpl.java
...yiring/app/service/message/impl/ZyMessageServiceImpl.java
+0
-200
RehearsalPlanService.java
...om/yiring/app/service/rehearsal/RehearsalPlanService.java
+92
-0
AccidentSpotServiceImpl.java
...g/app/service/rehearsal/impl/AccidentSpotServiceImpl.java
+1
-1
RehearsalPlanServiceImpl.java
.../app/service/rehearsal/impl/RehearsalPlanServiceImpl.java
+0
-0
UserAppServiceImpl.java
.../com/yiring/app/service/user/impl/UserAppServiceImpl.java
+2
-11
GeoUtils.java
app/src/main/java/com/yiring/app/util/GeoUtils.java
+22
-7
ZipUtils.java
app/src/main/java/com/yiring/app/util/ZipUtils.java
+211
-0
LonLatUtil.java
app/src/main/java/com/yiring/app/util/zy/LonLatUtil.java
+3
-2
CodeNameVo.java
app/src/main/java/com/yiring/app/vo/CodeNameVo.java
+3
-0
IdNameVo.java
app/src/main/java/com/yiring/app/vo/IdNameVo.java
+3
-0
AlarmTypeVo.java
app/src/main/java/com/yiring/app/vo/alarm/AlarmTypeVo.java
+1
-1
HistoryRouteVo.java
...va/com/yiring/app/vo/analysis/history/HistoryRouteVo.java
+2
-1
DistrictVo.java
app/src/main/java/com/yiring/app/vo/district/DistrictVo.java
+1
-1
KeyAlarmLogVo.java
app/src/main/java/com/yiring/app/vo/key/KeyAlarmLogVo.java
+68
-0
KeyAlarmRuleVo.java
app/src/main/java/com/yiring/app/vo/key/KeyAlarmRuleVo.java
+10
-10
LocationFenceVo.java
...ava/com/yiring/app/vo/location/fence/LocationFenceVo.java
+0
-0
LocationAlarmRuleVo.java
.../com/yiring/app/vo/location/rule/LocationAlarmRuleVo.java
+0
-0
LocationFenceRuleVo.java
.../com/yiring/app/vo/location/rule/LocationFenceRuleVo.java
+0
-0
RuleVo.java
...src/main/java/com/yiring/app/vo/location/rule/RuleVo.java
+0
-0
AccidentSpotVo.java
...main/java/com/yiring/app/vo/rehearsal/AccidentSpotVo.java
+0
-0
EvacuationZoneVo.java
...in/java/com/yiring/app/vo/rehearsal/EvacuationZoneVo.java
+0
-0
RehearsalPlanRealTimeVo.java
.../com/yiring/app/vo/rehearsal/RehearsalPlanRealTimeVo.java
+0
-0
RehearsalPlanVo.java
...ain/java/com/yiring/app/vo/rehearsal/RehearsalPlanVo.java
+0
-0
UserLocationVo.java
...main/java/com/yiring/app/vo/rehearsal/UserLocationVo.java
+0
-0
ExampleController.java
app/src/main/java/com/yiring/app/web/ExampleController.java
+0
-0
AlarmTypeController.java
...in/java/com/yiring/app/web/alarm/AlarmTypeController.java
+0
-0
HistoryRouteController.java
...ring/app/web/analysis/history/HistoryRouteController.java
+0
-0
AppletUserController.java
...java/com/yiring/app/web/appUser/AppletUserController.java
+0
-0
BroadcastAudioController.java
...om/yiring/app/web/broadcast/BroadcastAudioController.java
+0
-0
BroadcastController.java
...ava/com/yiring/app/web/broadcast/BroadcastController.java
+0
-0
DepartmentController.java
...in/java/com/yiring/app/web/dept/DepartmentController.java
+0
-0
DictController.java
...src/main/java/com/yiring/app/web/dict/DictController.java
+0
-0
DictTypeController.java
...main/java/com/yiring/app/web/dict/DictTypeController.java
+0
-0
DistrictController.java
.../java/com/yiring/app/web/district/DistrictController.java
+0
-0
IconController.java
...src/main/java/com/yiring/app/web/icon/IconController.java
+0
-0
KeyAlarmController.java
.../main/java/com/yiring/app/web/key/KeyAlarmController.java
+0
-0
KeyAlarmLogController.java
...in/java/com/yiring/app/web/key/KeyAlarmLogController.java
+0
-0
KeyAlarmRuleController.java
...n/java/com/yiring/app/web/key/KeyAlarmRuleController.java
+0
-0
LocationBeaconController.java
...ing/app/web/location/beacon/LocationBeaconController.java
+0
-0
LocationFenceController.java
...iring/app/web/location/fence/LocationFenceController.java
+0
-0
LocationAlarmRuleController.java
...ng/app/web/location/rule/LocationAlarmRuleController.java
+0
-0
LocationFenceRuleController.java
...ng/app/web/location/rule/LocationFenceRuleController.java
+0
-0
LocationTagController.java
...om/yiring/app/web/location/tag/LocationTagController.java
+0
-0
LocationTagTypeController.java
...iring/app/web/location/tag/LocationTagTypeController.java
+0
-0
MapController.java
app/src/main/java/com/yiring/app/web/map/MapController.java
+0
-0
PersonnelStatisticsController.java
.../app/web/perstatistics/PersonnelStatisticsController.java
+0
-0
PostController.java
...src/main/java/com/yiring/app/web/post/PostController.java
+0
-0
AccidentSpotController.java
.../com/yiring/app/web/rehearsal/AccidentSpotController.java
+0
-0
EvacuationZoneController.java
...om/yiring/app/web/rehearsal/EvacuationZoneController.java
+0
-0
RehearsalPlanController.java
...com/yiring/app/web/rehearsal/RehearsalPlanController.java
+0
-0
UserAppController.java
.../main/java/com/yiring/app/web/user/UserAppController.java
+0
-0
VideoController.java
...c/main/java/com/yiring/app/web/video/VideoController.java
+0
-0
CarController.java
...c/main/java/com/yiring/app/web/visitor/CarController.java
+0
-0
VisitorController.java
...in/java/com/yiring/app/web/visitor/VisitorController.java
+0
-0
application-dev.yml
app/src/main/resources/application-dev.yml
+0
-0
build.gradle
basic-auth/build.gradle
+0
-0
UserService.java
...c/main/java/com/yiring/auth/service/user/UserService.java
+0
-0
UserServiceImpl.java
...va/com/yiring/auth/service/user/impl/UserServiceImpl.java
+0
-0
AuthController.java
...rc/main/java/com/yiring/auth/web/auth/AuthController.java
+0
-0
PermissionController.java
.../com/yiring/auth/web/permission/PermissionController.java
+0
-0
RoleController.java
...rc/main/java/com/yiring/auth/web/role/RoleController.java
+0
-0
UserController.java
...rc/main/java/com/yiring/auth/web/user/UserController.java
+0
-0
build.gradle
basic-common/minio/build.gradle
+0
-0
MinioController.java
.../src/main/java/com/yiring/common/web/MinioController.java
+0
-0
TimesAspect.java
...l/src/main/java/com/yiring/common/aspect/TimesAspect.java
+0
-0
XxlJobAspect.java
.../src/main/java/com/yiring/common/aspect/XxlJobAspect.java
+0
-0
没有找到文件。
app/build.gradle
浏览文件 @
b84b587a
...
...
@@ -36,7 +36,7 @@ dependencies {
// Optional: Doc
implementation
project
(
":basic-common:doc"
)
implementation
"
io.swagger:swagger-annotations:${swaggerAnnotations
Version}"
implementation
"
com.github.xiaoymin:knife4j-spring-boot-starter:${knife4j
Version}"
// Optional: Auth
implementation
project
(
":basic-auth"
)
...
...
@@ -78,4 +78,6 @@ dependencies {
// xxl-job
implementation
"com.xuxueli:xxl-job-core:${xxlJobVersion}"
// minio
implementation
"io.minio:minio:${minioVersion}"
}
app/src/main/java/com/yiring/app/domain/alarm/AlarmType.java
浏览文件 @
b84b587a
...
...
@@ -4,6 +4,7 @@ package com.yiring.app.domain.alarm;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.Objects
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldNameConstants
;
...
...
@@ -68,4 +69,26 @@ public class AlarmType implements Serializable {
@Comment
(
value
=
"是否删除"
)
@Column
(
nullable
=
false
)
private
Boolean
deleted
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
AlarmType
alarmType
=
(
AlarmType
)
o
;
return
(
Objects
.
equals
(
id
,
alarmType
.
id
)
&&
Objects
.
equals
(
name
,
alarmType
.
name
)
&&
Objects
.
equals
(
fenceType
,
alarmType
.
fenceType
)
&&
Objects
.
equals
(
relevanceParam
,
alarmType
.
relevanceParam
)
&&
Objects
.
equals
(
comment
,
alarmType
.
comment
)
&&
Objects
.
equals
(
createTime
,
alarmType
.
createTime
)
&&
Objects
.
equals
(
lastUpdateTime
,
alarmType
.
lastUpdateTime
)
&&
Objects
.
equals
(
deleted
,
alarmType
.
deleted
)
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
id
,
name
,
fenceType
,
relevanceParam
,
comment
,
createTime
,
lastUpdateTime
,
deleted
);
}
}
app/src/main/java/com/yiring/app/domain/broadcast/Broadcast.java
浏览文件 @
b84b587a
...
...
@@ -4,10 +4,7 @@ package com.yiring.app.domain.broadcast;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
...
...
@@ -52,6 +49,7 @@ public class Broadcast implements Serializable {
String
broadcastName
;
@Comment
(
"坐标点信息"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@Comment
(
"播报设备地址"
)
...
...
app/src/main/java/com/yiring/app/domain/district/District.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
district
;
import
com.yiring.app.domain.location.LocationTag
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.HashSet
;
import
java.util.Set
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldNameConstants
;
...
...
@@ -59,7 +62,7 @@ public class District implements Serializable {
@Comment
(
"区域信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
@Column
(
columnDefinition
=
"geometry
(Geometry,4326)
"
)
private
Geometry
geometry
;
@Comment
(
"创建时间"
)
...
...
@@ -75,4 +78,10 @@ public class District implements Serializable {
@Comment
(
value
=
"是否删除"
)
@Column
(
nullable
=
false
)
Boolean
deleted
;
@ToString
.
Exclude
@Comment
(
"区域中的标签集合"
)
@Builder
.
Default
@ManyToMany
(
fetch
=
FetchType
.
LAZY
)
Set
<
LocationTag
>
tags
=
new
HashSet
<>(
0
);
}
app/src/main/java/com/yiring/app/domain/district/DistrictRepository.java
浏览文件 @
b84b587a
...
...
@@ -3,6 +3,7 @@ package com.yiring.app.domain.district;
import
java.io.Serializable
;
import
java.util.List
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Query
;
...
...
@@ -36,4 +37,12 @@ public interface DistrictRepository extends JpaRepository<District, Serializable
*/
@Query
(
"SELECT d FROM District d WHERE d.name like %?1%"
)
List
<
District
>
findLikeName
(
String
name
);
/**
* 查询空间信息在区域内的区域信息
* @param geometry 空间信息
* @return 区域信息
*/
@Query
(
value
=
"select d.* from bs_district d where st_contains(d.geometry, :geometry)"
,
nativeQuery
=
true
)
List
<
District
>
findByGeometryContains
(
Geometry
geometry
);
}
app/src/main/java/com/yiring/app/domain/key/KeyAlarm.java
浏览文件 @
b84b587a
...
...
@@ -6,14 +6,15 @@ import com.yiring.auth.domain.user.User;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java
x.persistence.Entity
;
import
java
x.persistence.JoinColumn
;
import
java
x.persistence.ManyToOne
;
import
javax.persistence.
Table
;
import
java
.math.BigDecimal
;
import
java
.util.HashSet
;
import
java
.util.Set
;
import
javax.persistence.
*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.locationtech.jts.geom.Point
;
/**
*
...
...
@@ -32,7 +33,7 @@ import org.hibernate.annotations.Comment;
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_KEY_ALARM"
)
@Comment
(
"按键报警
规则
"
)
@Comment
(
"按键报警"
)
public
class
KeyAlarm
extends
BasicEntity
implements
Serializable
{
@Serial
...
...
@@ -47,6 +48,26 @@ public class KeyAlarm extends BasicEntity implements Serializable {
@Comment
(
"负责人"
)
User
leader
;
@Comment
(
"标签编号"
)
String
code
;
@Comment
(
"x"
)
BigDecimal
x
;
@Comment
(
"y"
)
BigDecimal
y
;
@Comment
(
"z"
)
BigDecimal
z
;
@Comment
(
"坐标点信息"
)
Point
point
;
@Comment
(
"报警状态"
)
Boolean
enable
;
@Builder
.
Default
@OneToMany
(
mappedBy
=
"keyAlarm"
)
@Comment
(
"推送消息记录"
)
Set
<
KeyAlarmLog
>
rules
=
new
HashSet
<>(
0
);
}
app/src/main/java/com/yiring/app/domain/key/KeyAlarmLog.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
key
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.ManyToOne
;
import
javax.persistence.Table
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
/**
* 报警规则推送记录
*
* @author LJ-2204
* @date 2022/5/12
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_KEY_ALARM_LOG"
)
@Comment
(
"报警规则推送记录"
)
public
class
KeyAlarmLog
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5837910859908195485L
;
@ManyToOne
@JoinColumn
(
name
=
"alarm_id"
)
@JsonIgnore
@Comment
(
"按键报警"
)
KeyAlarm
keyAlarm
;
@Comment
(
"通知方式"
)
String
types
;
@Comment
(
"接收状态"
)
Boolean
status
;
@ManyToOne
@JoinColumn
(
name
=
"leader_id"
)
@JsonIgnore
@Comment
(
"负责人"
)
User
user
;
}
app/src/main/java/com/yiring/app/domain/key/KeyAlarm
Rules
Repository.java
→
app/src/main/java/com/yiring/app/domain/key/KeyAlarm
Log
Repository.java
浏览文件 @
b84b587a
...
...
@@ -13,5 +13,5 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public
interface
KeyAlarm
Rules
Repository
extends
JpaRepository
<
KeyAlarm
Rules
,
Serializable
>,
JpaSpecificationExecutor
<
KeyAlarmRules
>
{}
public
interface
KeyAlarm
Log
Repository
extends
JpaRepository
<
KeyAlarm
Log
,
Serializable
>,
JpaSpecificationExecutor
<
KeyAlarmLog
>
{}
app/src/main/java/com/yiring/app/domain/key/KeyAlarmRule
s
.java
→
app/src/main/java/com/yiring/app/domain/key/KeyAlarmRule.java
浏览文件 @
b84b587a
...
...
@@ -33,13 +33,13 @@ import org.hibernate.annotations.Comment;
@Entity
@Table
(
name
=
"BS_KEY_ALARM_RULES"
)
@Comment
(
"按键报警规则"
)
public
class
KeyAlarmRule
s
extends
BasicEntity
implements
Serializable
{
public
class
KeyAlarmRule
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
302167871277966250L
;
@Comment
(
"所属部门"
)
@
Many
ToOne
@
One
ToOne
@JsonIgnore
@JoinColumn
(
name
=
"department_id"
)
Department
department
;
...
...
@@ -47,12 +47,7 @@ public class KeyAlarmRules extends BasicEntity implements Serializable {
@JsonIgnore
@Builder
.
Default
@Comment
(
"用户集合"
)
@ManyToMany
(
fetch
=
FetchType
.
EAGER
)
@JoinTable
(
name
=
"BS_KEY_ALARM_RULES_USERS"
,
joinColumns
=
{
@JoinColumn
(
name
=
"key_id"
)
},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"user_id"
)
}
)
@OneToMany
Set
<
User
>
users
=
new
HashSet
<>(
0
);
@Comment
(
"推送类型"
)
...
...
app/src/main/java/com/yiring/app/domain/key/KeyAlarmRuleRepository.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
key
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
*
* @author LJ-2204
* @date 2022/5/6
*/
@Repository
public
interface
KeyAlarmRuleRepository
extends
JpaRepository
<
KeyAlarmRule
,
Serializable
>,
JpaSpecificationExecutor
<
KeyAlarmRule
>
{}
app/src/main/java/com/yiring/app/domain/location/LocationAlarmRule.java
浏览文件 @
b84b587a
...
...
@@ -47,7 +47,7 @@ public class LocationAlarmRule extends BasicEntity implements Serializable {
private
LocationFence
locationFence
;
@Comment
(
"接收人集合"
)
@
Many
ToMany
@
One
ToMany
@ToString
.
Exclude
private
Set
<
User
>
users
;
...
...
@@ -55,9 +55,9 @@ public class LocationAlarmRule extends BasicEntity implements Serializable {
private
String
informManner
;
@Comment
(
"报警类型"
)
@ManyTo
One
@
JoinColumn
(
name
=
"alarm_type_id"
)
private
AlarmType
alarmType
;
@ManyTo
Many
@
ToString
.
Exclude
private
Set
<
AlarmType
>
alarmTypes
;
@Comment
(
value
=
"是否删除"
)
@Column
(
nullable
=
false
)
...
...
app/src/main/java/com/yiring/app/domain/location/LocationBeacon.java
浏览文件 @
b84b587a
...
...
@@ -80,6 +80,7 @@ public class LocationBeacon extends BasicEntity implements Serializable {
Double
distance
;
@Comment
(
"坐标点信息"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@FieldMapping
...
...
app/src/main/java/com/yiring/app/domain/location/LocationFence.java
浏览文件 @
b84b587a
...
...
@@ -51,7 +51,7 @@ public class LocationFence extends BasicEntity implements Serializable {
private
String
mapName
;
@Comment
(
"摄像头"
)
@ManyToOne
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
@JoinColumn
(
name
=
"video_id"
)
private
Video
video
;
...
...
@@ -60,7 +60,7 @@ public class LocationFence extends BasicEntity implements Serializable {
@Comment
(
"空间信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
@Column
(
columnDefinition
=
"geometry
(Geometry,4326)
"
)
private
Geometry
geometry
;
@Comment
(
"滞留时间(秒)"
)
...
...
@@ -87,6 +87,12 @@ public class LocationFence extends BasicEntity implements Serializable {
@OneToMany
(
mappedBy
=
"fence"
)
@ToString
.
Exclude
private
Set
<
LocationFenceRule
>
rules
=
new
HashSet
<>(
0
);
@ToString
.
Exclude
@Comment
(
"围栏中的标签集合"
)
@Builder
.
Default
@ManyToMany
(
fetch
=
FetchType
.
LAZY
)
Set
<
LocationTag
>
tags
=
new
HashSet
<>(
0
);
/*@SuppressWarnings({ "unused" })
public enum Mode {
NORMAL("常规区域"),
...
...
app/src/main/java/com/yiring/app/domain/location/LocationFenceAlarm.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
location
;
import
com.yiring.app.domain.alarm.AlarmType
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.locationtech.jts.geom.Point
;
/**
* 围栏报警记录
*
* @author Jim
* @version 0.1
* 2022/5/12 21:33
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_LOCATION_FENCE_ALARM"
)
@Comment
(
"围栏报警记录"
)
public
class
LocationFenceAlarm
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2984248537199016912L
;
@Comment
(
"围栏"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
LocationFence
fence
;
@Comment
(
"触警位置"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@Comment
(
"地图编号"
)
Long
areaId
;
@Comment
(
"触警人员"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
User
user
;
@Comment
(
"触警标签"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
LocationTag
tag
;
@Comment
(
"报警开始时间"
)
LocalDateTime
startTime
;
@Comment
(
"报警结束时间"
)
LocalDateTime
endTime
;
@Comment
(
"报警类型"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
AlarmType
type
;
@Comment
(
"状态"
)
@Enumerated
(
EnumType
.
STRING
)
Status
status
;
// 推送记录集合(含接收状态)
// TODO
@SuppressWarnings
({
"unused"
})
public
enum
Status
{
ING
(
"进行中"
),
OVER
(
"结束"
);
final
String
text
;
Status
(
String
text
)
{
this
.
text
=
text
;
}
public
String
text
()
{
return
this
.
text
;
}
}
}
app/src/main/java/com/yiring/app/domain/location/LocationFenceAlarmRepository.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
location
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author Jim
* @version 0.1
* 2022/5/12 21:34
*/
@Repository
public
interface
LocationFenceAlarmRepository
extends
JpaRepository
<
LocationFenceAlarm
,
Serializable
>,
JpaSpecificationExecutor
<
LocationFenceAlarm
>
{}
app/src/main/java/com/yiring/app/domain/location/LocationFenceRepository.java
浏览文件 @
b84b587a
...
...
@@ -3,6 +3,7 @@ package com.yiring.app.domain.location;
import
java.io.Serializable
;
import
java.util.List
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Query
;
...
...
@@ -37,4 +38,12 @@ public interface LocationFenceRepository
*/
@Query
(
"SELECT f FROM LocationFence f WHERE name like %?1% AND deleted = false"
)
List
<
LocationFence
>
findLikeName
(
String
name
);
/**
* 查询空间信息在围栏内的围栏信息
* @param geometry 空间信息
* @return 围栏信息
*/
@Query
(
value
=
"select f.* from bs_location_fence f where st_contains(f.geometry, :geometry)"
,
nativeQuery
=
true
)
List
<
LocationFence
>
findByGeometryContains
(
Geometry
geometry
);
}
app/src/main/java/com/yiring/app/domain/location/LocationFenceRuleRepository.java
浏览文件 @
b84b587a
...
...
@@ -9,7 +9,7 @@ import org.springframework.stereotype.Repository;
/**
* @author tml
* @version 1.0
*
@date
2022/4/29 11:40
* 2022/4/29 11:40
*/
@Repository
public
interface
LocationFenceRuleRepository
...
...
app/src/main/java/com/yiring/app/domain/location/LocationLog.java
浏览文件 @
b84b587a
...
...
@@ -71,6 +71,7 @@ public class LocationLog implements Serializable {
User
.
Status
status
;
@Comment
(
"坐标点信息"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@Comment
(
"信标集合"
)
...
...
@@ -83,6 +84,11 @@ public class LocationLog implements Serializable {
@Column
(
columnDefinition
=
"jsonb"
)
JSONArray
fences
;
@Comment
(
"区域集合"
)
@Type
(
type
=
"jsonb"
)
@Column
(
columnDefinition
=
"jsonb"
)
JSONArray
districts
;
@Comment
(
"静止/运动"
)
Boolean
silent
;
...
...
@@ -92,6 +98,9 @@ public class LocationLog implements Serializable {
@Comment
(
"电量单位"
)
String
voltUnit
;
@Comment
(
"是否在厂区外"
)
Boolean
out
;
@Comment
(
"原始数据"
)
@Type
(
type
=
"jsonb"
)
@Column
(
columnDefinition
=
"jsonb"
)
...
...
app/src/main/java/com/yiring/app/domain/location/LocationTag.java
浏览文件 @
b84b587a
...
...
@@ -7,13 +7,11 @@ import com.yiring.common.annotation.FieldMapping;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.Objects
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.SuperBuilder
;
import
org.hibernate.Hibernate
;
import
org.hibernate.annotations.Comment
;
import
org.locationtech.jts.geom.Point
;
...
...
@@ -107,9 +105,13 @@ public class LocationTag extends BasicEntity implements Serializable {
@Comment
(
"类型(1:内部/2:访客)"
)
Integer
category
;
@Comment
(
"最后定位坐标"
)
@Comment
(
"最新定位坐标"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@Comment
(
"是否在厂外"
)
Boolean
out
;
@SuppressWarnings
({
"unused"
})
public
enum
Type
{
BTT01
(
"蓝牙人员定位卡"
),
...
...
@@ -125,17 +127,4 @@ public class LocationTag extends BasicEntity implements Serializable {
return
this
.
text
;
}
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
Hibernate
.
getClass
(
this
)
!=
Hibernate
.
getClass
(
o
))
return
false
;
LocationTag
that
=
(
LocationTag
)
o
;
return
getId
()
!=
null
&&
Objects
.
equals
(
getId
(),
that
.
getId
());
}
@Override
public
int
hashCode
()
{
return
getClass
().
hashCode
();
}
}
app/src/main/java/com/yiring/app/domain/location/LocationTagRepository.java
浏览文件 @
b84b587a
...
...
@@ -2,18 +2,45 @@
package
com
.
yiring
.
app
.
domain
.
location
;
import
java.io.Serializable
;
import
java.util.List
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.stereotype.Repository
;
/**
* 定位标签JPA
* @author LJ-2204
*
@date
2022/4/14
* 2022/4/14
*/
@Repository
public
interface
LocationTagRepository
extends
JpaRepository
<
LocationTag
,
Serializable
>,
JpaSpecificationExecutor
<
LocationTag
>
{
LocationTag
findByCode
(
String
code
);
/**
* 查询在指定区域内的所有标签
* @param geometry 指定区域
* @return 标签
*/
@Query
(
value
=
"SELECT * FROM BS_LOCATION_TAG bl WHERE ST_Contains(?1, bl.point)"
,
nativeQuery
=
true
)
List
<
LocationTag
>
findInArea
(
Geometry
geometry
);
/**
* 查询在指定区域内的所有标签数量
* @param geometry 指定区域
* @return 标签数量
*/
@Query
(
value
=
"SELECT count(*) FROM BS_LOCATION_TAG bl WHERE ST_Contains(?1, bl.point)"
,
nativeQuery
=
true
)
int
findInAreaNum
(
Geometry
geometry
);
/**
* 根据多个员工id查询定位标签
* @param userIds 员工id集
* @return 定位标签
*/
@Query
(
value
=
"SELECT * FROM BS_LOCATION_TAG WHERE user_id IN (?1)"
,
nativeQuery
=
true
)
List
<
LocationTag
>
findByUserIds
(
List
<
Long
>
userIds
);
}
app/src/main/java/com/yiring/app/domain/location/LocationTurnover.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
location
;
import
com.vladmihalcea.hibernate.type.json.JsonBinaryType
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.TypeDef
;
/**
* 定位进出记录
*
* @author Jim
* @version 0.1
* 2022/5/12 17:54
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@TypeDef
(
name
=
"jsonb"
,
typeClass
=
JsonBinaryType
.
class
)
@Table
(
name
=
"BS_LOCATION_TURNOVER"
,
indexes
=
{
@Index
(
columnList
=
"type"
),
@Index
(
columnList
=
"sourceId"
)
})
@Comment
(
"定位进出记录"
)
public
class
LocationTurnover
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
887764448464587364L
;
@Comment
(
"进出区域/围栏表主键"
)
Long
sourceId
;
@Comment
(
"类型"
)
@Enumerated
(
EnumType
.
STRING
)
Type
type
;
@Comment
(
"定位标签"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
LocationTag
tag
;
@Comment
(
"定位时间"
)
LocalDateTime
time
;
@Comment
(
"进入"
)
Boolean
enter
;
@Comment
(
"是否为最新状态"
)
Boolean
isLatest
;
@SuppressWarnings
({
"unused"
})
public
enum
Type
{
FENCE
(
"围栏"
),
DISTRICT
(
"区域"
);
final
String
text
;
Type
(
String
text
)
{
this
.
text
=
text
;
}
public
String
text
()
{
return
this
.
text
;
}
}
}
app/src/main/java/com/yiring/app/domain/location/LocationTurnoverRepository.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
location
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author Jim
* @version 0.1
* 2022/5/12 18:13
*/
@Repository
public
interface
LocationTurnoverRepository
extends
JpaRepository
<
LocationTurnover
,
Serializable
>,
JpaSpecificationExecutor
<
LocationTurnover
>
{}
app/src/main/java/com/yiring/app/domain/rehearsal/AccidentSpot.java
浏览文件 @
b84b587a
...
...
@@ -48,7 +48,7 @@ public class AccidentSpot extends BasicEntity implements Serializable {
@Comment
(
"空间信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
@Column
(
columnDefinition
=
"geometry
(Geometry,4326)
"
)
private
Geometry
geometry
;
@Comment
(
"摄像头"
)
...
...
app/src/main/java/com/yiring/app/domain/rehearsal/EvacuationZone.java
浏览文件 @
b84b587a
...
...
@@ -48,7 +48,7 @@ public class EvacuationZone extends BasicEntity implements Serializable {
@Comment
(
"空间信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
@Column
(
columnDefinition
=
"geometry
(Geometry,4326)
"
)
private
Geometry
geometry
;
@Comment
(
"摄像头"
)
...
...
app/src/main/java/com/yiring/app/domain/rehearsal/RehearsalPlanLog.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
rehearsal
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.SuperBuilder
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.Type
;
import
org.locationtech.jts.geom.Geometry
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 10:56
*/
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
(
toBuilder
=
true
)
@FieldNameConstants
@Entity
//@Where(clause = "deleted = false")
@Table
(
name
=
"BS_REHEARSAL_PLAN_LOG"
)
@Comment
(
"演练计划实施数据"
)
public
class
RehearsalPlanLog
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
6920108507160621905L
;
@Comment
(
"演练计划"
)
@OneToOne
@JoinColumn
(
name
=
"rehearsal_plan_id"
)
private
RehearsalPlan
rehearsalPlan
;
@Comment
(
"开始时间"
)
private
LocalDateTime
beginTime
;
@Comment
(
"结束时间"
)
private
LocalDateTime
endTime
;
@Comment
(
"开始时事故点人数"
)
private
Integer
accidentPeopleNum
;
@Comment
(
"事故点内员工id集"
)
private
String
userIds
;
@Comment
(
"结束时撤离区人数"
)
private
Integer
evacuationPeopleNum
;
@Comment
(
"事故点影响范围的空间信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
private
Geometry
geometry
;
}
app/src/main/java/com/yiring/app/domain/rehearsal/RehearsalPlanLogRepository.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
rehearsal
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tml
* @version 1.0
* @date 2022/5/11 17:04
*/
@Repository
public
interface
RehearsalPlanLogRepository
extends
JpaRepository
<
RehearsalPlanLog
,
Serializable
>,
JpaSpecificationExecutor
<
RehearsalPlanLog
>
{
/**
* 根据演练计划查询演练计划实施数据
* @param rehearsalPlan 演练计划
* @return 演练计划实施数据
*/
RehearsalPlanLog
findByRehearsalPlan
(
RehearsalPlan
rehearsalPlan
);
}
app/src/main/java/com/yiring/app/domain/rehearsal/RehearsalPlanRepository.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
rehearsal
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 10:49
*/
@Repository
public
interface
RehearsalPlanRepository
extends
JpaRepository
<
RehearsalPlan
,
Serializable
>,
JpaSpecificationExecutor
<
RehearsalPlan
>
{}
app/src/main/java/com/yiring/app/domain/video/Video.java
浏览文件 @
b84b587a
...
...
@@ -44,6 +44,7 @@ public class Video implements Serializable {
Long
id
;
@Comment
(
"坐标点信息"
)
@Column
(
columnDefinition
=
"geometry(Point,4326)"
)
Point
point
;
@Comment
(
"标识"
)
...
...
app/src/main/java/com/yiring/app/excel/key/KeyAlarmExportExcel.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
key
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.domain.key.KeyAlarm
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.AccessLevel
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.experimental.FieldDefaults
;
/**
* 部门信息控制器
*
* @author LJ-2204
* @date 2022/5/11
*/
@ExcelModel
@Data
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmExportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
3703974403333845088L
;
@ExcelColumn
(
title
=
"地图位置"
)
Long
areaId
;
@ExcelColumn
(
title
=
"报警人员"
)
String
realName
;
@ExcelColumn
(
title
=
"工号"
)
String
uuid
;
@ExcelColumn
(
title
=
"报警时间"
)
LocalDateTime
createTime
;
@ExcelColumn
(
title
=
"结束时间"
)
LocalDateTime
endTime
;
@ExcelColumn
(
title
=
"报警类型"
)
String
type
;
@ExcelColumn
(
title
=
"报警接收人"
)
String
receiver
;
@ExcelColumn
(
title
=
"报警状态"
)
Boolean
enable
;
public
static
KeyAlarmExportExcel
transform
(
KeyAlarm
keyAlarm
)
{
return
KeyAlarmExportExcel
.
builder
()
.
areaId
(
keyAlarm
.
getAreaId
())
.
createTime
(
keyAlarm
.
getCreateTime
())
.
endTime
(
keyAlarm
.
getUpdateTime
())
.
type
(
"按键报警"
)
.
enable
(
keyAlarm
.
getEnable
())
.
build
();
}
}
app/src/main/java/com/yiring/app/excel/key/KeyAlarmRule
s
ExportExcel.java
→
app/src/main/java/com/yiring/app/excel/key/KeyAlarmRuleExportExcel.java
浏览文件 @
b84b587a
...
...
@@ -3,7 +3,7 @@ package com.yiring.app.excel.key;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.domain.key.KeyAlarmRule
s
;
import
com.yiring.app.domain.key.KeyAlarmRule
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
import
java.io.Serializable
;
...
...
@@ -21,7 +21,7 @@ import lombok.experimental.FieldDefaults;
@Data
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
ExportExcel
implements
Serializable
{
public
class
KeyAlarmRuleExportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
800228727313291675L
;
...
...
@@ -35,8 +35,8 @@ public class KeyAlarmRulesExportExcel implements Serializable {
@ExcelColumn
(
title
=
"通知类型"
)
String
types
;
public
static
KeyAlarmRule
sExportExcel
transform
(
KeyAlarmRules
keyAlarmRules
)
{
Set
<
User
>
users
=
keyAlarmRule
s
.
getUsers
();
public
static
KeyAlarmRule
ExportExcel
transform
(
KeyAlarmRule
keyAlarmRule
)
{
Set
<
User
>
users
=
keyAlarmRule
.
getUsers
();
StringBuilder
userNames
=
new
StringBuilder
();
for
(
User
user
:
users
)
{
userNames
.
append
(
user
.
getRealName
());
...
...
@@ -44,11 +44,11 @@ public class KeyAlarmRulesExportExcel implements Serializable {
}
String
substring
=
userNames
.
substring
(
0
,
userNames
.
length
()
-
1
);
return
KeyAlarmRule
s
ExportExcel
return
KeyAlarmRuleExportExcel
.
builder
()
.
deptName
(
keyAlarmRule
s
.
getDepartment
().
getName
())
.
deptName
(
keyAlarmRule
.
getDepartment
().
getName
())
.
userNames
(
substring
)
.
types
(
keyAlarmRule
s
.
getTypes
())
.
types
(
keyAlarmRule
.
getTypes
())
.
build
();
}
}
app/src/main/java/com/yiring/app/excel/location/LocationAlarmRuleExcel.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
location
;
import
com.alibaba.fastjson.JSON
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.vo.location.rule.LocationAlarmRuleVo
;
import
com.yiring.app.constant.alarm.InformMannerEnum
;
import
com.yiring.app.domain.location.LocationAlarmRule
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.List
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -29,7 +33,7 @@ public class LocationAlarmRuleExcel implements Serializable {
@ExcelColumn
(
title
=
"地图名称"
)
private
String
mapName
;
@ExcelColumn
(
title
=
"电子围栏名称"
)
@ExcelColumn
(
title
=
"电子围栏名称"
,
width
=
15
)
private
String
fenceName
;
@ExcelColumn
(
title
=
"接收人"
,
width
=
20
)
...
...
@@ -38,25 +42,25 @@ public class LocationAlarmRuleExcel implements Serializable {
@ExcelColumn
(
title
=
"通知方式"
,
width
=
18
)
private
String
informManner
;
public
static
LocationAlarmRuleExcel
transform
(
LocationAlarmRule
Vo
locationAlarmRuleVo
)
{
StringBuilder
users
=
new
StringBuilder
();
public
static
LocationAlarmRuleExcel
transform
(
LocationAlarmRule
locationAlarmRule
)
{
StringBuilder
users
Builder
=
new
StringBuilder
();
StringBuilder
informManner
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
locationAlarmRuleVo
.
getUsers
().
size
();
i
++)
{
if
(
i
!=
0
)
{
users
.
append
(
", "
);
}
users
.
append
(
locationAlarmRuleVo
.
getUsers
().
get
(
i
).
getRealName
());
List
<
Integer
>
informMannerList
=
JSON
.
parseArray
(
locationAlarmRule
.
getInformManner
(),
Integer
.
class
);
for
(
User
user
:
locationAlarmRule
.
getUsers
())
{
usersBuilder
.
append
(
", "
);
usersBuilder
.
append
(
user
.
getRealName
());
}
for
(
int
i
=
0
;
i
<
locationAlarmRuleVo
.
getInformManner
().
size
();
i
++)
{
String
users
=
usersBuilder
.
substring
(
2
);
for
(
int
i
=
0
;
i
<
informMannerList
.
size
();
i
++)
{
if
(
i
!=
0
)
{
informManner
.
append
(
", "
);
}
informManner
.
append
(
locationAlarmRuleVo
.
getInformManner
().
get
(
i
).
getName
(
));
informManner
.
append
(
InformMannerEnum
.
getByCode
(
informMannerList
.
get
(
i
)
));
}
return
LocationAlarmRuleExcel
.
builder
()
.
mapName
(
locationAlarmRule
Vo
.
getMapName
())
.
fenceName
(
locationAlarmRule
Vo
.
getFence
Name
())
.
mapName
(
locationAlarmRule
.
getMapName
())
.
fenceName
(
locationAlarmRule
.
getLocationFence
().
get
Name
())
.
users
(
users
.
toString
())
.
informManner
(
informManner
.
toString
())
.
build
();
...
...
app/src/main/java/com/yiring/app/excel/rehearsal/RehearsalPlanExcel.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
rehearsal
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.constant.rehearsal.RehearsalPlanStatusEnum
;
import
com.yiring.app.constant.rehearsal.RiskLevelEnum
;
import
com.yiring.app.domain.rehearsal.RehearsalPlan
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 13:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ExcelModel
public
class
RehearsalPlanExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
2976618459214077036L
;
@ExcelColumn
(
title
=
"演练主题"
)
private
String
topical
;
@ExcelColumn
(
title
=
"事故点"
)
private
String
accidentSpotName
;
@ExcelColumn
(
title
=
"周边范围(m)"
)
private
Integer
scope
;
@ExcelColumn
(
title
=
"撤离点"
)
private
String
evacuationZoneName
;
@ExcelColumn
(
title
=
"风险程度"
)
private
String
riskLevelName
;
@ExcelColumn
(
title
=
"事故信息"
)
private
String
accidentMsg
;
@ExcelColumn
(
title
=
"演练时间"
)
private
LocalDateTime
rehearsalTime
;
@ExcelColumn
(
title
=
"推送信息"
)
private
String
pushMsg
;
@ExcelColumn
(
title
=
"状态"
)
private
String
statusName
;
public
static
RehearsalPlanExcel
transform
(
RehearsalPlan
rehearsalPlan
)
{
return
RehearsalPlanExcel
.
builder
()
.
topical
(
rehearsalPlan
.
getTopical
())
.
accidentSpotName
(
rehearsalPlan
.
getAccidentSpot
().
getName
())
.
scope
(
rehearsalPlan
.
getScope
())
.
evacuationZoneName
(
rehearsalPlan
.
getEvacuationZone
().
getName
())
.
riskLevelName
(
RiskLevelEnum
.
getByCode
(
rehearsalPlan
.
getRiskLevel
()))
.
accidentMsg
(
rehearsalPlan
.
getAccidentMsg
())
.
rehearsalTime
(
rehearsalPlan
.
getRehearsalTime
())
.
pushMsg
(
rehearsalPlan
.
getPushMsg
())
.
statusName
(
RehearsalPlanStatusEnum
.
getByCode
(
rehearsalPlan
.
getStatus
()))
.
build
();
}
}
app/src/main/java/com/yiring/app/excel/user/UserImportExcel.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
user
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
...
...
@@ -49,10 +50,6 @@ public class UserImportExcel implements Serializable {
@ExcelColumn
(
title
=
"职位名称"
)
String
postName
;
// 标签号
@ExcelColumn
(
title
=
"标签编号"
)
String
code
;
// 性别
@ExcelColumn
(
title
=
"性别"
)
Boolean
gender
;
...
...
@@ -66,7 +63,7 @@ public class UserImportExcel implements Serializable {
.
builder
()
.
realName
(
userImportExcel
.
getRealName
())
.
uuid
(
userImportExcel
.
getUuid
())
.
type
(
User
.
Type
.
valueOf
(
userImportExcel
.
getType
())
)
.
type
(
StrUtil
.
equals
(
userImportExcel
.
getType
(),
"员工"
)
?
User
.
Type
.
EMPLOYEES
:
User
.
Type
.
GUEST
)
.
mobile
(
userImportExcel
.
getMobile
())
.
gender
(
userImportExcel
.
getGender
())
.
isSpecial
(
userImportExcel
.
getIsSpecial
())
...
...
app/src/main/java/com/yiring/app/job/Mock
Zy
MessageJob.java
→
app/src/main/java/com/yiring/app/job/Mock
Position
MessageJob.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
job
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xxl.job.core.context.XxlJobHelper
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
com.yiring.app.domain.location.LocationLog
;
import
com.yiring.app.domain.location.LocationLogRepository
;
import
com.yiring.app.rabbit.config.Zy
RabbitConfig
;
import
com.yiring.app.rabbit.config.Zy
ConfigProperties
;
import
com.yiring.app.util.GeoUtils
;
import
com.yiring.common.constant.DateFormatter
;
import
java.time.LocalDateTime
;
...
...
@@ -29,7 +31,7 @@ import org.springframework.stereotype.Component;
@SuppressWarnings
(
"unused"
)
@Slf4j
@Component
public
class
Mock
Zy
MessageJob
{
public
class
Mock
Position
MessageJob
{
@Resource
RabbitTemplate
rabbitTemplate
;
...
...
@@ -37,19 +39,36 @@ public class MockZyMessageJob {
@Resource
LocationLogRepository
locationLogRepository
;
@XxlJob
(
"MockZyMessageHandler"
)
public
void
mockMessageHandler
()
{
log
.
info
(
"MockZyMessageHandler: {}"
,
LocalDateTime
.
now
().
format
(
DateFormatter
.
DATE_TIME
));
@Resource
ZyConfigProperties
.
ZyConfigRabbitmq
rabbitmq
;
@XxlJob
(
"MockPositionHandler"
)
public
void
MockPositionHandler
()
{
JSONObject
extra
=
toJSON
(
XxlJobHelper
.
getJobParam
());
log
.
info
(
"[Mock] Position: {}, {}"
,
mockPositionMessage
(
extra
),
extra
);
}
@XxlJob
(
"MockLowPowerHandler"
)
public
void
MockLowPowerHandler
()
{
JSONObject
extra
=
toJSON
(
XxlJobHelper
.
getJobParam
());
log
.
info
(
"[Mock] LowPower: {}, {}"
,
mockLowPowerMessage
(
extra
),
extra
);
}
@XxlJob
(
"MockDeviceStatusHandler"
)
public
void
MockDeviceStatusHandler
()
{
JSONObject
extra
=
toJSON
(
XxlJobHelper
.
getJobParam
());
log
.
info
(
"[Mock] DeviceStatus: {}, {}"
,
mockDeviceStatusMessage
(
extra
),
extra
);
}
log
.
info
(
"[Mock] Position: {}"
,
mockPositionMessage
());
log
.
info
(
"[Mock] LowPower: {}"
,
mockLowPowerMessage
());
log
.
info
(
"[Mock] DeviceStatus: {}"
,
mockDeviceStatusMessage
());
log
.
info
(
"[Mock] KeyWarning: {}
"
,
mockKeyWarningMessage
()
);
@XxlJob
(
"MockKeyWarningHandler"
)
public
void
MockKeyWarningHandler
()
{
JSONObject
extra
=
toJSON
(
XxlJobHelper
.
getJobParam
());
log
.
info
(
"[Mock] KeyWarning: {}
, {}"
,
mockKeyWarningMessage
(
extra
),
extra
);
}
@XxlJob
(
"QueryMessageHandler"
)
public
void
queryMessageHandler
()
{
log
.
info
(
"Query
Zy
MessageHandler: {}"
,
LocalDateTime
.
now
().
format
(
DateFormatter
.
DATE_TIME
));
log
.
info
(
"QueryMessageHandler: {}"
,
LocalDateTime
.
now
().
format
(
DateFormatter
.
DATE_TIME
));
try
{
Specification
<
LocationLog
>
spec
=
(
root
,
query
,
cb
)
->
{
...
...
@@ -59,17 +78,31 @@ public class MockZyMessageJob {
};
List
<
LocationLog
>
logs
=
locationLogRepository
.
findAll
(
spec
);
log
.
info
(
"
QueryZyMessageHandler
: {}"
,
logs
.
size
());
log
.
info
(
"
log size
: {}"
,
logs
.
size
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
public
JSONObject
send
(
JSONObject
body
)
{
rabbitTemplate
.
convertAndSend
(
ZyRabbitConfig
.
MESSAGE_QUEUES_NAME
,
body
.
toJSONString
());
if
(
rabbitmq
.
isMock
())
{
rabbitTemplate
.
convertAndSend
(
rabbitmq
.
getQueueName
(),
body
.
toJSONString
());
}
return
body
;
}
public
JSONObject
toJSON
(
String
params
)
{
JSONObject
extra
=
new
JSONObject
();
try
{
extra
=
JSON
.
parseObject
(
params
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
extra
==
null
?
new
JSONObject
()
:
extra
;
}
private
String
mockTag
()
{
return
"BTT33333331"
;
}
...
...
@@ -78,7 +111,7 @@ public class MockZyMessageJob {
return
10019L
;
}
private
JSONObject
mockPositionMessage
()
{
private
JSONObject
mockPositionMessage
(
JSONObject
extra
)
{
// 随机生成一个坐标点
Point
point
=
GeoUtils
.
randomPoint
(
GeoUtils
.
defaultBounds
(),
0
);
...
...
@@ -95,6 +128,7 @@ public class MockZyMessageJob {
params
.
put
(
"volt"
,
3650
);
params
.
put
(
"voltUnit"
,
"mV"
);
params
.
put
(
"floor"
,
1
);
params
.
putAll
(
extra
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"method"
,
"position"
);
...
...
@@ -102,11 +136,12 @@ public class MockZyMessageJob {
return
send
(
body
);
}
private
JSONObject
mockLowPowerMessage
()
{
private
JSONObject
mockLowPowerMessage
(
JSONObject
extra
)
{
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"tagId"
,
mockTag
());
params
.
put
(
"volt"
,
3650
);
params
.
put
(
"voltUnit"
,
"mV"
);
params
.
putAll
(
extra
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"method"
,
"lowPower"
);
...
...
@@ -114,7 +149,7 @@ public class MockZyMessageJob {
return
send
(
body
);
}
private
JSONObject
mockDeviceStatusMessage
()
{
private
JSONObject
mockDeviceStatusMessage
(
JSONObject
extra
)
{
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"deviceId"
,
mockTag
());
params
.
put
(
"areaId"
,
mockAreaId
());
...
...
@@ -122,6 +157,7 @@ public class MockZyMessageJob {
params
.
put
(
"volt"
,
3650
);
params
.
put
(
"field_21"
,
"mV"
);
params
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
params
.
putAll
(
extra
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"method"
,
"deviceStatus"
);
...
...
@@ -129,16 +165,17 @@ public class MockZyMessageJob {
return
send
(
body
);
}
private
JSONObject
mockKeyWarningMessage
()
{
private
JSONObject
mockKeyWarningMessage
(
JSONObject
extra
)
{
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"tagId"
,
mockTag
());
params
.
put
(
"entityId"
,
"
1522770547178475520
"
);
params
.
put
(
"entityId"
,
"
4376
"
);
params
.
put
(
"areaId"
,
mockAreaId
());
params
.
put
(
"raiseTime"
,
System
.
currentTimeMillis
());
params
.
put
(
"x"
,
100
);
params
.
put
(
"y"
,
100
);
params
.
put
(
"z"
,
0
);
params
.
put
(
"floor"
,
1
);
params
.
putAll
(
extra
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"method"
,
"keyWarning"
);
...
...
app/src/main/java/com/yiring/app/param/alarm/AlarmConditionParam.java
浏览文件 @
b84b587a
...
...
@@ -14,11 +14,12 @@ import lombok.NoArgsConstructor;
import
org.hibernate.validator.constraints.Range
;
/**
* 报警类型的条件param
* @author tml
* @version 1.0
* @date 2022/4/27 14:28
*/
@ApiModel
(
"AlarmConditionParam
(报警类型的条件param)
"
)
@ApiModel
(
"AlarmConditionParam"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/alarm/AlarmTypeAddParam.java
浏览文件 @
b84b587a
...
...
@@ -18,11 +18,12 @@ import org.hibernate.validator.constraints.Length;
import
org.hibernate.validator.constraints.Range
;
/**
* 报警类型的添加param
* @author tml
* @version 1.0
* @date 2022/4/27 11:28
*/
@ApiModel
(
"AlarmTypeAddParam
(报警类型的添加param)
"
)
@ApiModel
(
"AlarmTypeAddParam"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/alarm/AlarmTypeModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -15,11 +15,12 @@ import lombok.NoArgsConstructor;
import
org.hibernate.validator.constraints.Length
;
/**
* 报警类型修改param
* @author tml
* @version 1.0
* @date 2022/4/27 11:28
*/
@ApiModel
(
"AlarmTypeModifyParam
(报警类型修改param)
"
)
@ApiModel
(
"AlarmTypeModifyParam"
)
@Data
@Builder
@NoArgsConstructor
...
...
@@ -58,7 +59,6 @@ public class AlarmTypeModifyParam implements Serializable {
.
fenceType
(
fenceType
)
.
relevanceParam
(
relevanceParam
)
.
comment
(
comment
)
.
deleted
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/analysis/history/HistoryRouteConditionParam.java
浏览文件 @
b84b587a
...
...
@@ -14,11 +14,12 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
/**
* 历史轨迹的条件param
* @author tml
* @version 1.0
* @date 2022/5/6 10:53
*/
@ApiModel
(
"HistoryRoute
(历史轨迹的条件param)
"
)
@ApiModel
(
"HistoryRoute"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/district/DistrictAddParam.java
浏览文件 @
b84b587a
...
...
@@ -18,7 +18,7 @@ import org.locationtech.jts.geom.Geometry;
* @version 1.0
* @date 2022/4/26 10:40
*/
@ApiModel
(
"DistrictAddParam
(添加区域param)
"
)
@ApiModel
(
"DistrictAddParam"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/district/DistrictModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -20,7 +20,7 @@ import org.locationtech.jts.geom.Geometry;
* @version 1.0
* @date 2022/4/26 10:40
*/
@ApiModel
(
"DistrictAddParam
(添加区域param)
"
)
@ApiModel
(
"DistrictAddParam"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/key/KeyAlarmAddParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
key
;
import
com.yiring.app.domain.key.KeyAlarm
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 按键报警
*
* @author LJ-2204
* @date 2022/5/12
*/
@ApiModel
(
"KeyAlarmAddParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6914927126284215967L
;
@ApiModelProperty
(
value
=
"标签编号"
,
example
=
"BTT88888888"
)
String
tagId
;
@ApiModelProperty
(
value
=
"报警人ID"
,
example
=
"14433"
)
Long
entityId
;
@ApiModelProperty
(
value
=
"地图总图"
,
example
=
"1"
)
Long
areaId
;
@ApiModelProperty
(
value
=
"推送时间"
,
example
=
""
)
LocalDateTime
raiseTime
;
@ApiModelProperty
(
value
=
"x"
,
example
=
"1"
)
BigDecimal
x
;
@ApiModelProperty
(
value
=
"y"
,
example
=
"1"
)
BigDecimal
y
;
@ApiModelProperty
(
value
=
"z"
,
example
=
"1"
)
BigDecimal
z
;
public
static
KeyAlarm
transform
(
KeyAlarmAddParam
param
)
{
return
KeyAlarm
.
builder
()
.
areaId
(
param
.
areaId
)
.
code
(
param
.
getTagId
())
.
x
(
param
.
getX
())
.
y
(
param
.
getY
())
.
z
(
param
.
getZ
())
.
build
();
}
}
app/src/main/java/com/yiring/app/param/key/KeyAlarmLogFindParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
key
;
import
com.yiring.app.push.domain.PushMessage
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 按键报警推送
*
* @author LJ-2204
* @date 2022/5/13
*/
@ApiModel
(
"KeyAlarmLogFindParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmLogFindParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
7238582681776938388L
;
@ApiModelProperty
(
value
=
"通知方式"
,
example
=
"SMS/APP"
)
PushMessage
.
Type
type
;
@ApiModelProperty
(
value
=
"联系号码"
,
example
=
"18888888888"
)
String
mobile
;
@ApiModelProperty
(
value
=
"接收状态"
,
example
=
"T/F"
)
Boolean
status
;
}
app/src/main/java/com/yiring/app/param/key/KeyAlarmRule
s
AddParam.java
→
app/src/main/java/com/yiring/app/param/key/KeyAlarmRuleAddParam.java
浏览文件 @
b84b587a
...
...
@@ -17,13 +17,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/5/6
*/
@ApiModel
(
"KeyAlarmRule
s
AddParam"
)
@ApiModel
(
"KeyAlarmRuleAddParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
AddParam
implements
Serializable
{
public
class
KeyAlarmRuleAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
758462772473378637L
;
...
...
app/src/main/java/com/yiring/app/param/key/KeyAlarmRule
s
ExportParam.java
→
app/src/main/java/com/yiring/app/param/key/KeyAlarmRuleExportParam.java
浏览文件 @
b84b587a
...
...
@@ -15,13 +15,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/5/6
*/
@ApiModel
(
"KeyAlarmRule
s
ExportParam"
)
@ApiModel
(
"KeyAlarmRuleExportParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
ExportParam
implements
Serializable
{
public
class
KeyAlarmRuleExportParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
2940487513251067057L
;
...
...
app/src/main/java/com/yiring/app/param/key/KeyAlarmRule
s
ModifyParam.java
→
app/src/main/java/com/yiring/app/param/key/KeyAlarmRuleModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -16,13 +16,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/5/6
*/
@ApiModel
(
"KeyAlarmRule
s
AddParam"
)
@ApiModel
(
"KeyAlarmRuleAddParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
ModifyParam
implements
Serializable
{
public
class
KeyAlarmRuleModifyParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3526756145220971363L
;
...
...
app/src/main/java/com/yiring/app/param/key/KeyAlarmRule
s
PageParam.java
→
app/src/main/java/com/yiring/app/param/key/KeyAlarmRulePageParam.java
浏览文件 @
b84b587a
...
...
@@ -15,13 +15,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/5/7
*/
@ApiModel
(
"KeyAlarmRule
s
PageParam"
)
@ApiModel
(
"KeyAlarmRulePageParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
PageParam
implements
Serializable
{
public
class
KeyAlarmRulePageParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2876239519436815639L
;
...
...
app/src/main/java/com/yiring/app/param/location/beacon/LocationBeaconAddParam.java
浏览文件 @
b84b587a
...
...
@@ -2,6 +2,7 @@
package
com
.
yiring
.
app
.
param
.
location
.
beacon
;
import
com.yiring.app.domain.location.LocationBeacon
;
import
com.yiring.app.util.GeoUtils
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
...
...
@@ -65,9 +66,13 @@ public class LocationBeaconAddParam implements Serializable {
.
x
(
locationBeaconAddParam
.
getX
())
.
y
(
locationBeaconAddParam
.
getY
())
.
z
(
locationBeaconAddParam
.
getZ
())
// .point(GeoUtils.xyzToPoint(
// locationBeaconAddParam.getPointX().doubleValue(),locationBeaconAddParam.getPointY().doubleValue(),locationBeaconAddParam.getPointZ().doubleValue()
// ))
.
point
(
GeoUtils
.
xyzToPoint
(
locationBeaconAddParam
.
getX
().
doubleValue
(),
locationBeaconAddParam
.
getY
().
doubleValue
(),
locationBeaconAddParam
.
getZ
().
doubleValue
()
)
)
.
time
(
locationBeaconAddParam
.
getTime
())
.
volt
(
locationBeaconAddParam
.
getVolt
())
.
voltUnit
(
locationBeaconAddParam
.
getVoltUnit
())
...
...
app/src/main/java/com/yiring/app/param/location/fence/LocationFenceAddParam.java
浏览文件 @
b84b587a
...
...
@@ -17,11 +17,12 @@ import org.hibernate.validator.constraints.Range;
import
org.locationtech.jts.geom.Geometry
;
/**
* 添加围栏信息的param
* @author tml
* @version 1.0
* @date 2022/4/28 10:52
*/
@ApiModel
(
"LocationFenceAddParam
(添加围栏信息的param)
"
)
@ApiModel
(
"LocationFenceAddParam"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/location/fence/LocationFenceConditionParam.java
浏览文件 @
b84b587a
...
...
@@ -11,11 +11,12 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
/**
* 查询围栏信息的条件param
* @author tml
* @version 1.0
* @date 2022/4/28 13:35
*/
@ApiModel
(
"LocationFenceConditionParam
(查询围栏信息的条件param)
"
)
@ApiModel
(
"LocationFenceConditionParam"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/location/fence/LocationFenceModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -16,11 +16,12 @@ import org.hibernate.validator.constraints.Range;
import
org.locationtech.jts.geom.Geometry
;
/**
* 修改围栏信息的param
* @author tml
* @version 1.0
* @date 2022/4/28 10:52
*/
@ApiModel
(
"LocationFenceModifyParam
(修改围栏信息的param)
"
)
@ApiModel
(
"LocationFenceModifyParam"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
@@ -70,7 +71,6 @@ public class LocationFenceModifyParam {
.
geometry
(
geometry
)
.
residenceTime
(
residenceTime
)
.
threshold
(
threshold
)
.
enable
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/location/rule/AlarmRuleBatchAddParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.Set
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/11 14:17
*/
@ApiModel
(
"批量添加配置报警类别的报警规则"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
AlarmRuleBatchAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
7123885270967732491L
;
private
Set
<
LocationAlarmRuleAddParam
>
params
;
}
app/src/main/java/com/yiring/app/param/location/rule/AlarmRuleBatchModifyParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.Set
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/12 9:46
*/
@ApiModel
(
"批量修改配置报警类别的报警规则"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
AlarmRuleBatchModifyParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
9160183461478867656L
;
private
Set
<
LocationAlarmRuleModifyParam
>
params
;
}
app/src/main/java/com/yiring/app/param/location/rule/LocationAlarmRuleAddParam.java
浏览文件 @
b84b587a
...
...
@@ -14,6 +14,7 @@ import java.io.Serial;
import
java.io.Serializable
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
...
...
@@ -36,6 +37,12 @@ public class LocationAlarmRuleAddParam implements Serializable {
@Serial
private
static
final
long
serialVersionUID
=
388296602724939033L
;
/**
* 这个字段给前端标识用,后端无意义
*/
@ApiModelProperty
(
value
=
"标识ID,无意义"
)
private
Integer
tabId
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"地图id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"地图id不能为空"
)
...
...
@@ -49,16 +56,16 @@ public class LocationAlarmRuleAddParam implements Serializable {
@NotNull
(
message
=
"电子围栏id不能为空"
)
private
Long
fenceId
;
@ApiModelProperty
(
value
=
"报警类型id"
,
example
=
"1"
,
required
=
true
)
@Not
Null
(
message
=
"报警类型id不能为空"
)
private
Long
alarmId
;
@ApiModelProperty
(
value
=
"报警类型id"
,
required
=
true
)
@Not
Empty
(
message
=
"报警类型id不能为空"
)
private
Set
<
Long
>
alarmIds
;
@ApiModelProperty
(
value
=
"接收人集合(id)"
,
required
=
true
)
@Not
Null
(
message
=
"接收人id不能为空"
)
@Not
Empty
(
message
=
"接收人id不能为空"
)
private
Set
<
Long
>
users
;
@ApiModelProperty
(
value
=
"通知方式集合"
,
required
=
true
)
@Not
Null
(
message
=
"通知方式不能为空"
)
@Not
Empty
(
message
=
"通知方式不能为空"
)
private
Set
<
Integer
>
informManner
;
public
LocationAlarmRule
transform
()
{
...
...
@@ -67,7 +74,10 @@ public class LocationAlarmRuleAddParam implements Serializable {
for
(
Long
item
:
this
.
users
)
{
set
.
add
(
User
.
builder
().
id
(
item
).
build
());
}
AlarmType
alarmType
=
AlarmType
.
builder
().
id
(
alarmId
).
build
();
Set
<
AlarmType
>
alarmTypes
=
alarmIds
.
stream
()
.
map
(
e
->
AlarmType
.
builder
().
id
(
e
).
build
())
.
collect
(
Collectors
.
toSet
());
String
json
=
JSON
.
toJSONString
(
informManner
);
return
LocationAlarmRule
.
builder
()
...
...
@@ -75,7 +85,7 @@ public class LocationAlarmRuleAddParam implements Serializable {
.
mapName
(
mapName
)
.
locationFence
(
locationFence
)
.
users
(
set
)
.
alarmType
(
alarmType
)
.
alarmType
s
(
alarmTypes
)
.
informManner
(
json
)
.
deleted
(
false
)
.
build
();
...
...
app/src/main/java/com/yiring/app/param/location/rule/LocationAlarmRuleModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -12,6 +12,7 @@ import java.io.Serial;
import
java.io.Serializable
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
...
...
@@ -34,6 +35,12 @@ public class LocationAlarmRuleModifyParam implements Serializable {
@Serial
private
static
final
long
serialVersionUID
=
388296602724939033L
;
/**
* 这个字段给前端标识用,后端无意义
*/
@ApiModelProperty
(
value
=
"标识ID,无意义"
)
private
Integer
tabId
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"规则id不能为空"
)
private
Long
id
;
...
...
@@ -44,9 +51,9 @@ public class LocationAlarmRuleModifyParam implements Serializable {
@ApiModelProperty
(
value
=
"地图名称"
,
example
=
"一层"
,
required
=
true
)
private
String
mapName
;
@ApiModelProperty
(
value
=
"报警类型id"
,
example
=
"1"
,
required
=
true
)
@ApiModelProperty
(
value
=
"报警类型id"
,
required
=
true
)
@NotNull
(
message
=
"报警类型id不能为空"
)
private
Long
alarmId
;
private
Set
<
Long
>
alarmIds
;
@ApiModelProperty
(
value
=
"电子围栏id"
,
example
=
"1"
,
required
=
true
)
private
Long
fenceId
;
...
...
@@ -63,7 +70,10 @@ public class LocationAlarmRuleModifyParam implements Serializable {
for
(
Long
item
:
this
.
users
)
{
set
.
add
(
User
.
builder
().
id
(
item
).
build
());
}
AlarmType
alarmType
=
AlarmType
.
builder
().
id
(
alarmId
).
build
();
Set
<
AlarmType
>
alarmTypes
=
alarmIds
.
stream
()
.
map
(
e
->
AlarmType
.
builder
().
id
(
e
).
build
())
.
collect
(
Collectors
.
toSet
());
String
json
=
JSON
.
toJSONString
(
informManner
);
return
LocationAlarmRule
.
builder
()
...
...
@@ -72,9 +82,8 @@ public class LocationAlarmRuleModifyParam implements Serializable {
.
mapName
(
mapName
)
.
locationFence
(
locationFence
)
.
users
(
set
)
.
alarmType
(
alarmType
)
.
alarmType
s
(
alarmTypes
)
.
informManner
(
json
)
.
deleted
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/location/rule/LocationFenceRuleAddParam.java
浏览文件 @
b84b587a
...
...
@@ -18,11 +18,12 @@ import lombok.NoArgsConstructor;
import
org.hibernate.validator.constraints.Range
;
/**
* 添加配置报警类别的报警规则,根据不同类型传入不同参数
* @author tml
* @version 1.0
* @date 2022/4/28 16:16
*/
@ApiModel
(
"
添加配置报警类别的报警规则,根据不同类型传入不同参数
"
)
@ApiModel
(
"
LocationFenceRuleAddParam
"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/location/rule/LocationFenceRuleModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -10,12 +10,13 @@ import javax.validation.constraints.NotNull;
import
lombok.*
;
/**
* 修改配置报警类别的报警规则,根据不同类型传入不同参数
* @author tml
* @version 1.0
* @date 2022/4/28 16:16
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
"
修改配置报警类别的报警规则,根据不同类型传入不同参数
"
)
@ApiModel
(
"
LocationFenceRuleModifyParam
"
)
@Data
@NoArgsConstructor
@AllArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/location/rule/RuleParam.java
浏览文件 @
b84b587a
...
...
@@ -12,11 +12,12 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
/**
* 报警规则,根据不同类型传入不同参数
* @author tml
* @version 1.0
* @date 2022/4/29 14:12
*/
@ApiModel
(
"
报警规则,根据不同类型传入不同参数
"
)
@ApiModel
(
"
RuleParam
"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/param/rehearsal/AccidentSpotModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -66,8 +66,6 @@ public class AccidentSpotModifyParam implements Serializable {
.
video
(
video
)
.
timeoutDuration
(
timeoutDuration
)
.
threshold
(
threshold
)
.
enable
(
false
)
.
deleted
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/rehearsal/EvacuationZoneModifyParam.java
浏览文件 @
b84b587a
...
...
@@ -64,8 +64,6 @@ public class EvacuationZoneModifyParam implements Serializable {
.
video
(
video
)
.
timeoutDuration
(
timeoutDuration
)
.
threshold
(
threshold
)
.
enable
(
false
)
.
deleted
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/rehearsal/RehearsalPlanAddParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
rehearsal
;
import
com.yiring.app.constant.rehearsal.RehearsalPlanStatusEnum
;
import
com.yiring.app.domain.rehearsal.AccidentSpot
;
import
com.yiring.app.domain.rehearsal.EvacuationZone
;
import
com.yiring.app.domain.rehearsal.RehearsalPlan
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 11:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel
(
"演练计划新增param"
)
public
class
RehearsalPlanAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6574628197950618904L
;
@ApiModelProperty
(
value
=
"演练主题"
,
example
=
"红色演练"
,
required
=
true
)
@NotEmpty
(
message
=
"演练主题不能为空"
)
private
String
topical
;
@ApiModelProperty
(
value
=
"事故点id"
,
example
=
"1522844636060585984"
,
required
=
true
)
@NotNull
(
message
=
"事故点id不能为空"
)
private
Long
accidentSpotId
;
@ApiModelProperty
(
value
=
"周边范围(事故点周围多少米)"
,
example
=
"50"
,
required
=
true
)
@NotNull
(
message
=
"周边范围不能为空"
)
private
Integer
scope
;
@ApiModelProperty
(
value
=
"撤离区id"
,
example
=
"1523562795864428544"
,
required
=
true
)
@NotNull
(
message
=
"撤离区id不能为空"
)
private
Long
evacuationZoneId
;
@ApiModelProperty
(
value
=
"风险程度"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"撤离区id不能为空"
)
private
Integer
riskLevel
;
@ApiModelProperty
(
value
=
"事故信息"
,
example
=
"气体泄露"
,
required
=
true
)
@NotEmpty
(
message
=
"事故信息不能为空"
)
private
String
accidentMsg
;
@ApiModelProperty
(
value
=
"推送信息"
,
example
=
"气体泄露,请尽快逃离"
,
required
=
true
)
@NotEmpty
(
message
=
"推送信息不能为空"
)
private
String
pushMsg
;
public
RehearsalPlan
transform
()
{
AccidentSpot
accidentSpot
=
AccidentSpot
.
builder
().
id
(
accidentSpotId
).
build
();
EvacuationZone
evacuationZone
=
EvacuationZone
.
builder
().
id
(
evacuationZoneId
).
build
();
return
RehearsalPlan
.
builder
()
.
topical
(
topical
)
.
accidentSpot
(
accidentSpot
)
.
scope
(
scope
)
.
evacuationZone
(
evacuationZone
)
.
riskLevel
(
riskLevel
)
.
accidentMsg
(
accidentMsg
)
.
pushMsg
(
pushMsg
)
.
status
(
RehearsalPlanStatusEnum
.
UN_START
.
getCode
())
.
deleted
(
false
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/rehearsal/RehearsalPlanConditionParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
rehearsal
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 11:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel
(
"演练计划查询条件param"
)
public
class
RehearsalPlanConditionParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6574628197950618904L
;
@ApiModelProperty
(
value
=
"风险程度"
,
example
=
"1"
)
private
Integer
riskLevel
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"开始时间"
,
example
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
beginTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
example
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
endTime
;
}
app/src/main/java/com/yiring/app/param/rehearsal/RehearsalPlanModifyParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
rehearsal
;
import
com.yiring.app.domain.rehearsal.AccidentSpot
;
import
com.yiring.app.domain.rehearsal.EvacuationZone
;
import
com.yiring.app.domain.rehearsal.RehearsalPlan
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 11:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel
(
"演练计划修改param"
)
public
class
RehearsalPlanModifyParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6574628197950618904L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"id不能为空"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"演练主题"
,
example
=
"红色演练"
)
private
String
topical
;
@ApiModelProperty
(
value
=
"事故点id"
,
example
=
"1522844636060585984"
)
private
Long
accidentSpotId
;
@ApiModelProperty
(
value
=
"周边范围(事故点周围多少米)"
,
example
=
"50"
)
private
Integer
scope
;
@ApiModelProperty
(
value
=
"撤离区id"
,
example
=
"1523562795864428544"
)
private
Long
evacuationZoneId
;
@ApiModelProperty
(
value
=
"风险程度"
,
example
=
"1"
)
private
Integer
riskLevel
;
@ApiModelProperty
(
value
=
"事故信息"
,
example
=
"气体泄露"
)
private
String
accidentMsg
;
@ApiModelProperty
(
value
=
"推送信息"
,
example
=
"气体泄露,请尽快逃离"
)
private
String
pushMsg
;
public
RehearsalPlan
transform
()
{
AccidentSpot
accidentSpot
=
AccidentSpot
.
builder
().
id
(
accidentSpotId
).
build
();
EvacuationZone
evacuationZone
=
EvacuationZone
.
builder
().
id
(
evacuationZoneId
).
build
();
return
RehearsalPlan
.
builder
()
.
id
(
id
)
.
topical
(
topical
)
.
accidentSpot
(
accidentSpot
)
.
scope
(
scope
)
.
evacuationZone
(
evacuationZone
)
.
riskLevel
(
riskLevel
)
.
accidentMsg
(
accidentMsg
)
.
pushMsg
(
pushMsg
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/rehearsal/RehearsalPlanPlaybackParam.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
rehearsal
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/12 11:56
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel
(
"演练计划查看回放param"
)
public
class
RehearsalPlanPlaybackParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5765142306154131375L
;
@ApiModelProperty
(
value
=
"演练计划id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"演练计划id不能为空"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"看回放的开始时间(不传则默认演练开始的时间)"
)
private
LocalDateTime
beginTime
;
}
app/src/main/java/com/yiring/app/rabbit/config/MockZyRabbitConfig.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
rabbit
.
config
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.BindingBuilder
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.amqp.core.TopicExchange
;
import
com.yiring.app.rabbit.receiver.PositionMessageHandler
;
import
javax.annotation.Resource
;
import
org.springframework.amqp.core.*
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
...
...
@@ -16,8 +18,12 @@ import org.springframework.context.annotation.Configuration;
* 2019/8/21 15:44
*/
@Configuration
@ConditionalOnProperty
(
prefix
=
"zy-config.rabbitmq"
,
value
=
"mock"
,
havingValue
=
"true"
)
public
class
MockZyRabbitConfig
{
@Resource
ZyConfigProperties
.
ZyConfigRabbitmq
rabbitmq
;
/**
* 消息交换机
*/
...
...
@@ -33,16 +39,20 @@ public class MockZyRabbitConfig {
return
new
TopicExchange
(
ZY_TOPIC_EXCHANGE
,
true
,
false
);
}
@Bean
(
ZyRabbitConfig
.
MESSAGE_QUEUES_NAME
)
public
Queue
mockMessageQueue
()
{
return
new
Queue
(
ZyRabbitConfig
.
MESSAGE_QUEUES_NAME
,
true
,
false
,
false
);
}
@Bean
Binding
bindingExchangeMock
(
@Qualifier
(
ZyRabbitConfig
.
MESSAGE_QUEUES
_NAME
)
Queue
queue
,
@Qualifier
(
ZyRabbitConfig
.
QUEUE_BEAN
_NAME
)
Queue
queue
,
@Qualifier
(
ZY_TOPIC_EXCHANGE
)
TopicExchange
exchange
)
{
return
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
ZyRabbitConfig
.
MESSAGE_QUEUES_NAME
);
return
BindingBuilder
.
bind
(
queue
).
to
(
exchange
).
with
(
rabbitmq
.
getQueueName
());
}
@Bean
(
ZyRabbitConfig
.
LISTENER_CONTAINER_NAME
)
public
SimpleMessageListenerContainer
simpleMessageListenerContainer
(
PositionMessageHandler
handler
,
@Qualifier
(
ZyRabbitConfig
.
QUEUE_BEAN_NAME
)
Queue
queue
,
@Qualifier
(
RabbitConfig
.
CONNECTION_FACTORY_NAME
)
ConnectionFactory
connectionFactory
)
{
return
ZyRabbitConfig
.
buildPositionMessageListenerContainer
(
handler
,
queue
,
connectionFactory
);
}
}
app/src/main/java/com/yiring/app/rabbit/config/RabbitConfig.java
浏览文件 @
b84b587a
...
...
@@ -2,15 +2,11 @@
package
com
.
yiring
.
app
.
rabbit
.
config
;
import
javax.annotation.Resource
;
import
org.springframework.amqp.core.AcknowledgeMode
;
import
org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory
;
import
org.springframework.amqp.rabbit.connection.CachingConnectionFactory
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.autoconfigure.amqp.RabbitProperties
;
import
org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
...
...
@@ -43,19 +39,6 @@ public class RabbitConfig {
@Bean
@Primary
public
RabbitListenerContainerFactory
<?>
rabbitListenerContainerFactory
(
SimpleRabbitListenerContainerFactoryConfigurer
configurer
,
@Qualifier
(
CONNECTION_FACTORY_NAME
)
ConnectionFactory
connectionFactory
)
{
SimpleRabbitListenerContainerFactory
factory
=
new
SimpleRabbitListenerContainerFactory
();
// 手动确认消息模式
factory
.
setAcknowledgeMode
(
AcknowledgeMode
.
MANUAL
);
configurer
.
configure
(
factory
,
connectionFactory
);
return
factory
;
}
@Bean
@Primary
public
RabbitTemplate
rabbitTemplate
(
@Qualifier
(
CONNECTION_FACTORY_NAME
)
ConnectionFactory
connectionFactory
)
{
return
new
RabbitTemplate
(
connectionFactory
);
}
...
...
app/src/main/java/com/yiring/app/rabbit/config/ZyConfigProperties.java
浏览文件 @
b84b587a
...
...
@@ -36,6 +36,7 @@ public class ZyConfigProperties {
@ConfigurationProperties
(
prefix
=
"zy-config.rabbitmq"
)
public
static
class
ZyConfigRabbitmq
{
boolean
mock
;
boolean
enabled
;
String
host
;
int
port
;
...
...
app/src/main/java/com/yiring/app/rabbit/config/ZyRabbitConfig.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
rabbit
.
config
;
import
com.yiring.app.rabbit.receiver.PositionMessageHandler
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.AcknowledgeMode
;
import
org.springframework.amqp.
rabbit.config.SimpleRabbitListenerContainerFactory
;
import
org.springframework.amqp.
core.Queue
;
import
org.springframework.amqp.rabbit.connection.ConnectionFactory
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory
;
import
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
...
...
@@ -31,19 +29,9 @@ public class ZyRabbitConfig {
@Resource
ZyConfigProperties
.
ZyConfigRabbitmq
rabbitmq
;
@Resource
ConfigurableApplicationContext
context
;
public
static
final
String
CONNECTION_FACTORY_NAME
=
"zyRabbitConnectionFactory"
;
public
static
final
String
LISTENER_FACTORY_NAME
=
"zyRabbitListenerFactory"
;
public
static
final
String
TEMPLATE_NAME
=
"zyRabbitTemplate"
;
/**
* 消息队列名称(必须要与配置文件中的 queue-name 完全一致)
* 规则: tenant_msg_${open.client-secret}_${open.client-id}
* 参见文档: 定位平台接口规范V3.0.1 - 通用版.pdf #6
*/
public
static
final
String
MESSAGE_QUEUES_NAME
=
"tenant_msg_12A14FDC_sc21080400"
;
public
static
final
String
LISTENER_CONTAINER_NAME
=
"zyPositionMessageListenerContainer"
;
public
static
final
String
QUEUE_BEAN_NAME
=
"messageHandlerQueue"
;
@Bean
(
CONNECTION_FACTORY_NAME
)
public
ConnectionFactory
zyConnectionFactory
()
{
...
...
@@ -56,27 +44,35 @@ public class ZyRabbitConfig {
);
}
@Bean
(
LISTENER_FACTORY_NAME
)
public
RabbitListenerContainerFactory
<?>
rabbitListenerContainerFactory
(
SimpleRabbitListenerContainerFactoryConfigurer
configurer
,
@Bean
(
LISTENER_CONTAINER_NAME
)
@ConditionalOnProperty
(
prefix
=
"zy-config.rabbitmq"
,
value
=
"mock"
,
havingValue
=
"false"
)
public
SimpleMessageListenerContainer
simpleMessageListenerContainer
(
PositionMessageHandler
handler
,
@Qualifier
(
QUEUE_BEAN_NAME
)
Queue
queue
,
@Qualifier
(
CONNECTION_FACTORY_NAME
)
ConnectionFactory
connectionFactory
)
{
// 检查队列名称是否与配置文件一致,避免监听错误
if
(!
MESSAGE_QUEUES_NAME
.
equals
(
rabbitmq
.
getQueueName
()))
{
log
.
error
(
"队列名称不一致,请检查配置文件"
);
context
.
close
();
return
null
;
}
return
buildPositionMessageListenerContainer
(
handler
,
queue
,
connectionFactory
);
}
SimpleRabbitListenerContainerFactory
factory
=
new
SimpleRabbitListenerContainerFactory
();
// 手动确认消息模式
factory
.
setAcknowledgeMode
(
AcknowledgeMode
.
MANUAL
);
configurer
.
configure
(
factory
,
connectionFactory
);
return
factory
;
@Bean
(
QUEUE_BEAN_NAME
)
public
Queue
messageHandlerQueue
()
{
return
new
Queue
(
rabbitmq
.
getQueueName
(),
true
,
false
,
false
);
}
@Bean
(
TEMPLATE_NAME
)
public
RabbitTemplate
rabbitTemplate
(
@Qualifier
(
CONNECTION_FACTORY_NAME
)
ConnectionFactory
connectionFactory
)
{
return
new
RabbitTemplate
(
connectionFactory
);
public
static
SimpleMessageListenerContainer
buildPositionMessageListenerContainer
(
PositionMessageHandler
handler
,
Queue
queue
,
ConnectionFactory
connectionFactory
)
{
SimpleMessageListenerContainer
container
=
new
SimpleMessageListenerContainer
();
container
.
setConnectionFactory
(
connectionFactory
);
container
.
setAcknowledgeMode
(
AcknowledgeMode
.
MANUAL
);
container
.
setBatchSize
(
10
);
container
.
setConcurrentConsumers
(
1
);
container
.
setMaxConcurrentConsumers
(
1
);
container
.
setExposeListenerChannel
(
true
);
container
.
setMessageListener
(
handler
);
container
.
addQueues
(
queue
);
return
container
;
}
}
app/src/main/java/com/yiring/app/rabbit/receiver/
ZyRabbitReceiv
er.java
→
app/src/main/java/com/yiring/app/rabbit/receiver/
PositionMessageHandl
er.java
浏览文件 @
b84b587a
...
...
@@ -2,31 +2,29 @@
package
com
.
yiring
.
app
.
rabbit
.
receiver
;
import
com.rabbitmq.client.Channel
;
import
com.yiring.app.
rabbit.config.ZyRabbitConfig
;
import
com.yiring.
app.service.message.ZyMessageService
;
import
com.yiring.app.
service.message.PositionMessageService
;
import
com.yiring.
common.annotation.Times
;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* 真源
RabbitMQ 消息监听(消息消费者)
* 真源
消息监听处理器
*
* @author Jim
* @version 0.1
* 2022/
4/13 17:13
* 2022/
5/11 16:35
*/
@Slf4j
@Component
@Configuration
@ConditionalOnProperty
(
prefix
=
"zy-config.rabbitmq"
,
value
=
"enabled"
,
havingValue
=
"true"
)
public
class
ZyRabbitReceiver
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
PositionMessageHandler
implements
ChannelAwareMessageListener
{
// TODO
// 1. 新增消息订阅定时任务,检查是否正常订阅了真源定位系统的消息
...
...
@@ -34,26 +32,15 @@ public class ZyRabbitReceiver {
// 3. 订阅 position(定位数据)、lowPower(低电量报警)、deviceStatus(设备状态)、keyWarning(按键报警)
@Resource
ZyMessageService
zy
MessageService
;
PositionMessageService
position
MessageService
;
/**
* 订阅真源定位系统 RabbitMQ 推送过来的消息(主动订阅的一些消息类别)
* 参见: 定位平台接口规范V3.0.1 - 通用版.pdf #6
* @param msg 消息内容
* @param channel 消息通道
* @param message 消息主体
* @throws IOException 消息确认异常
*/
@RabbitHandler
// @RabbitListener(
// queues = ZyRabbitConfig.MESSAGE_QUEUES_NAME,
// containerFactory = ZyRabbitConfig.LISTENER_FACTORY_NAME
// )
@RabbitListener
(
queues
=
ZyRabbitConfig
.
MESSAGE_QUEUES_NAME
,
containerFactory
=
"rabbitListenerContainerFactory"
)
public
void
listen
(
String
msg
,
Channel
channel
,
Message
message
)
throws
IOException
{
@Times
(
"Position System Message Handler"
)
@Override
public
void
onMessage
(
Message
message
,
Channel
channel
)
throws
IOException
{
// 消费消息
zyMessageService
.
consume
(
msg
);
positionMessageService
.
consume
(
new
String
(
message
.
getBody
(),
StandardCharsets
.
UTF_8
)
);
// 手动确认消息已收到
assert
channel
!=
null
;
channel
.
basicAck
(
message
.
getMessageProperties
().
getDeliveryTag
(),
false
);
}
}
app/src/main/java/com/yiring/app/service/alarm/AlarmService.java
浏览文件 @
b84b587a
...
...
@@ -58,5 +58,5 @@ public interface AlarmService {
* @param conditionParam 条件
* @param response response
*/
void
exportAlarmType
(
AlarmConditionParam
conditionParam
,
HttpServletResponse
response
,
PageParam
pageParam
);
void
exportAlarmType
(
AlarmConditionParam
conditionParam
,
HttpServletResponse
response
);
}
app/src/main/java/com/yiring/app/service/alarm/impl/AlarmServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -79,7 +79,7 @@ public class AlarmServiceImpl implements AlarmService {
}
alarmType
=
optional
.
get
();
}
JpaUtil
.
copyNotNullProperties
(
param
,
alarmType
);
JpaUtil
.
copyNotNullProperties
(
param
.
transform
()
,
alarmType
);
return
Result
.
ok
();
}
...
...
@@ -114,11 +114,10 @@ public class AlarmServiceImpl implements AlarmService {
}
@Override
public
void
exportAlarmType
(
AlarmConditionParam
conditionParam
,
HttpServletResponse
response
,
PageParam
pageParam
)
{
Pageable
pageable
=
PageParam
.
toPageable
(
pageParam
);
public
void
exportAlarmType
(
AlarmConditionParam
conditionParam
,
HttpServletResponse
response
)
{
Specification
<
AlarmType
>
specification
=
getSpecification
(
conditionParam
);
Page
<
AlarmType
>
page
=
alarmTypeRepository
.
findAll
(
specification
,
pageable
);
List
<
AlarmTypeExcel
>
list
=
page
.
get
().
map
(
AlarmTypeExcel:
:
transform
).
collect
(
Collectors
.
toList
());
List
<
AlarmType
>
page
=
alarmTypeRepository
.
findAll
(
specification
);
List
<
AlarmTypeExcel
>
list
=
page
.
stream
().
map
(
AlarmTypeExcel:
:
transform
).
collect
(
Collectors
.
toList
());
try
(
DefaultStreamExcelBuilder
<
AlarmTypeExcel
>
streamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
AlarmTypeExcel
.
class
)
...
...
app/src/main/java/com/yiring/app/service/broadcast/BroadcastAudioService.java
浏览文件 @
b84b587a
...
...
@@ -6,11 +6,13 @@ import com.yiring.app.param.broadcast.BroadcastAudioFindParam;
import
com.yiring.app.param.broadcast.BroadcastAudioModifyParam
;
import
com.yiring.app.vo.broadcast.BroadcastAudioIndexVo
;
import
com.yiring.app.vo.broadcast.BroadcastAudioVo
;
import
com.yiring.auth.param.IdsParam
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IndexParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
/**
* 播报语音
...
...
@@ -55,4 +57,11 @@ public interface BroadcastAudioService {
* @return Result<PageVo<BroadcastAudioIndexVo>>
*/
Result
<
PageVo
<
BroadcastAudioIndexVo
>>
index
(
IndexParam
indexParam
);
/**
* 批量下载
* @param idsParam IdsParam
* @param response HttpServletResponse
*/
void
download
(
IdsParam
idsParam
,
HttpServletResponse
response
);
}
app/src/main/java/com/yiring/app/service/broadcast/impl/BroadcastAudioServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -2,6 +2,8 @@
package
com
.
yiring
.
app
.
service
.
broadcast
.
impl
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.yiring.app.domain.broadcast.BroadcastAudio
;
import
com.yiring.app.domain.broadcast.BroadcastAudioRepository
;
...
...
@@ -9,8 +11,11 @@ import com.yiring.app.param.broadcast.BroadcastAudioAddParam;
import
com.yiring.app.param.broadcast.BroadcastAudioFindParam
;
import
com.yiring.app.param.broadcast.BroadcastAudioModifyParam
;
import
com.yiring.app.service.broadcast.BroadcastAudioService
;
import
com.yiring.app.util.ZipUtils
;
import
com.yiring.app.vo.broadcast.BroadcastAudioIndexVo
;
import
com.yiring.app.vo.broadcast.BroadcastAudioVo
;
import
com.yiring.auth.param.IdsParam
;
import
com.yiring.common.core.Minio
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.domain.BasicEntity
;
...
...
@@ -18,12 +23,17 @@ import com.yiring.common.param.IdParam;
import
com.yiring.common.param.IndexParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.util.List
;
import
java.util.Optional
;
import
io.minio.GetObjectResponse
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
...
...
@@ -47,6 +57,9 @@ public class BroadcastAudioServiceImpl implements BroadcastAudioService {
@Resource
BroadcastAudioRepository
broadcastAudioRepository
;
@Resource
Minio
minio
;
@Override
public
Result
<
String
>
save
(
BroadcastAudioAddParam
param
)
{
broadcastAudioRepository
.
save
(
BroadcastAudioAddParam
.
transform
(
param
));
...
...
@@ -122,4 +135,37 @@ public class BroadcastAudioServiceImpl implements BroadcastAudioService {
return
Result
.
ok
(
pageVo
);
}
@Override
public
void
download
(
IdsParam
idsParam
,
HttpServletResponse
response
)
{
String
[]
split
=
idsParam
.
getIds
().
split
(
","
);
Long
[]
ids
=
Convert
.
toLongArray
(
split
);
List
<
BroadcastAudio
>
broadcastAudios
=
broadcastAudioRepository
.
findAllById
(
Arrays
.
asList
(
ids
));
HashMap
<
String
,
File
>
map
=
new
HashMap
<>();
broadcastAudios
.
forEach
(
broadcastAudio
->
{
String
uri
=
broadcastAudio
.
getUri
();
int
i
=
uri
.
lastIndexOf
(
"upload/"
);
uri
=
uri
.
substring
(
i
);
try
{
GetObjectResponse
getObjectResponse
=
minio
.
getObject
(
uri
);
File
file
=
FileUtil
.
writeFromStream
(
getObjectResponse
,
FileUtil
.
createTempFile
());
int
j
=
uri
.
lastIndexOf
(
"."
);
uri
=
uri
.
substring
(
j
);
map
.
put
(
broadcastAudio
.
getName
()
+
uri
,
file
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
});
String
fileName
=
URLEncoder
.
encode
(
"音频文件.zip"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
try
{
ZipUtils
.
packet
(
map
,
response
.
getOutputStream
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
app/src/main/java/com/yiring/app/service/dept/impl/DepartmentServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -76,11 +76,11 @@ public class DepartmentServiceImpl implements DepartmentService {
@Override
public
Result
<
String
>
addDepartment
(
DepartmentAddParam
departmentAddParam
)
{
// 查询用户相关信息
Optional
<
User
>
userOptional
=
userRepository
.
findOne
(
Example
.
of
(
User
.
builder
().
id
(
departmentAddParam
.
getLeaderId
()).
build
())
);
Department
department
=
DepartmentAddParam
.
transform
(
departmentAddParam
);
userOptional
.
ifPresent
(
department:
:
setLeader
);
if
(
ObjectUtil
.
isNotEmpty
(
departmentAddParam
.
getLeaderId
()))
{
Optional
<
User
>
userOptional
=
userRepository
.
findById
(
departmentAddParam
.
getLeaderId
());
userOptional
.
ifPresent
(
department:
:
setLeader
);
}
// 查询zy上级部门id
Optional
<
Department
>
departmentOptional
=
departmentRepository
.
findOne
(
...
...
@@ -157,13 +157,16 @@ public class DepartmentServiceImpl implements DepartmentService {
@Override
public
void
exportDepartment
(
DepartmentExportParam
departmentExportParam
,
HttpServletResponse
response
)
{
List
<
Department
>
departments
=
departmentRepository
.
findAll
(
Example
.
of
(
Department
.
builder
().
enable
(
departmentExportParam
.
getEnable
()).
build
())
);
List
<
DepartmentExportExcel
>
departmentExportExcels
=
departments
.
stream
()
.
map
(
DepartmentExportExcel:
:
transform
)
.
collect
(
Collectors
.
toList
());
HashMap
<
String
,
Department
>
hashMap
=
getStringDepartmentHashMap
();
List
<
DepartmentExportExcel
>
departmentExportExcels
=
ListUtil
.
toList
();
hashMap
.
forEach
((
k
,
v
)
->
{
DepartmentExportExcel
departmentExportExcel
=
DepartmentExportExcel
.
transform
(
v
);
if
(
v
.
getEnable
()
==
departmentExportParam
.
getEnable
())
{
departmentExportExcel
.
setName
(
k
);
departmentExportExcels
.
add
(
departmentExportExcel
);
}
});
try
(
DefaultStreamExcelBuilder
<
DepartmentExportExcel
>
streamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
DepartmentExportExcel
.
class
)
...
...
app/src/main/java/com/yiring/app/service/district/impl/DistrictServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -68,7 +68,7 @@ public class DistrictServiceImpl implements DistrictService {
district
=
optional
.
get
();
}
//只修改要修改的值
JpaUtil
.
copyNotNullProperties
(
param
,
district
);
JpaUtil
.
copyNotNullProperties
(
param
.
transform
()
,
district
);
return
Result
.
ok
();
}
...
...
app/src/main/java/com/yiring/app/service/key/KeyAlarmLogService.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
key
;
import
com.yiring.app.param.key.KeyAlarmLogFindParam
;
import
com.yiring.app.vo.key.KeyAlarmLogVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
/**
* 按键报警推送
*
* @author LJ-2204
* @date 2022/5/13
*/
public
interface
KeyAlarmLogService
{
/**
* 表格查询
* @param param KeyAlarmLogFindParam
* @param pageParam PageParam
* @return Result<PageVo<KeyAlarmLogVo>>
*/
Result
<
PageVo
<
KeyAlarmLogVo
>>
page
(
KeyAlarmLogFindParam
param
,
PageParam
pageParam
);
}
app/src/main/java/com/yiring/app/service/key/KeyAlarmRule
s
Service.java
→
app/src/main/java/com/yiring/app/service/key/KeyAlarmRuleService.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
key
;
import
com.yiring.app.param.key.KeyAlarmRule
s
AddParam
;
import
com.yiring.app.param.key.KeyAlarmRule
s
ExportParam
;
import
com.yiring.app.param.key.KeyAlarmRule
s
ModifyParam
;
import
com.yiring.app.param.key.KeyAlarmRule
s
PageParam
;
import
com.yiring.app.vo.key.KeyAlarmRule
s
Vo
;
import
com.yiring.app.param.key.KeyAlarmRuleAddParam
;
import
com.yiring.app.param.key.KeyAlarmRuleExportParam
;
import
com.yiring.app.param.key.KeyAlarmRuleModifyParam
;
import
com.yiring.app.param.key.KeyAlarmRulePageParam
;
import
com.yiring.app.vo.key.KeyAlarmRuleVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
...
...
@@ -18,13 +18,13 @@ import javax.servlet.http.HttpServletResponse;
* @author LJ-2204
* @date 2022/5/6
*/
public
interface
KeyAlarmRule
s
Service
{
public
interface
KeyAlarmRuleService
{
/**
* 添加报警类型
* @param keyAlarmRule
sAddParam KeyAlarmRules
AddParam
* @param keyAlarmRule
AddParam KeyAlarmRule
AddParam
* @return Result<String>
*/
Result
<
String
>
add
(
KeyAlarmRule
sAddParam
keyAlarmRules
AddParam
);
Result
<
String
>
add
(
KeyAlarmRule
AddParam
keyAlarmRule
AddParam
);
/**
* 删除报警规则
...
...
@@ -35,23 +35,23 @@ public interface KeyAlarmRulesService {
/**
* 修改报警规则
* @param keyAlarmRule
sModifyParam KeyAlarmRules
ModifyParam
* @param keyAlarmRule
ModifyParam KeyAlarmRule
ModifyParam
* @return Result<String>
*/
Result
<
String
>
modify
(
KeyAlarmRule
sModifyParam
keyAlarmRules
ModifyParam
);
Result
<
String
>
modify
(
KeyAlarmRule
ModifyParam
keyAlarmRule
ModifyParam
);
/**
* 导出
* @param keyAlarmRule
sExportParam KeyAlarmRules
ExportParam
* @param keyAlarmRule
ExportParam KeyAlarmRule
ExportParam
* @param response HttpServletResponse
*/
void
export
(
KeyAlarmRule
sExportParam
keyAlarmRules
ExportParam
,
HttpServletResponse
response
);
void
export
(
KeyAlarmRule
ExportParam
keyAlarmRule
ExportParam
,
HttpServletResponse
response
);
/**
* 分页
* @param keyAlarmRule
sPageParam KeyAlarmRules
PageParam
* @param keyAlarmRule
PageParam KeyAlarmRule
PageParam
* @param pageParam PageParam
* @return Result<PageVo<KeyAlarmRule
s
Vo>>
* @return Result<PageVo<KeyAlarmRuleVo>>
*/
Result
<
PageVo
<
KeyAlarmRule
sVo
>>
page
(
KeyAlarmRulesPageParam
keyAlarmRules
PageParam
,
PageParam
pageParam
);
Result
<
PageVo
<
KeyAlarmRule
Vo
>>
page
(
KeyAlarmRulePageParam
keyAlarmRule
PageParam
,
PageParam
pageParam
);
}
app/src/main/java/com/yiring/app/service/key/KeyAlarmService.java
浏览文件 @
b84b587a
...
...
@@ -6,6 +6,7 @@ import com.yiring.app.vo.key.KeyAlarmVo;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
/**
* 部门信息控制器
...
...
@@ -21,4 +22,11 @@ public interface KeyAlarmService {
* @return Result<PageVo<KeyAlarmVo>>
*/
Result
<
PageVo
<
KeyAlarmVo
>>
page
(
KeyAlarmFindParam
param
,
PageParam
pageParam
);
/**
* 导出
* @param param KeyAlarmFindParam
* @param response HttpServletResponse
*/
void
export
(
KeyAlarmFindParam
param
,
HttpServletResponse
response
);
}
app/src/main/java/com/yiring/app/service/key/impl/KeyAlarmLogServiceImpl.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
key
.
impl
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.yiring.app.domain.key.KeyAlarmLog
;
import
com.yiring.app.domain.key.KeyAlarmLogRepository
;
import
com.yiring.app.param.key.KeyAlarmLogFindParam
;
import
com.yiring.app.service.key.KeyAlarmLogService
;
import
com.yiring.app.vo.key.KeyAlarmLogVo
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* 按键报警推送
*
* @author LJ-2204
* @date 2022/5/13
*/
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
@Slf4j
public
class
KeyAlarmLogServiceImpl
implements
KeyAlarmLogService
{
@Resource
KeyAlarmLogRepository
keyAlarmLogRepository
;
@Override
public
Result
<
PageVo
<
KeyAlarmLogVo
>>
page
(
KeyAlarmLogFindParam
param
,
PageParam
pageParam
)
{
Specification
<
KeyAlarmLog
>
specification
=
(
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
ListUtil
.
toList
();
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getMobile
()))
{
predicates
.
add
(
cb
.
like
(
root
.
get
(
KeyAlarmLog
.
Fields
.
user
).
get
(
User
.
Fields
.
mobile
),
"%"
+
param
.
getMobile
()
+
"%"
)
);
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getStatus
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
KeyAlarmLog
.
Fields
.
status
),
param
.
getStatus
()));
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getType
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
KeyAlarmLog
.
Fields
.
types
),
param
.
getType
()));
}
Order
order
=
cb
.
desc
(
root
.
get
(
BasicEntity
.
Fields
.
createTime
));
return
cq
.
orderBy
(
order
).
where
(
predicates
.
toArray
(
new
Predicate
[
0
])).
getRestriction
();
};
Pageable
pageable
=
PageRequest
.
of
(
pageParam
.
getPageNo
()
-
1
,
pageParam
.
getPageSize
());
Page
<
KeyAlarmLog
>
keyAlarmLogs
=
keyAlarmLogRepository
.
findAll
(
specification
,
pageable
);
List
<
KeyAlarmLogVo
>
keyAlarmLogVos
=
keyAlarmLogs
.
getContent
()
.
stream
()
.
map
(
KeyAlarmLogVo:
:
transform
)
.
collect
(
Collectors
.
toList
());
PageVo
<
KeyAlarmLogVo
>
pageVo
=
PageVo
.
build
(
keyAlarmLogVos
,
keyAlarmLogs
.
getTotalElements
());
return
Result
.
ok
(
pageVo
);
}
}
app/src/main/java/com/yiring/app/service/key/impl/KeyAlarmRule
s
ServiceImpl.java
→
app/src/main/java/com/yiring/app/service/key/impl/KeyAlarmRuleServiceImpl.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/service/key/impl/KeyAlarmServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -4,10 +4,12 @@ package com.yiring.app.service.key.impl;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.key.KeyAlarm
;
import
com.yiring.app.domain.key.KeyAlarmRepository
;
import
com.yiring.app.domain.key.KeyAlarmRules
;
import
com.yiring.app.domain.key.KeyAlarmRulesRepository
;
import
com.yiring.app.domain.key.KeyAlarmRule
;
import
com.yiring.app.domain.key.KeyAlarmRuleRepository
;
import
com.yiring.app.excel.key.KeyAlarmExportExcel
;
import
com.yiring.app.param.key.KeyAlarmFindParam
;
import
com.yiring.app.service.key.KeyAlarmService
;
import
com.yiring.app.vo.key.KeyAlarmVo
;
...
...
@@ -17,14 +19,20 @@ import com.yiring.common.core.Result;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
...
...
@@ -48,7 +56,7 @@ public class KeyAlarmServiceImpl implements KeyAlarmService {
KeyAlarmRepository
keyAlarmRepository
;
@Resource
KeyAlarmRule
sRepository
keyAlarmRules
Repository
;
KeyAlarmRule
Repository
keyAlarmRule
Repository
;
@Override
public
Result
<
PageVo
<
KeyAlarmVo
>>
page
(
KeyAlarmFindParam
param
,
PageParam
pageParam
)
{
...
...
@@ -101,13 +109,13 @@ public class KeyAlarmServiceImpl implements KeyAlarmService {
.
build
();
keyAlarmVo
.
setUser
(
userVo
);
}
Optional
<
KeyAlarmRule
s
>
keyAlarmRulesOptional
=
keyAlarmRules
Repository
.
findById
(
Optional
<
KeyAlarmRule
>
keyAlarmRuleOptional
=
keyAlarmRule
Repository
.
findById
(
leader
.
getDepartment
().
getId
()
);
if
(
keyAlarmRule
s
Optional
.
isPresent
())
{
KeyAlarmRule
s
keyAlarmRules
=
keyAlarmRules
Optional
.
get
();
Set
<
User
>
users
=
keyAlarmRule
s
.
getUsers
();
if
(
keyAlarmRuleOptional
.
isPresent
())
{
KeyAlarmRule
keyAlarmRule
=
keyAlarmRule
Optional
.
get
();
Set
<
User
>
users
=
keyAlarmRule
.
getUsers
();
List
<
String
>
names
=
users
.
stream
().
map
(
User:
:
getRealName
).
collect
(
Collectors
.
toList
());
keyAlarmVo
.
setReceiver
(
StrUtil
.
join
(
","
,
names
));
}
...
...
@@ -119,4 +127,94 @@ public class KeyAlarmServiceImpl implements KeyAlarmService {
return
Result
.
ok
(
pageVo
);
}
@Override
public
void
export
(
KeyAlarmFindParam
param
,
HttpServletResponse
response
)
{
Specification
<
KeyAlarm
>
specification
=
(
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
ListUtil
.
toList
();
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getAreaId
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
KeyAlarm
.
Fields
.
areaId
),
param
.
getAreaId
()));
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getName
()))
{
predicates
.
add
(
cb
.
like
(
root
.
get
(
KeyAlarm
.
Fields
.
leader
).
get
(
User
.
Fields
.
realName
),
"%"
+
param
.
getName
()
+
"%"
)
);
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getEnable
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
KeyAlarm
.
Fields
.
enable
),
param
.
getEnable
()));
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getCreateTime
()))
{
predicates
.
add
(
cb
.
lessThan
(
root
.
get
(
BasicEntity
.
Fields
.
createTime
),
param
.
getCreateTime
()));
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getEndTime
()))
{
predicates
.
add
(
cb
.
greaterThan
(
root
.
get
(
BasicEntity
.
Fields
.
updateTime
),
param
.
getEndTime
()));
}
Order
order
=
cb
.
desc
(
root
.
get
(
BasicEntity
.
Fields
.
createTime
));
return
cq
.
orderBy
(
order
).
where
(
predicates
.
toArray
(
new
Predicate
[
0
])).
getRestriction
();
};
List
<
KeyAlarm
>
keyAlarms
=
keyAlarmRepository
.
findAll
(
specification
);
List
<
KeyAlarmExportExcel
>
keyAlarmExportExcels
=
keyAlarms
.
stream
()
.
map
(
keyAlarm
->
{
KeyAlarmExportExcel
keyAlarmExportExcel
=
KeyAlarmExportExcel
.
transform
(
keyAlarm
);
User
leader
=
keyAlarm
.
getLeader
();
if
(
ObjectUtil
.
isNotEmpty
(
leader
))
{
keyAlarmExportExcel
.
setRealName
(
leader
.
getRealName
());
keyAlarmExportExcel
.
setUuid
(
leader
.
getUuid
());
}
Optional
<
KeyAlarmRule
>
keyAlarmRuleOptional
=
keyAlarmRuleRepository
.
findById
(
leader
.
getDepartment
().
getId
()
);
if
(
keyAlarmRuleOptional
.
isPresent
())
{
KeyAlarmRule
keyAlarmRule
=
keyAlarmRuleOptional
.
get
();
Set
<
User
>
users
=
keyAlarmRule
.
getUsers
();
List
<
String
>
names
=
users
.
stream
().
map
(
User:
:
getRealName
).
collect
(
Collectors
.
toList
());
keyAlarmExportExcel
.
setReceiver
(
StrUtil
.
join
(
","
,
names
));
}
return
keyAlarmExportExcel
;
})
.
collect
(
Collectors
.
toList
());
try
(
DefaultStreamExcelBuilder
<
KeyAlarmExportExcel
>
streamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
KeyAlarmExportExcel
.
class
)
.
threadPool
(
Executors
.
newFixedThreadPool
(
2
))
.
rowHeight
(
14
)
.
titleRowHeight
(
14
)
.
style
(
"cell->vertical-align:center;text-align:center"
,
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.
start
()
)
{
streamExcelBuilder
.
append
(
keyAlarmExportExcels
);
String
fileName
=
URLEncoder
.
encode
(
"按键报警信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Access-Control-Expose-Headers"
,
"Content-Disposition"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
Workbook
workbook
=
streamExcelBuilder
.
fixedTitles
().
build
();
workbook
.
write
(
out
);
workbook
.
close
();
out
.
flush
();
out
.
close
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"导出按键报警信息失败: "
+
e
.
getMessage
());
}
}
}
app/src/main/java/com/yiring/app/service/location/fence/impl/LocationFenceServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -82,7 +82,7 @@ public class LocationFenceServiceImpl implements LocationFenceService {
}
locationFence
=
optional
.
get
();
}
JpaUtil
.
copyNotNullProperties
(
param
,
locationFence
);
JpaUtil
.
copyNotNullProperties
(
param
.
transform
()
,
locationFence
);
return
Result
.
ok
();
}
...
...
app/src/main/java/com/yiring/app/service/location/rule/LocationAlarmRuleService.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
location
.
rule
;
import
com.yiring.app.param.location.rule.AlarmRuleBatchModifyParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleAddParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleModifyParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleParam
;
...
...
@@ -10,7 +11,9 @@ import com.yiring.common.core.Result;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.util.Set
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
/**
* @author tml
...
...
@@ -26,6 +29,13 @@ public interface LocationAlarmRuleService {
Result
<
String
>
addRule
(
LocationAlarmRuleAddParam
param
);
/**
* 批量添加
* @param params 规则信息
* @return 是否成功
*/
Result
<
String
>
batchAdd
(
@Valid
Set
<
LocationAlarmRuleAddParam
>
params
);
/**
* 修改一条规则
* @param param 规则信息
* @return 是否成功
...
...
@@ -33,6 +43,13 @@ public interface LocationAlarmRuleService {
Result
<
String
>
modifyRule
(
LocationAlarmRuleModifyParam
param
);
/**
* 批量修改规则
* @param params 规则信息
* @return 是否成功
*/
Result
<
String
>
batchModify
(
AlarmRuleBatchModifyParam
params
);
/**
* 删除一条规则
* @param idParam 规则id
* @return 是否成功
...
...
@@ -58,9 +75,8 @@ public interface LocationAlarmRuleService {
* 导出电子围栏规则
* @param param 条件
* @param response response
* @param pageParam 分页参数
*/
void
exportAlarmRule
(
LocationAlarmRuleParam
param
,
HttpServletResponse
response
,
PageParam
pageParam
);
void
exportAlarmRule
(
LocationAlarmRuleParam
param
,
HttpServletResponse
response
);
/**
* 根据电子围栏名称模糊查询围栏id和名称
...
...
app/src/main/java/com/yiring/app/service/location/rule/impl/LocationAlarmRuleServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -9,6 +9,7 @@ import com.yiring.app.domain.location.LocationAlarmRuleRepository;
import
com.yiring.app.domain.location.LocationFence
;
import
com.yiring.app.domain.location.LocationFenceRepository
;
import
com.yiring.app.excel.location.LocationAlarmRuleExcel
;
import
com.yiring.app.param.location.rule.AlarmRuleBatchModifyParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleAddParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleModifyParam
;
import
com.yiring.app.param.location.rule.LocationAlarmRuleParam
;
...
...
@@ -69,6 +70,16 @@ public class LocationAlarmRuleServiceImpl implements LocationAlarmRuleService {
}
@Override
public
Result
<
String
>
batchAdd
(
Set
<
LocationAlarmRuleAddParam
>
params
)
{
List
<
LocationAlarmRule
>
list
=
params
.
stream
()
.
map
(
LocationAlarmRuleAddParam:
:
transform
)
.
collect
(
Collectors
.
toList
());
List
<
LocationAlarmRule
>
flush
=
locationAlarmRuleRepository
.
saveAllAndFlush
(
list
);
return
Result
.
ok
(
"已成功添加"
+
flush
.
size
()
+
"条规则"
);
}
@Override
public
Result
<
String
>
modifyRule
(
LocationAlarmRuleModifyParam
param
)
{
LocationAlarmRule
locationAlarmRule
=
param
.
transform
();
Optional
<
LocationAlarmRule
>
optional
=
locationAlarmRuleRepository
.
findById
(
param
.
getId
());
...
...
@@ -80,6 +91,17 @@ public class LocationAlarmRuleServiceImpl implements LocationAlarmRuleService {
}
@Override
public
Result
<
String
>
batchModify
(
AlarmRuleBatchModifyParam
params
)
{
for
(
LocationAlarmRuleModifyParam
item
:
params
.
getParams
())
{
Result
<
String
>
result
=
modifyRule
(
item
);
if
(
Status
.
OK
.
value
()
!=
result
.
getStatus
())
{
return
result
;
}
}
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
removeRule
(
IdParam
idParam
)
{
Optional
<
LocationAlarmRule
>
optional
=
locationAlarmRuleRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
...
...
@@ -144,14 +166,26 @@ public class LocationAlarmRuleServiceImpl implements LocationAlarmRuleService {
}
@Override
public
void
exportAlarmRule
(
LocationAlarmRuleParam
param
,
HttpServletResponse
response
,
PageParam
pageParam
)
{
Result
<
PageVo
<
LocationAlarmRuleVo
>>
result
=
findByCondition
(
param
,
pageParam
);
if
(
Status
.
OK
.
value
()
!=
result
.
getStatus
())
{
return
;
public
void
exportAlarmRule
(
LocationAlarmRuleParam
param
,
HttpServletResponse
response
)
{
Specification
<
LocationAlarmRule
>
specification
=
getSpecification
(
param
);
Set
<
Integer
>
informManner
=
param
.
getInformManner
();
List
<
LocationAlarmRule
>
list
=
locationAlarmRuleRepository
.
findAll
(
specification
);
if
(!
CollectionUtils
.
isEmpty
(
informManner
))
{
list
=
list
.
stream
()
.
filter
(
e
->
{
for
(
Integer
item
:
informManner
)
{
boolean
contains
=
e
.
getInformManner
().
contains
(
item
.
toString
());
if
(!
contains
)
{
return
false
;
}
}
return
true
;
})
.
collect
(
Collectors
.
toList
());
}
List
<
LocationAlarmRuleExcel
>
excelList
=
result
.
getBody
()
.
getData
()
List
<
LocationAlarmRuleExcel
>
excelList
=
list
.
stream
()
.
map
(
LocationAlarmRuleExcel:
:
transform
)
.
collect
(
Collectors
.
toList
());
...
...
app/src/main/java/com/yiring/app/service/message/
Zy
MessageService.java
→
app/src/main/java/com/yiring/app/service/message/
Position
MessageService.java
浏览文件 @
b84b587a
...
...
@@ -8,7 +8,7 @@ package com.yiring.app.service.message;
* @version 0.1
* 2022/5/9 10:16
*/
public
interface
Zy
MessageService
{
public
interface
Position
MessageService
{
/**
* 消费消息
* @param message 消息内容
...
...
app/src/main/java/com/yiring/app/service/message/impl/PositionMessageServiceImpl.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/service/message/impl/ZyMessageServiceImpl.java
deleted
100644 → 0
浏览文件 @
8d81b301
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
message
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yiring.app.domain.location.*
;
import
com.yiring.app.domain.log.ZyRealtimeLog
;
import
com.yiring.app.domain.log.ZyRealtimeLogRepository
;
import
com.yiring.app.service.message.ZyMessageService
;
import
com.yiring.app.util.GeoUtils
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.annotation.Times
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.util.Arrays
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.locationtech.jts.geom.Point
;
import
org.springframework.data.domain.Example
;
import
org.springframework.messaging.simp.SimpMessagingTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* 真源消息处理实现类
*
* @author Jim
* @version 0.1
* 2022/5/9 10:22
*/
@Slf4j
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
ZyMessageServiceImpl
implements
ZyMessageService
{
@Resource
LocationTagRepository
locationTagRepository
;
@Resource
LocationLogRepository
locationLogRepository
;
@Resource
SimpMessagingTemplate
simpMessagingTemplate
;
@Resource
ZyRealtimeLogRepository
zyRealtimeLogRepository
;
@Times
@Override
public
void
consume
(
String
message
)
{
// 将消息转换成 JSON 格式
JSONObject
info
=
JSON
.
parseObject
(
message
);
log
.
info
(
"Receiver Message: {}"
,
info
);
// 解构消息内容
JSONObject
data
=
info
.
getJSONObject
(
"params"
);
String
method
=
info
.
getString
(
"method"
);
// 记录日志
ZyRealtimeLog
realtimeLog
=
ZyRealtimeLog
.
builder
().
method
(
method
).
raw
(
info
).
build
();
zyRealtimeLogRepository
.
save
(
realtimeLog
);
// 业务处理
switch
(
method
)
{
// 实时定位
case
"position"
->
processPositionMessage
(
data
);
// 设备低电量
case
"lowPower"
->
processLowPowerMessage
(
data
);
// 设备状态变更
case
"deviceStatus"
->
processDeviceStatusMessage
(
data
);
// 按键报警
case
"keyWarning"
->
processKeyWarningMessage
(
data
);
// 围栏报警
case
"enclosure"
->
log
.
warn
(
"Ignore Message Type [enclosure]: {}"
,
info
);
default
->
log
.
warn
(
"Unknown Message Type: {}"
,
info
);
}
}
/**
* 处理定位消息
* @param data 消息内容
*/
public
void
processPositionMessage
(
JSONObject
data
)
{
// TODO
log
.
info
(
"Position Message: {}"
,
data
);
// 包装消息
// TODO
// 1. 解析消息内容,进行围栏、出入标识判断等处理,将定位记录录入数据库
// 2. 创建一条需要进行消息推送的记录
// 3. 将记录推送的消息推送模块
// 4. 检查是否触发围栏告警,记录告警数据,并推送消息
// 查询定位标签
String
tagId
=
data
.
getString
(
"tagId"
);
Example
<
LocationTag
>
example
=
Example
.
of
(
LocationTag
.
builder
().
code
(
tagId
).
build
());
Optional
<
LocationTag
>
optional
=
locationTagRepository
.
findOne
(
example
);
if
(
optional
.
isEmpty
())
{
log
.
warn
(
"Tag Not Found: {}"
,
tagId
);
return
;
}
// 构建复合主键
LocationTag
tag
=
optional
.
get
();
TagTimeId
id
=
new
TagTimeId
(
tag
);
// 定位时间
Instant
instant
=
Instant
.
ofEpochMilli
(
data
.
getLongValue
(
"locationTime"
));
LocalDateTime
locationTime
=
LocalDateTime
.
ofInstant
(
instant
,
ZoneId
.
systemDefault
());
// 定位的基本信息
LocationLog
locationLog
=
LocationLog
.
builder
()
.
id
(
id
)
.
locationTime
(
locationTime
)
.
areaId
(
data
.
getLong
(
"areaId"
))
.
floor
(
data
.
getString
(
"floor"
))
.
silent
(
data
.
getBoolean
(
"silent"
))
.
volt
(
data
.
getInteger
(
"volt"
))
.
voltUnit
(
data
.
getString
(
"voltUnit"
))
.
raw
(
data
)
.
build
();
// 获取定位卡当前绑定的用户
User
user
=
tag
.
getUser
();
if
(
user
!=
null
)
{
// 定位标签当时所属的用户
locationLog
.
setUser
(
user
);
// 查询当前用户的状态
locationLog
.
setStatus
(
user
.
getStatus
());
}
// 设置空间点位信息
Point
point
=
GeoUtils
.
createPoint
(
data
.
getDoubleValue
(
"longitude"
),
data
.
getDoubleValue
(
"latitude"
),
data
.
getDoubleValue
(
"altitude"
)
);
locationLog
.
setPoint
(
point
);
// 定位信标
Set
<
String
>
codes
=
Arrays
.
stream
(
data
.
getString
(
"beacons"
).
split
(
","
))
.
map
(
beacon
->
beacon
.
replaceAll
(
"\\(.*\\)"
,
""
))
.
collect
(
Collectors
.
toSet
());
locationLog
.
setBeacons
(
new
JSONArray
().
fluentAddAll
(
codes
));
// TODO
// 并计算出入标记(围栏、区域)
// 写入数据
locationLogRepository
.
saveAndFlush
(
locationLog
);
// 更新定位标签卡状态信息
tag
.
setPoint
(
locationLog
.
getPoint
());
tag
.
setVolt
(
locationLog
.
getVolt
());
tag
.
setVoltUnit
(
locationLog
.
getVoltUnit
());
tag
.
setSilent
(
locationLog
.
getSilent
());
locationTagRepository
.
save
(
tag
);
// WebSocket 推送定位消息
// 消息内容需要确定 TODO
simpMessagingTemplate
.
convertAndSend
(
"/topic/position"
,
"{}"
);
// TODO
// 判断围栏告警是否触发,触发写入告警记录,并推送消息
}
/**
* 处理低电量报警消息
* @param data 消息内容
*/
public
void
processLowPowerMessage
(
JSONObject
data
)
{
// TODO
log
.
info
(
"LowPower Message: {}"
,
data
);
}
/**
* 处理设备状态更新消息
* @param data 消息内容
*/
public
void
processDeviceStatusMessage
(
JSONObject
data
)
{
// TODO
log
.
info
(
"DeviceStatus Message: {}"
,
data
);
}
/**
* 处理按键报警消息
* @param data 消息内容
*/
public
void
processKeyWarningMessage
(
JSONObject
data
)
{
// TODO
log
.
info
(
"KeyWarning Message: {}"
,
data
);
}
}
app/src/main/java/com/yiring/app/service/rehearsal/RehearsalPlanService.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
rehearsal
;
import
com.yiring.app.param.rehearsal.RehearsalPlanAddParam
;
import
com.yiring.app.param.rehearsal.RehearsalPlanConditionParam
;
import
com.yiring.app.param.rehearsal.RehearsalPlanModifyParam
;
import
com.yiring.app.param.rehearsal.RehearsalPlanPlaybackParam
;
import
com.yiring.app.vo.rehearsal.RehearsalPlanRealTimeVo
;
import
com.yiring.app.vo.rehearsal.RehearsalPlanVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
/**
* @author tml
* @version 1.0
* @date 2022/5/10 14:18
*/
public
interface
RehearsalPlanService
{
/**
* 添加一条演练计划
* @param param 演练计划信息
* @return 是否成功
*/
Result
<
String
>
addOne
(
RehearsalPlanAddParam
param
);
/**
* 修改一条演练计划
* @param param 演练计划信息
* @return 是否成功
*/
Result
<
String
>
modifyOne
(
RehearsalPlanModifyParam
param
);
/**
* 删除一条演练计划
* @param idParam 演练计划id
* @return 是否成功
*/
Result
<
String
>
removeOne
(
IdParam
idParam
);
/**
* 查询一条演练计划信息
* @param idParam 演练计划id
* @return 演练计划信息
*/
Result
<
RehearsalPlanVo
>
findOne
(
IdParam
idParam
);
/**
* 查询演练计划列表
* @param conditionParam 条件参数
* @param pageParam 分页参数
* @return 演练计划列表
*/
Result
<
PageVo
<
RehearsalPlanVo
>>
findList
(
RehearsalPlanConditionParam
conditionParam
,
PageParam
pageParam
);
/**
* 导出演练计划
* @param conditionParam 条件参数
* @param response response
*/
void
export
(
RehearsalPlanConditionParam
conditionParam
,
HttpServletResponse
response
);
/**
* 启动一个演练计划
* @param idParam 演练计划id
* @return 是否成功
*/
Result
<
String
>
start
(
IdParam
idParam
);
/**
* 停止一个演练计划
* @param idParam 演练计划id
* @return 是否成功
*/
Result
<
String
>
stop
(
IdParam
idParam
);
/**
* 查看演练(实时)
* @param idParam 演练计划id
* @return 实时信息
*/
Result
<
RehearsalPlanRealTimeVo
>
findRealTime
(
IdParam
idParam
);
/**
* 查看回放
* @param param 演练计划id和时间
* @return 回放信息
*/
Result
<
PageVo
<
RehearsalPlanRealTimeVo
>>
findPlayback
(
RehearsalPlanPlaybackParam
param
);
}
app/src/main/java/com/yiring/app/service/rehearsal/impl/AccidentSpotServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -75,7 +75,7 @@ public class AccidentSpotServiceImpl implements AccidentSpotService {
}
accidentSpot
=
optional
.
get
();
}
JpaUtil
.
copyNotNullProperties
(
param
,
accidentSpot
);
JpaUtil
.
copyNotNullProperties
(
param
.
transform
()
,
accidentSpot
);
return
Result
.
ok
();
}
...
...
app/src/main/java/com/yiring/app/service/rehearsal/impl/RehearsalPlanServiceImpl.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/service/user/impl/UserAppServiceImpl.java
浏览文件 @
b84b587a
...
...
@@ -434,12 +434,6 @@ public class UserAppServiceImpl implements UserAppService {
.
filter
(
userImportExcel
->
userRepository
.
count
(
Example
.
of
(
User
.
builder
().
uuid
(
userImportExcel
.
getUuid
()).
build
()))
==
0
)
.
filter
(
userImportExcel
->
locationTagRepository
.
count
(
Example
.
of
(
LocationTag
.
builder
().
code
(
userImportExcel
.
getCode
()).
used
(
true
).
build
())
)
==
0
)
.
collect
(
Collectors
.
toList
());
userImportExcels
.
forEach
(
userImportExcel
->
{
...
...
@@ -475,14 +469,11 @@ public class UserAppServiceImpl implements UserAppService {
Object
id
=
JSONUtil
.
parseObj
(
records
.
get
(
0
)).
get
(
"id"
);
Post
post
=
postMap
.
get
(
userImportExcel
.
getPostName
()).
get
(
0
);
user
.
setLinkId
(
Convert
.
toLong
(
id
));
user
.
setDepartment
(
department
);
user
.
setPost
(
post
);
User
saveUser
=
userRepository
.
save
(
user
);
if
(
StrUtil
.
isNotEmpty
(
userImportExcel
.
getCode
()))
{
LocationTag
locationTag
=
LocationTag
.
builder
().
code
(
userImportExcel
.
getCode
()).
user
(
saveUser
).
build
();
locationTagRepository
.
save
(
locationTag
);
}
userRepository
.
save
(
user
);
});
return
Result
.
ok
();
...
...
app/src/main/java/com/yiring/app/util/GeoUtils.java
浏览文件 @
b84b587a
...
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.yiring.app.util.zy.LonLatUtil
;
import
lombok.experimental.UtilityClass
;
import
org.locationtech.jts.geom.Coordinate
;
import
org.locationtech.jts.geom.Geometry
;
import
org.locationtech.jts.geom.GeometryFactory
;
import
org.locationtech.jts.geom.Point
;
...
...
@@ -22,6 +23,8 @@ public class GeoUtils {
public
final
GeometryFactory
factory
=
new
GeometryFactory
();
public
final
int
DEFAULT_SRID
=
4326
;
/**
* 创建点
*
...
...
@@ -30,7 +33,7 @@ public class GeoUtils {
* @return 点
*/
public
Point
createPoint
(
double
lon
,
double
lat
)
{
return
factory
.
createPoint
(
new
Coordinate
(
lon
,
lat
)
);
return
createPoint
(
lon
,
lat
,
0
);
}
/**
...
...
@@ -41,7 +44,9 @@ public class GeoUtils {
* @return 点
*/
public
Point
createPoint
(
double
lon
,
double
lat
,
double
alt
)
{
return
factory
.
createPoint
(
new
Coordinate
(
lon
,
lat
,
alt
));
Point
point
=
factory
.
createPoint
(
new
Coordinate
(
lon
,
lat
,
alt
));
point
.
setSRID
(
DEFAULT_SRID
);
return
point
;
}
/**
...
...
@@ -70,13 +75,12 @@ public class GeoUtils {
y
);
// 构建
经纬度坐标信息
Coordinate
coordinate
=
new
Coordinate
(
// 构建
一个坐标点
return
createPoint
(
result
.
getDoubleValue
(
"lon"
),
result
.
getDoubleValue
(
"lat"
),
r
oo
t
.
getDoubleValue
(
"altitude"
)
+
z
r
esul
t
.
getDoubleValue
(
"altitude"
)
+
z
);
return
factory
.
createPoint
(
coordinate
);
}
/**
...
...
@@ -110,6 +114,17 @@ public class GeoUtils {
public
Point
randomPoint
(
double
minX
,
double
minY
,
double
maxX
,
double
maxY
,
double
z
)
{
double
x
=
minX
+
(
maxX
-
minX
)
*
Math
.
random
();
double
y
=
minY
+
(
maxY
-
minY
)
*
Math
.
random
();
return
factory
.
createPoint
(
new
Coordinate
(
x
,
y
,
z
));
return
createPoint
(
x
,
y
,
z
);
}
/**
* 将一个空间信息向外扩张
* @param geometry 空间信息
* @param length 扩张长度(米)
* @return 扩张后的空间信息
*/
public
static
Geometry
expandGeometry
(
Geometry
geometry
,
Integer
length
)
{
double
degree
=
length
/
(
2
*
Math
.
PI
*
6371004
)
*
360
;
return
geometry
.
buffer
(
degree
);
}
}
app/src/main/java/com/yiring/app/util/ZipUtils.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
util
;
import
java.io.*
;
import
java.nio.file.*
;
import
java.nio.file.attribute.BasicFileAttributes
;
import
java.util.LinkedList
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipFile
;
import
java.util.zip.ZipInputStream
;
import
java.util.zip.ZipOutputStream
;
public
class
ZipUtils
{
/**
* 解压文件
* @param file 压缩文件
* @param targetDir 解压文件输出的目录
* @throws IOException IOException
*/
public
static
void
unPacket
(
Path
file
,
Path
targetDir
)
throws
IOException
{
if
(!
Files
.
exists
(
targetDir
))
{
Files
.
createDirectories
(
targetDir
);
}
// 创建zip对象
try
(
ZipFile
zipFile
=
new
ZipFile
(
file
.
toFile
()))
{
// 读取zip流
try
(
ZipInputStream
zipInputStream
=
new
ZipInputStream
(
Files
.
newInputStream
(
file
)))
{
ZipEntry
zipEntry
;
// 遍历每一个zip项
while
((
zipEntry
=
zipInputStream
.
getNextEntry
())
!=
null
)
{
// 获取zip项目名称
String
entryName
=
zipEntry
.
getName
();
// 构建绝对路径
Path
entryFile
=
targetDir
.
resolve
(
entryName
);
if
(
zipEntry
.
isDirectory
())
{
// 文件夹
if
(!
Files
.
isDirectory
(
entryFile
))
{
Files
.
createDirectories
(
entryFile
);
}
}
else
{
// 文件
// 读取zip项数据流
try
(
InputStream
zipEntryInputStream
=
zipFile
.
getInputStream
(
zipEntry
))
{
try
(
OutputStream
fileOutputStream
=
Files
.
newOutputStream
(
entryFile
,
StandardOpenOption
.
CREATE_NEW
)
)
{
byte
[]
buffer
=
new
byte
[
4096
];
int
length
;
while
((
length
=
zipEntryInputStream
.
read
(
buffer
))
!=
-
1
)
{
fileOutputStream
.
write
(
buffer
,
0
,
length
);
}
fileOutputStream
.
flush
();
}
}
}
}
}
}
}
/**
* 压缩指定的文件
* @param files Path[]
* @param zipFile Path
* @throws IOException IOException
*/
public
static
void
packet
(
Path
[]
files
,
Path
zipFile
)
throws
IOException
{
OutputStream
outputStream
=
Files
.
newOutputStream
(
zipFile
,
StandardOpenOption
.
CREATE_NEW
);
try
(
outputStream
;
ZipOutputStream
zipOutputStream
=
new
ZipOutputStream
(
outputStream
))
{
for
(
Path
file
:
files
)
{
if
(
Files
.
isDirectory
(
file
))
{
continue
;
}
try
(
InputStream
inputStream
=
Files
.
newInputStream
(
file
))
{
// 创建一个压缩项,指定名称
ZipEntry
zipEntry
=
new
ZipEntry
(
file
.
getFileName
().
toString
());
// 添加到压缩流
zipOutputStream
.
putNextEntry
(
zipEntry
);
// 写入数据
int
len
;
byte
[]
buffer
=
new
byte
[
1024
*
10
];
while
((
len
=
inputStream
.
read
(
buffer
))
>
0
)
{
zipOutputStream
.
write
(
buffer
,
0
,
len
);
}
zipOutputStream
.
flush
();
}
}
// 完成所有压缩项的添加
zipOutputStream
.
closeEntry
();
}
}
/**
* 压缩指定的文件
* @param files Map<String, File>
* @param outputStream OutputStream
*/
public
static
void
packet
(
Map
<
String
,
File
>
files
,
OutputStream
outputStream
)
{
try
(
outputStream
;
ZipOutputStream
zipOutputStream
=
new
ZipOutputStream
(
outputStream
))
{
for
(
Map
.
Entry
<
String
,
File
>
file
:
files
.
entrySet
())
{
String
fileName
=
file
.
getKey
();
File
fileValue
=
file
.
getValue
();
try
(
InputStream
inputStream
=
new
BufferedInputStream
(
new
FileInputStream
(
fileValue
)))
{
// 创建一个压缩项,指定名称
ZipEntry
zipEntry
=
new
ZipEntry
(
fileName
);
// 添加到压缩流
zipOutputStream
.
putNextEntry
(
zipEntry
);
// 写入数据
int
len
;
byte
[]
buffer
=
new
byte
[
1024
*
10
];
while
((
len
=
inputStream
.
read
(
buffer
))
>
0
)
{
zipOutputStream
.
write
(
buffer
,
0
,
len
);
}
zipOutputStream
.
flush
();
}
}
// 完成所有压缩项的添加
zipOutputStream
.
closeEntry
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
/**
* 压缩指定的目录
* @param folder Path
* @param zipFile Path
* @throws IOException IOException
*/
public
static
void
packet
(
Path
folder
,
Path
zipFile
)
throws
IOException
{
if
(!
Files
.
isDirectory
(
folder
))
{
throw
new
IllegalArgumentException
(
folder
+
" 不是合法的文件夹"
);
}
OutputStream
outputStream
=
Files
.
newOutputStream
(
zipFile
,
StandardOpenOption
.
CREATE_NEW
);
LinkedList
<
String
>
path
=
new
LinkedList
<>();
try
(
outputStream
;
ZipOutputStream
zipOutputStream
=
new
ZipOutputStream
(
outputStream
))
{
Files
.
walkFileTree
(
folder
,
new
FileVisitor
<>()
{
@Override
public
FileVisitResult
preVisitDirectory
(
Path
dir
,
BasicFileAttributes
attrs
)
{
if
(!
dir
.
equals
(
folder
))
{
// 开始遍历目录
String
folder
=
dir
.
getFileName
().
toString
();
path
.
addLast
(
folder
);
// 写入目录
ZipEntry
zipEntry
=
new
ZipEntry
(
path
.
stream
().
collect
(
Collectors
.
joining
(
"/"
,
""
,
"/"
)));
try
{
zipOutputStream
.
putNextEntry
(
zipEntry
);
zipOutputStream
.
flush
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
return
FileVisitResult
.
CONTINUE
;
}
@Override
public
FileVisitResult
visitFile
(
Path
file
,
BasicFileAttributes
attrs
)
{
// 开始遍历文件
try
(
InputStream
inputStream
=
Files
.
newInputStream
(
file
))
{
// 创建一个压缩项,指定名称
String
fileName
=
path
.
size
()
>
0
?
path
.
stream
().
collect
(
Collectors
.
joining
(
"/"
,
""
,
""
))
+
"/"
+
file
.
getFileName
().
toString
()
:
file
.
getFileName
().
toString
();
ZipEntry
zipEntry
=
new
ZipEntry
(
fileName
);
// 添加到压缩流
zipOutputStream
.
putNextEntry
(
zipEntry
);
// 写入数据
int
len
;
byte
[]
buffer
=
new
byte
[
1024
*
10
];
while
((
len
=
inputStream
.
read
(
buffer
))
>
0
)
{
zipOutputStream
.
write
(
buffer
,
0
,
len
);
}
zipOutputStream
.
flush
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
FileVisitResult
.
CONTINUE
;
}
@Override
public
FileVisitResult
visitFileFailed
(
Path
file
,
IOException
exc
)
{
return
FileVisitResult
.
CONTINUE
;
}
@Override
public
FileVisitResult
postVisitDirectory
(
Path
dir
,
IOException
exc
)
{
// 结束遍历目录
if
(!
path
.
isEmpty
())
{
path
.
removeLast
();
}
return
FileVisitResult
.
CONTINUE
;
}
}
);
zipOutputStream
.
closeEntry
();
}
}
}
app/src/main/java/com/yiring/app/util/zy/LonLatUtil.java
浏览文件 @
b84b587a
...
...
@@ -4,6 +4,7 @@ package com.yiring.app.util.zy;
import
com.alibaba.fastjson.JSONObject
;
/**
* 从真源拿到的引擎计算经纬度的工具类
* @author Jim
* @version 0.1
* 2022/5/9 16:41
...
...
@@ -16,8 +17,8 @@ public class LonLatUtil {
public
static
JSONObject
getRoot
()
{
JSONObject
root
=
new
JSONObject
();
root
.
put
(
"lon"
,
0
D
);
root
.
put
(
"lat"
,
0
D
);
root
.
put
(
"lon"
,
112.85893346021206
);
root
.
put
(
"lat"
,
30.473384230484854
);
root
.
put
(
"x"
,
0
D
);
root
.
put
(
"y"
,
0
D
);
root
.
put
(
"altitude"
,
0
D
);
...
...
app/src/main/java/com/yiring/app/vo/CodeNameVo.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
...
...
@@ -27,6 +29,7 @@ public class CodeNameVo implements Serializable {
private
static
final
long
serialVersionUID
=
-
7565315836652536620L
;
@ApiModelProperty
(
value
=
"code"
,
example
=
"1"
,
required
=
true
)
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
private
Integer
code
;
@ApiModelProperty
(
value
=
"name"
,
example
=
"名称"
,
required
=
true
)
...
...
app/src/main/java/com/yiring/app/vo/IdNameVo.java
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
...
...
@@ -25,6 +27,7 @@ public class IdNameVo implements Serializable {
@Serial
private
static
final
long
serialVersionUID
=
-
8990274383112436122L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
private
Long
id
;
...
...
app/src/main/java/com/yiring/app/vo/alarm/AlarmTypeVo.java
浏览文件 @
b84b587a
...
...
@@ -20,7 +20,7 @@ import lombok.NoArgsConstructor;
* @version 1.0
* @date 2022/4/27 11:55
*/
@ApiModel
(
"
AlarmTypeVo(报警信息)
"
)
@ApiModel
(
"
报警信息
"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/vo/analysis/history/HistoryRouteVo.java
浏览文件 @
b84b587a
...
...
@@ -14,13 +14,14 @@ import lombok.NoArgsConstructor;
import
org.locationtech.jts.geom.Point
;
/**
* 历史轨迹信息VO
* @author tml
* @version 1.0
* @date 2022/5/6 14:18
*/
@Data
@Builder
@ApiModel
(
"
历史轨迹信息VO
"
)
@ApiModel
(
"
HistoryRouteVo
"
)
@NoArgsConstructor
@AllArgsConstructor
public
class
HistoryRouteVo
implements
Serializable
{
...
...
app/src/main/java/com/yiring/app/vo/district/DistrictVo.java
浏览文件 @
b84b587a
...
...
@@ -19,7 +19,7 @@ import lombok.NoArgsConstructor;
* @version 1.0
* @date 2022/4/27 9:10
*/
@ApiModel
(
"DistrictVo
(区域信息)
"
)
@ApiModel
(
"DistrictVo"
)
@Data
@Builder
@NoArgsConstructor
...
...
app/src/main/java/com/yiring/app/vo/key/KeyAlarmLogVo.java
0 → 100644
浏览文件 @
b84b587a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
key
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.key.KeyAlarmLog
;
import
com.yiring.app.vo.user.UserVo
;
import
com.yiring.auth.domain.user.User
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 按键报警推送
*
* @author LJ-2204
* @date 2022/5/13
*/
@ApiModel
(
"KeyAlarmLogVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmLogVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
9135155632502530938L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"主键"
,
example
=
"111"
)
Long
id
;
@ApiModelProperty
(
value
=
"用户"
,
example
=
"111"
)
UserVo
userVo
;
@ApiModelProperty
(
value
=
"通知方式"
,
example
=
"SMS/APP"
)
String
type
;
@ApiModelProperty
(
value
=
"接收状态"
,
example
=
"T/F"
)
Boolean
status
;
@ApiModelProperty
(
value
=
"接收时间"
,
example
=
"2011-11-11 22:22:22"
)
LocalDateTime
updateTime
;
public
static
KeyAlarmLogVo
transform
(
KeyAlarmLog
keyAlarmLog
)
{
KeyAlarmLogVo
keyAlarmLogVo
=
KeyAlarmLogVo
.
builder
()
.
id
(
keyAlarmLog
.
getId
())
.
type
(
keyAlarmLog
.
getTypes
())
.
status
(
keyAlarmLog
.
getStatus
())
.
updateTime
(
keyAlarmLog
.
getUpdateTime
())
.
build
();
if
(
ObjectUtil
.
isNotEmpty
(
keyAlarmLog
.
getUser
()))
{
User
user
=
keyAlarmLog
.
getUser
();
keyAlarmLogVo
.
setUserVo
(
UserVo
.
builder
().
id
(
user
.
getId
()).
realName
(
user
.
getRealName
()).
mobile
(
user
.
getMobile
()).
build
()
);
}
return
keyAlarmLogVo
;
}
}
app/src/main/java/com/yiring/app/vo/key/KeyAlarmRule
s
Vo.java
→
app/src/main/java/com/yiring/app/vo/key/KeyAlarmRuleVo.java
浏览文件 @
b84b587a
...
...
@@ -3,7 +3,7 @@ package com.yiring.app.vo.key;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.key.KeyAlarmRule
s
;
import
com.yiring.app.domain.key.KeyAlarmRule
;
import
com.yiring.app.vo.user.UserInfoVo
;
import
com.yiring.auth.domain.user.User
;
import
io.swagger.annotations.ApiModel
;
...
...
@@ -23,13 +23,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/5/7
*/
@ApiModel
(
"KeyAlarmRule
s
Vo"
)
@ApiModel
(
"KeyAlarmRuleVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
KeyAlarmRule
s
Vo
implements
Serializable
{
public
class
KeyAlarmRuleVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5083435104462641333L
;
...
...
@@ -51,17 +51,17 @@ public class KeyAlarmRulesVo implements Serializable {
@ApiModelProperty
(
value
=
"推送类型"
,
example
=
"111"
)
String
[]
types
;
public
static
KeyAlarmRule
sVo
transform
(
KeyAlarmRules
keyAlarmRules
)
{
Set
<
User
>
users
=
keyAlarmRule
s
.
getUsers
();
public
static
KeyAlarmRule
Vo
transform
(
KeyAlarmRule
keyAlarmRule
)
{
Set
<
User
>
users
=
keyAlarmRule
.
getUsers
();
List
<
UserInfoVo
>
userInfoVos
=
users
.
stream
().
map
(
UserInfoVo:
:
transform
).
collect
(
Collectors
.
toList
());
return
KeyAlarmRule
s
Vo
return
KeyAlarmRuleVo
.
builder
()
.
id
(
keyAlarmRule
s
.
getId
())
.
deptId
(
keyAlarmRule
s
.
getDepartment
().
getId
())
.
deptName
(
keyAlarmRule
s
.
getDepartment
().
getName
())
.
id
(
keyAlarmRule
.
getId
())
.
deptId
(
keyAlarmRule
.
getDepartment
().
getId
())
.
deptName
(
keyAlarmRule
.
getDepartment
().
getName
())
.
users
(
userInfoVos
)
.
types
(
keyAlarmRule
s
.
getTypes
().
split
(
","
))
.
types
(
keyAlarmRule
.
getTypes
().
split
(
","
))
.
build
();
}
}
app/src/main/java/com/yiring/app/vo/location/fence/LocationFenceVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/location/rule/LocationAlarmRuleVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/location/rule/LocationFenceRuleVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/location/rule/RuleVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/rehearsal/AccidentSpotVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/rehearsal/EvacuationZoneVo.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/rehearsal/RehearsalPlanRealTimeVo.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/rehearsal/RehearsalPlanVo.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/rehearsal/UserLocationVo.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/
Hello
Controller.java
→
app/src/main/java/com/yiring/app/web/
Example
Controller.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/alarm/AlarmTypeController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/analysis/history/HistoryRouteController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/appUser/AppletUserController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/broadcast/BroadcastAudioController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/broadcast/BroadcastController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/dept/DepartmentController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/dict/DictController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/dict/DictTypeController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/district/DistrictController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/icon/IconController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/key/KeyAlarmController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/key/KeyAlarmLogController.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/key/KeyAlarmRule
s
Controller.java
→
app/src/main/java/com/yiring/app/web/key/KeyAlarmRuleController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/beacon/LocationBeaconController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/fence/LocationFenceController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/rule/LocationAlarmRuleController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/rule/LocationFenceRuleController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/tag/LocationTagController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/location/tag/LocationTagTypeController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/map/MapController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/perstatistics/PersonnelStatisticsController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/post/PostController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/rehearsal/AccidentSpotController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/rehearsal/EvacuationZoneController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/rehearsal/RehearsalPlanController.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/user/UserAppController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/video/VideoController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/visitor/CarController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/web/visitor/VisitorController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
app/src/main/resources/application-dev.yml
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/build.gradle
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/service/user/UserService.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/service/user/impl/UserServiceImpl.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/web/auth/AuthController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/web/permission/PermissionController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/web/role/RoleController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-auth/src/main/java/com/yiring/auth/web/user/UserController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-common/minio/build.gradle
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-common/minio/src/main/java/com/yiring/common/web/MinioController.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-common/util/src/main/java/com/yiring/common/aspect/TimesAspect.java
浏览文件 @
b84b587a
差异被折叠。
点击展开。
basic-common/util/src/main/java/com/yiring/common/aspect/XxlJobAspect.java
0 → 100644
浏览文件 @
b84b587a
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论