Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
c2d0aaa0
提交
c2d0aaa0
authored
5月 20, 2022
作者:
涂茂林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:实时围栏信息和实时报警信息
上级
75f817ae
显示空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
665 行增加
和
47 行删除
+665
-47
LocationFence.java
...in/java/com/yiring/app/domain/location/LocationFence.java
+6
-0
LocationFenceAlarm.java
...va/com/yiring/app/domain/location/LocationFenceAlarm.java
+25
-0
LocationFenceRepository.java
...m/yiring/app/domain/location/LocationFenceRepository.java
+17
-0
DistrictRealtimeConditionParam.java
...ng/app/param/district/DistrictRealtimeConditionParam.java
+2
-2
FenceAlarmLogParam.java
...m/yiring/app/param/location/fence/FenceAlarmLogParam.java
+35
-0
FenceRealtimeConditionParam.java
...app/param/location/fence/FenceRealtimeConditionParam.java
+30
-0
DistrictService.java
...java/com/yiring/app/service/district/DistrictService.java
+11
-3
DistrictServiceImpl.java
...yiring/app/service/district/impl/DistrictServiceImpl.java
+24
-7
FenceAlarmService.java
.../yiring/app/service/location/fence/FenceAlarmService.java
+24
-0
LocationFenceService.java
...ring/app/service/location/fence/LocationFenceService.java
+27
-1
FenceAlarmServiceImpl.java
...pp/service/location/fence/impl/FenceAlarmServiceImpl.java
+97
-3
LocationFenceServiceImpl.java
...service/location/fence/impl/LocationFenceServiceImpl.java
+38
-0
DistrictDetailsVo.java
...in/java/com/yiring/app/vo/district/DistrictDetailsVo.java
+55
-0
DistrictUserVo.java
.../main/java/com/yiring/app/vo/district/DistrictUserVo.java
+4
-21
FenceAlarmLogVo.java
...ava/com/yiring/app/vo/location/fence/FenceAlarmLogVo.java
+58
-0
FenceAlarmRealtimeVo.java
...om/yiring/app/vo/location/fence/FenceAlarmRealtimeVo.java
+58
-0
FenceRealtimeVo.java
...ava/com/yiring/app/vo/location/fence/FenceRealtimeVo.java
+67
-0
DistrictController.java
.../java/com/yiring/app/web/district/DistrictController.java
+12
-5
FenceAlarmController.java
...m/yiring/app/web/location/fence/FenceAlarmController.java
+30
-0
LocationFenceController.java
...iring/app/web/location/fence/LocationFenceController.java
+45
-5
没有找到文件。
app/src/main/java/com/yiring/app/domain/location/LocationFence.java
浏览文件 @
c2d0aaa0
...
...
@@ -93,6 +93,12 @@ public class LocationFence extends BasicEntity implements Serializable {
@Builder
.
Default
@ManyToMany
(
fetch
=
FetchType
.
LAZY
)
Set
<
LocationTag
>
tags
=
new
HashSet
<>(
0
);
@ToString
.
Exclude
@Comment
(
"围栏中的报警记录集合"
)
@Builder
.
Default
@OneToMany
(
mappedBy
=
"fence"
)
Set
<
LocationFenceAlarm
>
fenceAlarms
=
new
HashSet
<>(
0
);
/*@SuppressWarnings({ "unused" })
public enum Mode {
NORMAL("常规区域"),
...
...
app/src/main/java/com/yiring/app/domain/location/LocationFenceAlarm.java
浏览文件 @
c2d0aaa0
...
...
@@ -9,6 +9,7 @@ import java.io.Serializable;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
...
...
@@ -97,4 +98,28 @@ public class LocationFenceAlarm extends BasicEntity implements Serializable {
return
flag
?
ING
:
OVER
;
}
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
LocationFenceAlarm
that
=
(
LocationFenceAlarm
)
o
;
return
(
Objects
.
equals
(
fence
,
that
.
fence
)
&&
Objects
.
equals
(
point
,
that
.
point
)
&&
Objects
.
equals
(
areaId
,
that
.
areaId
)
&&
Objects
.
equals
(
user
,
that
.
user
)
&&
Objects
.
equals
(
tag
,
that
.
tag
)
&&
Objects
.
equals
(
startTime
,
that
.
startTime
)
&&
Objects
.
equals
(
endTime
,
that
.
endTime
)
&&
Objects
.
equals
(
type
,
that
.
type
)
&&
status
==
that
.
status
&&
Objects
.
equals
(
pushLogs
,
that
.
pushLogs
)
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
fence
,
point
,
areaId
,
user
,
tag
,
startTime
,
endTime
,
type
,
status
,
pushLogs
);
}
}
app/src/main/java/com/yiring/app/domain/location/LocationFenceRepository.java
浏览文件 @
c2d0aaa0
...
...
@@ -2,11 +2,15 @@
package
com
.
yiring
.
app
.
domain
.
location
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Set
;
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.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
/**
...
...
@@ -58,4 +62,17 @@ public interface LocationFenceRepository
nativeQuery
=
true
)
List
<
LocationFence
>
findByGeometryContains
(
Long
areaId
,
Geometry
geometry
);
/**
* 批量启用或停用围栏
* @param ids 围栏id集
* @param enable true:启用 false:停用
* @param now 当前时间
* @return 修改了几条
*/
@Query
(
value
=
"UPDATE LocationFence set enable = :enable, updateTime = :now WHERE id IN (:ids) AND deleted = false "
)
@Modifying
int
batchEnable
(
@Param
(
"ids"
)
Set
<
Long
>
ids
,
@Param
(
"enable"
)
boolean
enable
,
@Param
(
"now"
)
LocalDateTime
now
);
}
app/src/main/java/com/yiring/app/param/district/DistrictConditionParam.java
→
app/src/main/java/com/yiring/app/param/district/District
Realtime
ConditionParam.java
浏览文件 @
c2d0aaa0
...
...
@@ -15,12 +15,12 @@ import lombok.NoArgsConstructor;
* @version 1.0
* @date 2022/5/19 15:57
*/
@ApiModel
(
"区域查询条件"
)
@ApiModel
(
"
实时
区域查询条件"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
DistrictConditionParam
implements
Serializable
{
public
class
District
Realtime
ConditionParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5749083087928117992L
;
...
...
app/src/main/java/com/yiring/app/param/location/fence/FenceAlarmLogParam.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
fence
;
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.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/20 9:44
*/
@ApiModel
(
"实时报警记录"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
FenceAlarmLogParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3164664481416232633L
;
@ApiModelProperty
(
value
=
"开始时间"
,
example
=
"2022-05-01 00:00:00"
,
required
=
true
)
@NotNull
(
message
=
"开始时间不能为空"
)
private
LocalDateTime
beginTime
;
@ApiModelProperty
(
value
=
"结束时间"
,
example
=
"2022-10-30 00:00:00"
,
required
=
true
)
@NotNull
(
message
=
"结束时间不能为空"
)
private
LocalDateTime
endTime
;
}
app/src/main/java/com/yiring/app/param/location/fence/FenceRealtimeConditionParam.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
fence
;
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.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/19 17:26
*/
@ApiModel
(
"实时围栏信息查询条件"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
FenceRealtimeConditionParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
8094425977297009035L
;
@ApiModelProperty
(
value
=
"地图id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"地图id不能为空"
)
private
Integer
mapId
;
}
app/src/main/java/com/yiring/app/service/district/DistrictService.java
浏览文件 @
c2d0aaa0
...
...
@@ -2,8 +2,9 @@
package
com
.
yiring
.
app
.
service
.
district
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictConditionParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.app.param.district.DistrictRealtimeConditionParam
;
import
com.yiring.app.vo.district.DistrictDetailsVo
;
import
com.yiring.app.vo.district.DistrictUserVo
;
import
com.yiring.app.vo.district.DistrictVo
;
import
com.yiring.common.core.Result
;
...
...
@@ -46,9 +47,16 @@ public interface DistrictService {
Result
<
PageVo
<
DistrictVo
>>
findByNameLike
(
String
name
);
/**
* 查询实时
围栏
列表信息
* 查询实时
区域
列表信息
* @param param 条件
* @return 区域列表
*/
Result
<
PageVo
<
DistrictUserVo
>>
findList
(
DistrictConditionParam
param
);
Result
<
PageVo
<
DistrictDetailsVo
>>
findRealtimeList
(
DistrictRealtimeConditionParam
param
);
/**
* 查询区域内员工数量
* @param param 条件
* @return 区域列表
*/
Result
<
PageVo
<
DistrictUserVo
>>
findDistrictUser
(
DistrictRealtimeConditionParam
param
);
}
app/src/main/java/com/yiring/app/service/district/impl/DistrictServiceImpl.java
浏览文件 @
c2d0aaa0
...
...
@@ -4,10 +4,11 @@ package com.yiring.app.service.district.impl;
import
com.yiring.app.domain.district.District
;
import
com.yiring.app.domain.district.DistrictRepository
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictConditionParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.app.param.district.DistrictRealtimeConditionParam
;
import
com.yiring.app.service.district.DistrictService
;
import
com.yiring.app.util.JpaUtil
;
import
com.yiring.app.vo.district.DistrictDetailsVo
;
import
com.yiring.app.vo.district.DistrictUserVo
;
import
com.yiring.app.vo.district.DistrictVo
;
import
com.yiring.common.core.Result
;
...
...
@@ -98,8 +99,28 @@ public class DistrictServiceImpl implements DistrictService {
}
@Override
public
Result
<
PageVo
<
DistrictUserVo
>>
findList
(
DistrictConditionParam
param
)
{
Specification
<
District
>
specification
=
(
root
,
query
,
criteriaBuilder
)
->
{
public
Result
<
PageVo
<
DistrictDetailsVo
>>
findRealtimeList
(
DistrictRealtimeConditionParam
param
)
{
Specification
<
District
>
specification
=
getSpecification
(
param
);
List
<
District
>
districtList
=
districtRepository
.
findAll
(
specification
);
List
<
DistrictDetailsVo
>
voList
=
districtList
.
stream
()
.
map
(
DistrictDetailsVo:
:
transform
)
.
collect
(
Collectors
.
toList
());
PageVo
<
DistrictDetailsVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
@Override
public
Result
<
PageVo
<
DistrictUserVo
>>
findDistrictUser
(
DistrictRealtimeConditionParam
param
)
{
Specification
<
District
>
specification
=
getSpecification
(
param
);
List
<
District
>
districtList
=
districtRepository
.
findAll
(
specification
);
List
<
DistrictUserVo
>
voList
=
districtList
.
stream
().
map
(
DistrictUserVo:
:
transform
).
collect
(
Collectors
.
toList
());
PageVo
<
DistrictUserVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
private
Specification
<
District
>
getSpecification
(
DistrictRealtimeConditionParam
param
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
ArrayList
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
param
.
getMapId
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
District
.
Fields
.
mapId
),
param
.
getMapId
()));
...
...
@@ -107,9 +128,5 @@ public class DistrictServiceImpl implements DistrictService {
Predicate
[]
array
=
list
.
toArray
(
new
Predicate
[
0
]);
return
criteriaBuilder
.
and
(
array
);
};
List
<
District
>
districtList
=
districtRepository
.
findAll
(
specification
);
List
<
DistrictUserVo
>
voList
=
districtList
.
stream
().
map
(
DistrictUserVo:
:
transform
).
collect
(
Collectors
.
toList
());
PageVo
<
DistrictUserVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
}
app/src/main/java/com/yiring/app/service/location/fence/FenceAlarmService.java
浏览文件 @
c2d0aaa0
...
...
@@ -3,13 +3,19 @@ package com.yiring.app.service.location.fence;
import
com.yiring.app.domain.location.LocationFenceAlarm
;
import
com.yiring.app.param.location.fence.FenceAlarmConditionParam
;
import
com.yiring.app.param.location.fence.FenceAlarmLogParam
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.vo.IdNameVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmLogVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmRealtimeVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmVo
;
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.List
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
/**
* @author tml
...
...
@@ -34,12 +40,30 @@ public interface FenceAlarmService {
/**
* 导出围栏报警数据
* @param param 查询条件
* @param response response
*/
void
export
(
FenceAlarmConditionParam
param
,
HttpServletResponse
response
);
Result
<
FenceAlarmVo
>
findOne
(
IdParam
idParam
);
/**
* 推送报警信息给前端
* @param newAlarm 新生成的报警信息
*/
void
alarmPushWeb
(
List
<
LocationFenceAlarm
>
newAlarm
);
/**
* 查询报警记录统计
* @param fenceAlarmLogParam 条件
* @return 报警记录统计
*/
Result
<
PageVo
<
FenceAlarmLogVo
>>
findAlarmLog
(
FenceAlarmLogParam
fenceAlarmLogParam
);
/**
* 查询正在报警的报警记录
* @param param 条件
* @param pageParam 分页参数
* @return 报警信息
*/
Result
<
PageVo
<
FenceAlarmRealtimeVo
>>
fenRealtimeList
(
@Valid
FenceRealtimeConditionParam
param
,
PageParam
pageParam
);
}
app/src/main/java/com/yiring/app/service/location/fence/LocationFenceService.java
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
location
.
fence
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceAddParam
;
import
com.yiring.app.param.location.fence.LocationFenceConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceModifyParam
;
import
com.yiring.app.vo.CodeNameVo
;
import
com.yiring.app.vo.location.fence.FenceRealtimeVo
;
import
com.yiring.app.vo.location.fence.LocationFenceSearchVo
;
import
com.yiring.app.vo.location.fence.LocationFenceVo
;
import
com.yiring.auth.param.IdsParam
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
...
...
@@ -53,7 +56,7 @@ public interface LocationFenceService {
* @param param id
* @return 详细信息
*/
Result
<
LocationFenceVo
>
findById
(
@Valid
IdParam
param
);
Result
<
LocationFenceVo
>
findById
(
IdParam
param
);
/**
* 根据名称模糊查询围栏信息
...
...
@@ -67,4 +70,27 @@ public interface LocationFenceService {
* @return 地图下拉框
*/
Result
<
PageVo
<
CodeNameVo
>>
findMapList
();
/**
* 启用或停用一个围栏
* @param idParam 围栏id
* @param enable true:启用 false:停用
* @return 是否成功
*/
Result
<
String
>
enable
(
IdParam
idParam
,
Boolean
enable
);
/**
* 批量启用或停用围栏
* @param idsParam 围栏id集
* @param enable true:启用 false:停用
* @return 是否成功
*/
Result
<
String
>
batchEnable
(
@Valid
IdsParam
idsParam
,
Boolean
enable
);
/**
* 查询实时围栏信息
* @param param 条件
* @return 是否成功
*/
Result
<
PageVo
<
FenceRealtimeVo
>>
fenRealtimeList
(
FenceRealtimeConditionParam
param
);
}
app/src/main/java/com/yiring/app/service/location/fence/impl/FenceAlarmServiceImpl.java
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
location
.
fence
.
impl
;
import
static
com
.
yiring
.
app
.
domain
.
location
.
LocationFenceAlarm
.
Status
.
ING
;
import
static
java
.
util
.
stream
.
Collectors
.
toList
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.constant.alarm.FenceTypeEnum
;
import
com.yiring.app.domain.alarm.AlarmType
;
import
com.yiring.app.domain.location.LocationFence
;
import
com.yiring.app.domain.location.LocationFenceAlarm
;
import
com.yiring.app.domain.location.LocationFenceAlarmRepository
;
import
com.yiring.app.domain.location.LocationFenceRepository
;
import
com.yiring.app.excel.location.fence.FenceAlarmExcel
;
import
com.yiring.app.param.location.fence.FenceAlarmConditionParam
;
import
com.yiring.app.param.location.fence.FenceAlarmLogParam
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.service.location.fence.FenceAlarmService
;
import
com.yiring.app.util.MapUtil
;
import
com.yiring.app.vo.IdNameVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmLogVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmRealtimeVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmVo
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.OutputStream
;
...
...
@@ -23,12 +34,12 @@ import java.net.URLEncoder;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Join
;
import
javax.persistence.criteria.JoinType
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.*
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
...
...
@@ -133,6 +144,16 @@ public class FenceAlarmServiceImpl implements FenceAlarmService {
}
}
@Override
public
Result
<
FenceAlarmVo
>
findOne
(
IdParam
idParam
)
{
Optional
<
LocationFenceAlarm
>
optional
=
locationFenceAlarmRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"报警记录不存在"
);
}
FenceAlarmVo
vo
=
FenceAlarmVo
.
transform
(
optional
.
get
());
return
Result
.
ok
(
vo
);
}
@Async
@Override
public
void
alarmPushWeb
(
List
<
LocationFenceAlarm
>
newAlarm
)
{
...
...
@@ -151,6 +172,79 @@ public class FenceAlarmServiceImpl implements FenceAlarmService {
simpMessagingTemplate
.
convertAndSend
(
"/topic/position"
,
jsonArray
.
toJSONString
());
}
@Override
public
Result
<
PageVo
<
FenceAlarmLogVo
>>
findAlarmLog
(
FenceAlarmLogParam
param
)
{
Specification
<
LocationFenceAlarm
>
specification
=
(
root
,
query
,
criteriaBuilder
)
->
{
ArrayList
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
param
.
getBeginTime
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
greaterThanOrEqualTo
(
root
.
get
(
LocationFenceAlarm
.
Fields
.
startTime
),
param
.
getBeginTime
()
)
);
}
if
(
param
.
getEndTime
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
lessThanOrEqualTo
(
root
.
get
(
LocationFenceAlarm
.
Fields
.
startTime
),
param
.
getEndTime
())
);
}
Predicate
[]
array
=
list
.
toArray
(
new
Predicate
[
0
]);
return
criteriaBuilder
.
and
(
array
);
};
List
<
LocationFenceAlarm
>
alarmList
=
locationFenceAlarmRepository
.
findAll
(
specification
);
Map
<
Integer
,
List
<
LocationFenceAlarm
>>
map
=
alarmList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
e
->
e
.
getFence
().
getFenceType
()));
List
<
FenceAlarmLogVo
>
voList
=
map
.
keySet
()
.
stream
()
.
map
(
e
->
FenceAlarmLogVo
.
builder
()
.
fenceType
(
e
)
.
fenceTypeName
(
FenceTypeEnum
.
getByCode
(
e
))
.
number
(
map
.
get
(
e
).
size
())
.
build
()
)
.
collect
(
toList
());
for
(
FenceAlarmLogVo
item
:
voList
)
{
List
<
LocationFenceAlarm
>
list
=
map
.
get
(
item
.
getFenceType
());
Map
<
AlarmType
,
List
<
LocationFenceAlarm
>>
listMap
=
list
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
LocationFenceAlarm:
:
getType
));
List
<
FenceAlarmLogVo
.
AlarmTypeVo
>
alarmTypeVos
=
listMap
.
keySet
()
.
stream
()
.
map
(
e
->
new
FenceAlarmLogVo
.
AlarmTypeVo
(
e
.
getId
(),
e
.
getName
(),
listMap
.
get
(
e
).
size
()))
.
collect
(
toList
());
item
.
setAlarmTypeVos
(
alarmTypeVos
);
}
PageVo
<
FenceAlarmLogVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
@Override
public
Result
<
PageVo
<
FenceAlarmRealtimeVo
>>
fenRealtimeList
(
FenceRealtimeConditionParam
param
,
PageParam
pageParam
)
{
Pageable
pageable
=
PageParam
.
toPageable
(
pageParam
);
Specification
<
LocationFenceAlarm
>
specification
=
(
root
,
query
,
criteriaBuilder
)
->
{
ArrayList
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
param
.
getMapId
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
LocationFenceAlarm
.
Fields
.
areaId
),
param
.
getMapId
()));
}
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
LocationFenceAlarm
.
Fields
.
status
),
ING
));
Predicate
[]
array
=
list
.
toArray
(
new
Predicate
[
0
]);
return
criteriaBuilder
.
and
(
array
);
};
Page
<
LocationFenceAlarm
>
page
=
locationFenceAlarmRepository
.
findAll
(
specification
,
pageable
);
List
<
FenceAlarmRealtimeVo
>
voList
=
page
.
get
().
map
(
FenceAlarmRealtimeVo:
:
transform
).
collect
(
toList
());
PageVo
<
FenceAlarmRealtimeVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
private
Specification
<
LocationFenceAlarm
>
getSpecification
(
FenceAlarmConditionParam
param
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
ArrayList
<
Predicate
>
list
=
new
ArrayList
<>();
...
...
app/src/main/java/com/yiring/app/service/location/fence/impl/LocationFenceServiceImpl.java
浏览文件 @
c2d0aaa0
...
...
@@ -5,21 +5,25 @@ import com.alibaba.fastjson.JSONArray;
import
com.yiring.app.constant.RedisKey
;
import
com.yiring.app.domain.location.LocationFence
;
import
com.yiring.app.domain.location.LocationFenceRepository
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceAddParam
;
import
com.yiring.app.param.location.fence.LocationFenceConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceModifyParam
;
import
com.yiring.app.service.location.fence.LocationFenceService
;
import
com.yiring.app.util.JpaUtil
;
import
com.yiring.app.vo.CodeNameVo
;
import
com.yiring.app.vo.location.fence.FenceRealtimeVo
;
import
com.yiring.app.vo.location.fence.LocationFenceSearchVo
;
import
com.yiring.app.vo.location.fence.LocationFenceVo
;
import
com.yiring.app.vo.map.MapVo
;
import
com.yiring.auth.param.IdsParam
;
import
com.yiring.common.core.Redis
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
...
...
@@ -150,4 +154,38 @@ public class LocationFenceServiceImpl implements LocationFenceService {
PageVo
<
CodeNameVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
@Override
public
Result
<
String
>
enable
(
IdParam
idParam
,
Boolean
enable
)
{
Optional
<
LocationFence
>
optional
=
locationFenceRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"围栏不存在"
);
}
optional
.
get
().
setEnable
(
enable
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
batchEnable
(
IdsParam
idsParam
,
Boolean
enable
)
{
int
i
=
locationFenceRepository
.
batchEnable
(
idsParam
.
toIds
(),
enable
,
LocalDateTime
.
now
());
String
s
=
enable
?
"启用了"
:
"停用了"
;
return
Result
.
ok
(
s
+
i
+
"个围栏"
);
}
@Override
public
Result
<
PageVo
<
FenceRealtimeVo
>>
fenRealtimeList
(
FenceRealtimeConditionParam
param
)
{
Specification
<
LocationFence
>
specification
=
(
root
,
query
,
criteriaBuilder
)
->
{
ArrayList
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
param
.
getMapId
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
LocationFence
.
Fields
.
mapId
),
param
.
getMapId
()));
}
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
LocationFence
.
Fields
.
enable
),
true
));
Predicate
[]
array
=
list
.
toArray
(
new
Predicate
[
0
]);
return
criteriaBuilder
.
and
(
array
);
};
List
<
LocationFence
>
list
=
locationFenceRepository
.
findAll
(
specification
);
List
<
FenceRealtimeVo
>
voList
=
list
.
stream
().
map
(
FenceRealtimeVo:
:
transform
).
collect
(
Collectors
.
toList
());
PageVo
<
FenceRealtimeVo
>
pageVo
=
PageVo
.
build
(
voList
,
voList
.
size
());
return
Result
.
ok
(
pageVo
);
}
}
app/src/main/java/com/yiring/app/vo/district/DistrictDetailsVo.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
district
;
import
com.yiring.app.domain.district.District
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.locationtech.jts.geom.Geometry
;
/**
* @author tml
* @version 1.0
* @date 2022/5/19 16:02
*/
@ApiModel
(
"区域信息"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
DistrictDetailsVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3900485837172743182L
;
@ApiModelProperty
(
value
=
"区域id"
,
example
=
"1"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"区域名称"
,
example
=
"生产区域"
)
private
String
name
;
@ApiModelProperty
(
value
=
"风险等级(区域颜色)"
,
example
=
"f##0000"
)
private
String
riskGrade
;
@ApiModelProperty
(
value
=
"空间信息"
,
dataType
=
"java.lang.String"
)
private
Geometry
geometry
;
@ApiModelProperty
(
value
=
"地图id"
,
example
=
"1"
)
private
Integer
mapId
;
public
static
DistrictDetailsVo
transform
(
District
district
)
{
return
DistrictDetailsVo
.
builder
()
.
id
(
district
.
getId
())
.
name
(
district
.
getName
())
.
riskGrade
(
district
.
getRiskGrade
())
.
geometry
(
district
.
getGeometry
())
.
mapId
(
builder
().
mapId
)
.
build
();
}
}
app/src/main/java/com/yiring/app/vo/district/DistrictUserVo.java
浏览文件 @
c2d0aaa0
...
...
@@ -10,14 +10,13 @@ import lombok.AllArgsConstructor;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.locationtech.jts.geom.Geometry
;
/**
* @author tml
* @version 1.0
* @date 2022/5/
19 16:02
* @date 2022/5/
20 14:41
*/
@ApiModel
(
"区域
信息和区域
内员工数量"
)
@ApiModel
(
"区域内员工数量"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
...
...
@@ -25,31 +24,15 @@ import org.locationtech.jts.geom.Geometry;
public
class
DistrictUserVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3900485837172743182
L
;
private
static
final
long
serialVersionUID
=
6164018365847108448
L
;
@ApiModelProperty
(
value
=
"区域名称"
,
example
=
"生产区域"
)
private
String
name
;
@ApiModelProperty
(
value
=
"风险等级(区域颜色)"
,
example
=
"f##0000"
)
private
String
riskGrade
;
@ApiModelProperty
(
value
=
"空间信息"
,
dataType
=
"java.lang.String"
)
private
Geometry
geometry
;
@ApiModelProperty
(
value
=
"地图id"
,
example
=
"1"
)
private
Integer
mapId
;
@ApiModelProperty
(
value
=
"此区域的员工数量"
,
example
=
"20"
)
private
Integer
userNum
;
public
static
DistrictUserVo
transform
(
District
district
)
{
return
DistrictUserVo
.
builder
()
.
name
(
district
.
getName
())
.
riskGrade
(
district
.
getRiskGrade
())
.
geometry
(
district
.
getGeometry
())
.
mapId
(
builder
().
mapId
)
.
userNum
(
district
.
getTags
().
size
())
.
build
();
return
DistrictUserVo
.
builder
().
name
(
district
.
getName
()).
userNum
(
district
.
getTags
().
size
()).
build
();
}
}
app/src/main/java/com/yiring/app/vo/location/fence/FenceAlarmLogVo.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
location
.
fence
;
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
;
import
java.io.Serializable
;
import
java.util.List
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/20 9:50
*/
@ApiModel
(
"围栏报警数据记录"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
FenceAlarmLogVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5038611185916574099L
;
@ApiModelProperty
(
value
=
"围栏类别:1-普通围栏,2-特殊作业,3-重大危险源"
,
example
=
"1"
)
private
Integer
fenceType
;
@ApiModelProperty
(
value
=
"围栏类别名称"
,
example
=
"普通围栏"
)
private
String
fenceTypeName
;
@ApiModelProperty
(
value
=
"报警数量"
,
example
=
"20"
)
private
Integer
number
;
@ApiModelProperty
(
value
=
"报警类型相关数据记录"
)
private
List
<
AlarmTypeVo
>
alarmTypeVos
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
static
class
AlarmTypeVo
{
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"报警类型id"
,
example
=
"1524218162491428864"
)
private
Long
alarmType
;
@ApiModelProperty
(
value
=
"报警类型名称"
,
example
=
"超员报警"
)
private
String
alarmTypeName
;
@ApiModelProperty
(
value
=
"报警数量"
,
example
=
"20"
)
private
Integer
number
;
}
}
app/src/main/java/com/yiring/app/vo/location/fence/FenceAlarmRealtimeVo.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
location
.
fence
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.location.LocationFenceAlarm
;
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/20 9:48
*/
@ApiModel
(
"实时围栏报警信息"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
FenceAlarmRealtimeVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
16864683628344917L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"报警信息id"
,
example
=
"2"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"所在围栏名称"
,
example
=
"一号围栏"
)
private
String
fenceName
;
@ApiModelProperty
(
value
=
"触警人"
,
example
=
"张三"
)
private
String
user
;
@ApiModelProperty
(
value
=
"报警时间"
,
example
=
"2022-05-20 10:00:00"
)
private
LocalDateTime
startTime
;
@ApiModelProperty
(
value
=
"报警类型"
,
example
=
"超员报警"
)
private
String
alarmType
;
public
static
FenceAlarmRealtimeVo
transform
(
LocationFenceAlarm
locationFenceAlarm
)
{
return
FenceAlarmRealtimeVo
.
builder
()
.
id
(
locationFenceAlarm
.
getId
())
.
fenceName
(
locationFenceAlarm
.
getFence
().
getName
())
.
user
(
locationFenceAlarm
.
getUser
().
getRealName
())
.
startTime
(
locationFenceAlarm
.
getStartTime
())
.
alarmType
(
locationFenceAlarm
.
getType
().
getName
())
.
build
();
}
}
app/src/main/java/com/yiring/app/vo/location/fence/FenceRealtimeVo.java
0 → 100644
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
location
.
fence
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.constant.alarm.FenceTypeEnum
;
import
com.yiring.app.domain.location.LocationFence
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.locationtech.jts.geom.Geometry
;
/**
* @author tml
* @version 1.0
* @date 2022/5/20 9:11
*/
@ApiModel
(
"围栏实时数据"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
FenceRealtimeVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5364975855865067076L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"围栏id"
,
example
=
"1527096652123344896"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"围栏名称"
,
example
=
"一号围栏"
)
private
String
name
;
@ApiModelProperty
(
value
=
"地图id"
,
example
=
"1"
)
private
Integer
mapId
;
@ApiModelProperty
(
value
=
"地图名称"
,
example
=
"总图"
)
private
String
mapName
;
@ApiModelProperty
(
value
=
"围栏类别:1-普通围栏,2-特殊作业,3-重大危险源"
,
example
=
"1"
)
private
Integer
fenceType
;
@ApiModelProperty
(
value
=
"围栏类别名称"
,
example
=
"普通围栏"
)
private
String
fenceTypeName
;
@ApiModelProperty
(
value
=
"空间信息"
,
dataType
=
"java.lang.String"
)
private
Geometry
geometry
;
public
static
FenceRealtimeVo
transform
(
LocationFence
fence
)
{
return
FenceRealtimeVo
.
builder
()
.
id
(
fence
.
getId
())
.
name
(
fence
.
getName
())
.
mapId
(
fence
.
getMapId
().
intValue
())
.
mapName
(
fence
.
getMapName
())
.
fenceType
(
fence
.
getFenceType
())
.
fenceTypeName
(
FenceTypeEnum
.
getByCode
(
fence
.
getFenceType
()))
.
geometry
(
fence
.
getGeometry
())
.
build
();
}
}
app/src/main/java/com/yiring/app/web/district/DistrictController.java
浏览文件 @
c2d0aaa0
...
...
@@ -2,9 +2,10 @@
package
com
.
yiring
.
app
.
web
.
district
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictConditionParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.app.param.district.DistrictRealtimeConditionParam
;
import
com.yiring.app.service.district.DistrictService
;
import
com.yiring.app.vo.district.DistrictDetailsVo
;
import
com.yiring.app.vo.district.DistrictUserVo
;
import
com.yiring.app.vo.district.DistrictVo
;
import
com.yiring.common.core.Result
;
...
...
@@ -63,9 +64,15 @@ public class DistrictController {
return
districtService
.
findByNameLike
(
name
);
}
@ApiOperation
(
value
=
"查询实时围栏列表"
)
@GetMapping
(
"/findList"
)
public
Result
<
PageVo
<
DistrictUserVo
>>
findList
(
@Valid
DistrictConditionParam
param
)
{
return
districtService
.
findList
(
param
);
@ApiOperation
(
value
=
"查询实时区域列表"
)
@GetMapping
(
"/findRealtimeList"
)
public
Result
<
PageVo
<
DistrictDetailsVo
>>
findRealtimeList
(
@Valid
DistrictRealtimeConditionParam
param
)
{
return
districtService
.
findRealtimeList
(
param
);
}
@ApiOperation
(
value
=
"查询区域内员工数量统计"
)
@GetMapping
(
"/findDistrictUser"
)
public
Result
<
PageVo
<
DistrictUserVo
>>
findDistrictUser
(
@Valid
DistrictRealtimeConditionParam
param
)
{
return
districtService
.
findDistrictUser
(
param
);
}
}
app/src/main/java/com/yiring/app/web/location/fence/FenceAlarmController.java
浏览文件 @
c2d0aaa0
...
...
@@ -2,11 +2,16 @@
package
com
.
yiring
.
app
.
web
.
location
.
fence
;
import
com.yiring.app.param.location.fence.FenceAlarmConditionParam
;
import
com.yiring.app.param.location.fence.FenceAlarmLogParam
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.service.location.fence.FenceAlarmService
;
import
com.yiring.app.vo.IdNameVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmLogVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmRealtimeVo
;
import
com.yiring.app.vo.location.fence.FenceAlarmVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
io.swagger.annotations.Api
;
...
...
@@ -57,4 +62,29 @@ public class FenceAlarmController {
public
void
export
(
@Valid
FenceAlarmConditionParam
param
,
HttpServletResponse
response
)
{
fenceAlarmService
.
export
(
param
,
response
);
}
@ApiOperation
(
"根据id查询报警记录"
)
@GetMapping
(
"/findOne"
)
public
Result
<
FenceAlarmVo
>
findOne
(
@Valid
IdParam
idParam
)
{
return
fenceAlarmService
.
findOne
(
idParam
);
}
@ApiOperation
(
value
=
"查询报警记录统计"
)
@GetMapping
(
"/findAlarmLog"
)
public
Result
<
PageVo
<
FenceAlarmLogVo
>>
findAlarmLog
(
@Valid
FenceAlarmLogParam
fenceAlarmLogParam
)
{
return
fenceAlarmService
.
findAlarmLog
(
fenceAlarmLogParam
);
}
@ApiOperation
(
"查询正在报警的报警记录"
)
@GetMapping
(
"/fenRealtimeList"
)
public
Result
<
PageVo
<
FenceAlarmRealtimeVo
>>
fenRealtimeList
(
@Valid
FenceRealtimeConditionParam
param
,
@Valid
PageParam
pageParam
)
{
if
(
Objects
.
isNull
(
pageParam
.
getSortField
()))
{
pageParam
.
setSortField
(
BasicEntity
.
Fields
.
createTime
);
pageParam
.
setSortOrder
(
Sort
.
Direction
.
DESC
);
}
return
fenceAlarmService
.
fenRealtimeList
(
param
,
pageParam
);
}
}
app/src/main/java/com/yiring/app/web/location/fence/LocationFenceController.java
浏览文件 @
c2d0aaa0
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
location
.
fence
;
import
com.yiring.app.constant.alarm.FenceTypeEnum
;
import
com.yiring.app.domain.alarm.AlarmType
;
import
com.yiring.app.param.location.fence.FenceRealtimeConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceAddParam
;
import
com.yiring.app.param.location.fence.LocationFenceConditionParam
;
import
com.yiring.app.param.location.fence.LocationFenceModifyParam
;
import
com.yiring.app.service.location.fence.LocationFenceService
;
import
com.yiring.app.vo.CodeNameVo
;
import
com.yiring.app.vo.location.fence.FenceRealtimeVo
;
import
com.yiring.app.vo.location.fence.LocationFenceSearchVo
;
import
com.yiring.app.vo.location.fence.LocationFenceVo
;
import
com.yiring.auth.param.IdsParam
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
...
...
@@ -16,15 +20,13 @@ import com.yiring.common.vo.PageVo;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
import
java.util.Objects
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author tml
...
...
@@ -73,7 +75,7 @@ public class LocationFenceController {
return
locationFenceService
.
findList
(
conditionParam
,
pageParam
);
}
@ApiOperation
(
"根据
条
id查询围栏信息"
)
@ApiOperation
(
"根据id查询围栏信息"
)
@PostMapping
(
"/findById"
)
public
Result
<
LocationFenceVo
>
findById
(
@Valid
IdParam
param
)
{
return
locationFenceService
.
findById
(
param
);
...
...
@@ -89,9 +91,47 @@ public class LocationFenceController {
return
locationFenceService
.
findByNameLike
(
name
);
}
@ApiOperation
(
"查询围栏类型下拉框"
)
@GetMapping
(
"/findFenceType"
)
public
Result
<
PageVo
<
CodeNameVo
>>
findFenceType
()
{
List
<
CodeNameVo
>
list
=
FenceTypeEnum
.
getAll
();
PageVo
<
CodeNameVo
>
pageVo
=
PageVo
.
build
(
list
,
list
.
size
());
return
Result
.
ok
(
pageVo
);
}
@ApiOperation
(
"获取地图下拉框"
)
@PostMapping
(
"/findMapList"
)
public
Result
<
PageVo
<
CodeNameVo
>>
findMapList
()
{
return
locationFenceService
.
findMapList
();
}
@ApiOperation
(
"启用一个围栏"
)
@PostMapping
(
"/enable"
)
public
Result
<
String
>
enable
(
@Valid
IdParam
idParam
)
{
return
locationFenceService
.
enable
(
idParam
,
true
);
}
@ApiOperation
(
"停用一个围栏"
)
@PostMapping
(
"/unEnable"
)
public
Result
<
String
>
unEnable
(
@Valid
IdParam
idParam
)
{
return
locationFenceService
.
enable
(
idParam
,
false
);
}
@ApiOperation
(
"批量启用一个围栏"
)
@PostMapping
(
"/batchEnable"
)
public
Result
<
String
>
batchEnable
(
@Valid
IdsParam
idsParam
)
{
return
locationFenceService
.
batchEnable
(
idsParam
,
true
);
}
@ApiOperation
(
"批量停用一个围栏"
)
@PostMapping
(
"/batchUnEnable"
)
public
Result
<
String
>
batchUnEnable
(
@Valid
IdsParam
idsParam
)
{
return
locationFenceService
.
batchEnable
(
idsParam
,
false
);
}
@ApiOperation
(
"实时查询围栏信息"
)
@GetMapping
(
"/fenRealtimeList"
)
public
Result
<
PageVo
<
FenceRealtimeVo
>>
fenRealtimeList
(
@Valid
FenceRealtimeConditionParam
param
)
{
return
locationFenceService
.
fenRealtimeList
(
param
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论