Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
f39e4fc3
提交
f39e4fc3
authored
5月 25, 2022
作者:
涂茂林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:风险预警管理除导入以外的所有功能
上级
c9267941
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
39 个修改的文件
包含
1252 行增加
和
127 行删除
+1252
-127
FenceTypeEnum.java
...ain/java/com/yiring/app/constant/alarm/FenceTypeEnum.java
+1
-1
InformMannerEnum.java
.../java/com/yiring/app/constant/alarm/InformMannerEnum.java
+2
-2
ReceiveStatusEnum.java
...java/com/yiring/app/constant/alarm/ReceiveStatusEnum.java
+1
-1
RelevanceParamEnum.java
...ava/com/yiring/app/constant/alarm/RelevanceParamEnum.java
+1
-1
RehearsalPlanStatusEnum.java
...iring/app/constant/rehearsal/RehearsalPlanStatusEnum.java
+1
-1
RiskLevelEnum.java
...java/com/yiring/app/constant/rehearsal/RiskLevelEnum.java
+1
-1
TemplateList.java
.../main/java/com/yiring/app/constant/risk/TemplateList.java
+74
-0
ThresholdStatusEnum.java
...ava/com/yiring/app/constant/risk/ThresholdStatusEnum.java
+24
-14
DangerousStrategy.java
...m/yiring/app/design/strategy/fence/DangerousStrategy.java
+3
-2
AllowEntranceStrategy.java
...iring/app/design/strategy/rule/AllowEntranceStrategy.java
+18
-8
MaxPeopleNumberStrategy.java
...ing/app/design/strategy/rule/MaxPeopleNumberStrategy.java
+20
-10
MinPeopleNumberStrategy.java
...ing/app/design/strategy/rule/MinPeopleNumberStrategy.java
+20
-10
NotAllowLeaveStrategy.java
...iring/app/design/strategy/rule/NotAllowLeaveStrategy.java
+20
-10
RetentionDurationStrategy.java
...g/app/design/strategy/rule/RetentionDurationStrategy.java
+1
-1
StaticDurationStrategy.java
...ring/app/design/strategy/rule/StaticDurationStrategy.java
+1
-1
TriggerAlarmDistanceStrategy.java
...pp/design/strategy/rule/TriggerAlarmDistanceStrategy.java
+1
-1
RiskWarn.java
app/src/main/java/com/yiring/app/domain/risk/RiskWarn.java
+15
-8
RiskWarnRepository.java
...n/java/com/yiring/app/domain/risk/RiskWarnRepository.java
+31
-0
Threshold.java
app/src/main/java/com/yiring/app/domain/risk/Threshold.java
+10
-12
RiskWarnExcel.java
...rc/main/java/com/yiring/app/excel/risk/RiskWarnExcel.java
+96
-0
RuleParam.java
...in/java/com/yiring/app/param/location/rule/RuleParam.java
+17
-15
TimeAndNumberParam.java
...om/yiring/app/param/location/rule/TimeAndNumberParam.java
+2
-8
TimeAndUserParam.java
.../com/yiring/app/param/location/rule/TimeAndUserParam.java
+2
-8
TimeParam.java
...in/java/com/yiring/app/param/location/rule/TimeParam.java
+5
-1
RiskWarnAddParam.java
...main/java/com/yiring/app/param/risk/RiskWarnAddParam.java
+83
-0
RiskWarnConditionParam.java
...ava/com/yiring/app/param/risk/RiskWarnConditionParam.java
+27
-0
RiskWarnModifyParam.java
...n/java/com/yiring/app/param/risk/RiskWarnModifyParam.java
+77
-0
ThresholdParam.java
...c/main/java/com/yiring/app/param/risk/ThresholdParam.java
+41
-0
RiskWarnService.java
...ain/java/com/yiring/app/service/risk/RiskWarnService.java
+87
-0
RiskWarnServiceImpl.java
...com/yiring/app/service/risk/impl/RiskWarnServiceImpl.java
+236
-0
RuleVo.java
...src/main/java/com/yiring/app/vo/location/rule/RuleVo.java
+1
-0
TimeAndNumberVo.java
...java/com/yiring/app/vo/location/rule/TimeAndNumberVo.java
+0
-6
TimeAndUserVo.java
...n/java/com/yiring/app/vo/location/rule/TimeAndUserVo.java
+0
-4
TimeVo.java
...src/main/java/com/yiring/app/vo/location/rule/TimeVo.java
+4
-1
RiskWarnDetailVo.java
...rc/main/java/com/yiring/app/vo/risk/RiskWarnDetailVo.java
+80
-0
RiskWarnVo.java
app/src/main/java/com/yiring/app/vo/risk/RiskWarnVo.java
+66
-0
ThresholdVo.java
app/src/main/java/com/yiring/app/vo/risk/ThresholdVo.java
+51
-0
RiskWarnController.java
...main/java/com/yiring/app/web/risk/RiskWarnController.java
+127
-0
RegEx.java
.../core/src/main/java/com/yiring/common/constant/RegEx.java
+5
-0
没有找到文件。
app/src/main/java/com/yiring/app/constant/alarm/FenceTypeEnum.java
浏览文件 @
f39e4fc3
...
@@ -67,7 +67,7 @@ public enum FenceTypeEnum {
...
@@ -67,7 +67,7 @@ public enum FenceTypeEnum {
}
}
}
}
}
}
return
"未知围栏类别"
;
throw
new
RuntimeException
(
"FenceTypeEnum获取未知围栏类别"
)
;
}
}
/**
/**
...
...
app/src/main/java/com/yiring/app/constant/alarm/InformMannerEnum.java
浏览文件 @
f39e4fc3
...
@@ -37,7 +37,7 @@ public enum InformMannerEnum {
...
@@ -37,7 +37,7 @@ public enum InformMannerEnum {
private
static
final
List
<
CodeNameVo
>
LIST
;
private
static
final
List
<
CodeNameVo
>
LIST
;
static
{
static
{
LIST
=
new
ArrayList
<
CodeNameVo
>();
LIST
=
new
ArrayList
<>();
for
(
InformMannerEnum
item
:
values
())
{
for
(
InformMannerEnum
item
:
values
())
{
LIST
.
add
(
new
CodeNameVo
(
item
.
code
,
item
.
name
));
LIST
.
add
(
new
CodeNameVo
(
item
.
code
,
item
.
name
));
}
}
...
@@ -54,7 +54,7 @@ public enum InformMannerEnum {
...
@@ -54,7 +54,7 @@ public enum InformMannerEnum {
return
item
.
getName
();
return
item
.
getName
();
}
}
}
}
return
"未知通知类型"
;
throw
new
RuntimeException
(
"InformMannerEnum获取未知通知类型"
)
;
}
}
public
static
List
<
CodeNameVo
>
getAll
()
{
public
static
List
<
CodeNameVo
>
getAll
()
{
...
...
app/src/main/java/com/yiring/app/constant/alarm/ReceiveStatusEnum.java
浏览文件 @
f39e4fc3
...
@@ -49,7 +49,7 @@ public enum ReceiveStatusEnum {
...
@@ -49,7 +49,7 @@ public enum ReceiveStatusEnum {
return
item
.
getName
();
return
item
.
getName
();
}
}
}
}
return
"未知状态"
;
throw
new
RuntimeException
(
"ReceiveStatusEnum获取未知状态"
)
;
}
}
public
static
List
<
CodeNameVo
>
findAll
()
{
public
static
List
<
CodeNameVo
>
findAll
()
{
...
...
app/src/main/java/com/yiring/app/constant/alarm/RelevanceParamEnum.java
浏览文件 @
f39e4fc3
...
@@ -87,7 +87,7 @@ public enum RelevanceParamEnum {
...
@@ -87,7 +87,7 @@ public enum RelevanceParamEnum {
}
}
}
}
}
}
return
"未知关联参数"
;
throw
new
RuntimeException
(
"RelevanceParamEnum获取未知关联参数"
)
;
}
}
/**
/**
...
...
app/src/main/java/com/yiring/app/constant/rehearsal/RehearsalPlanStatusEnum.java
浏览文件 @
f39e4fc3
...
@@ -58,6 +58,6 @@ public enum RehearsalPlanStatusEnum {
...
@@ -58,6 +58,6 @@ public enum RehearsalPlanStatusEnum {
return
item
.
getName
();
return
item
.
getName
();
}
}
}
}
return
"未知状态"
;
throw
new
RuntimeException
(
"RehearsalPlanStatusEnum获取异常状态"
)
;
}
}
}
}
app/src/main/java/com/yiring/app/constant/rehearsal/RiskLevelEnum.java
浏览文件 @
f39e4fc3
...
@@ -63,6 +63,6 @@ public enum RiskLevelEnum {
...
@@ -63,6 +63,6 @@ public enum RiskLevelEnum {
return
item
.
getName
();
return
item
.
getName
();
}
}
}
}
return
"未知风险"
;
throw
new
RuntimeException
(
"RiskLevelEnum获取未知风险"
)
;
}
}
}
}
app/src/main/java/com/yiring/app/constant/risk/TemplateList.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
constant
.
risk
;
import
com.yiring.app.excel.risk.RiskWarnExcel
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author tml
* @version 1.0
* @date 2022/5/24 16:32
*/
public
class
TemplateList
{
private
static
final
List
<
RiskWarnExcel
>
LIST
=
new
ArrayList
<>();
static
{
LIST
.
add
(
RiskWarnExcel
.
builder
()
.
workAreaName
(
"BTC产品库房"
)
.
install
(
"产品库房北侧中间立柱东1"
)
.
monitoring
(
"有毒气体报警器"
)
.
locationNum
(
"AT-4736"
)
.
range
(
"0-1.6"
)
.
unit
(
"ppm"
)
.
lowLow
(
"0.15"
)
.
low
(
"0.2"
)
.
high
(
"0.5"
)
.
highHigh
(
"0.55"
)
.
flame
(
""
)
.
remark
(
"注意:工区、安装位置、监控参数、位号为必填,导入时备注这一列可以删除"
)
.
build
()
);
LIST
.
add
(
RiskWarnExcel
.
builder
()
.
workAreaName
(
"计量槽"
)
.
install
(
"1号槽液位"
)
.
monitoring
(
"液位"
)
.
locationNum
(
"PI-2107A"
)
.
range
(
"-27.18-7.32KPa"
)
.
unit
(
"ppm"
)
.
lowLow
(
"3%"
)
.
low
(
"5%"
)
.
high
(
"70%"
)
.
highHigh
(
"73%"
)
.
flame
(
""
)
.
remark
(
"注意:区间要么都为百分比要么都不为百分比"
)
.
build
()
);
LIST
.
add
(
RiskWarnExcel
.
builder
()
.
workAreaName
(
"合成盐酸"
)
.
install
(
"1号炉一楼"
)
.
monitoring
(
"火焰检测"
)
.
locationNum
(
"BSA-1401A"
)
.
range
(
""
)
.
unit
(
""
)
.
lowLow
(
""
)
.
low
(
""
)
.
high
(
""
)
.
highHigh
(
""
)
.
flame
(
"1"
)
.
remark
(
"注意:火焰检测在报警值(熄灭)这里添加预警值"
)
.
build
()
);
}
public
static
List
<
RiskWarnExcel
>
getTemplateList
()
{
return
LIST
;
}
}
app/src/main/java/com/yiring/app/constant/risk/Threshold
Type
.java
→
app/src/main/java/com/yiring/app/constant/risk/Threshold
StatusEnum
.java
浏览文件 @
f39e4fc3
...
@@ -9,23 +9,33 @@ import lombok.Getter;
...
@@ -9,23 +9,33 @@ import lombok.Getter;
/**
/**
* @author tml
* @author tml
* @version 1.0
* @version 1.0
* @date 2022/5/23 1
4:26
* @date 2022/5/23 1
7:01
*/
*/
public
enum
Threshold
Type
{
public
enum
Threshold
StatusEnum
{
/**
/**
*
普通数值
*
低低
*/
*/
COMMON_VALUE
(
1
,
"普通数值
"
),
LOW_LOW
(
1
,
"低低
"
),
/**
/**
*
百分比
*
低
*/
*/
PERCENTAGE_VALUE
(
2
,
"百分比
"
),
LOW
(
2
,
"低
"
),
/**
/**
*
仅标志一种状态
*
高
*/
*/
CONSTANT
(
3
,
"仅标志一种状态"
);
HIGH
(
3
,
"高"
),
/**
* 高高
*/
HIGH_HIGH
(
4
,
"高高"
),
/**
* 熄灭
*/
FLAME_EXTINGUISH
(
5
,
"熄灭"
);
@Getter
@Getter
private
final
Integer
code
;
private
final
Integer
code
;
...
@@ -36,26 +46,26 @@ public enum ThresholdType {
...
@@ -36,26 +46,26 @@ public enum ThresholdType {
private
static
final
List
<
CodeNameVo
>
LIST
=
new
ArrayList
<>();
private
static
final
List
<
CodeNameVo
>
LIST
=
new
ArrayList
<>();
static
{
static
{
for
(
Threshold
Type
item
:
values
())
{
for
(
Threshold
StatusEnum
item
:
values
())
{
LIST
.
add
(
new
CodeNameVo
(
item
.
code
,
item
.
name
));
LIST
.
add
(
new
CodeNameVo
(
item
.
code
,
item
.
name
));
}
}
}
}
Threshold
Type
(
Integer
code
,
String
name
)
{
Threshold
StatusEnum
(
Integer
code
,
String
name
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
name
=
name
;
this
.
name
=
name
;
}
}
public
String
getByCode
(
Integer
code
)
{
public
static
String
getByCode
(
Integer
code
)
{
for
(
Threshold
Type
item
:
values
())
{
for
(
Threshold
StatusEnum
item
:
values
())
{
if
(
item
.
code
.
equals
(
code
))
{
if
(
item
.
code
.
equals
(
code
))
{
return
item
.
getName
();
return
item
.
getName
();
}
}
}
}
return
"未知区间类型"
;
throw
new
RuntimeException
(
"ThresholdStatus获取异常状态"
)
;
}
}
public
List
<
CodeNameVo
>
find
All
()
{
public
static
List
<
CodeNameVo
>
get
All
()
{
return
LIST
;
return
LIST
;
}
}
}
}
app/src/main/java/com/yiring/app/design/strategy/fence/DangerousStrategy.java
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
design
.
strategy
.
fence
;
package
com
.
yiring
.
app
.
design
.
strategy
.
fence
;
import
com.yiring.app.constant.alarm.
RelevanceParam
Enum
;
import
com.yiring.app.constant.alarm.
FenceType
Enum
;
import
com.yiring.app.design.strategy.IParamInitStrategy
;
import
com.yiring.app.design.strategy.IParamInitStrategy
;
import
com.yiring.app.param.location.rule.LocationFenceRuleAddParam
;
import
com.yiring.app.param.location.rule.LocationFenceRuleAddParam
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
/**
/**
* 重大危险源
* @author tml
* @author tml
* @version 1.0
* @version 1.0
* @date 2022/4/29 11:08
* @date 2022/4/29 11:08
...
@@ -16,7 +17,7 @@ import org.springframework.stereotype.Component;
...
@@ -16,7 +17,7 @@ import org.springframework.stereotype.Component;
public
class
DangerousStrategy
implements
IParamInitStrategy
<
LocationFenceRuleAddParam
>
{
public
class
DangerousStrategy
implements
IParamInitStrategy
<
LocationFenceRuleAddParam
>
{
public
DangerousStrategy
()
{
public
DangerousStrategy
()
{
Integer
fenceType
=
RelevanceParamEnum
.
MAX_PEOPLE_NUMBER
.
getCode
();
Integer
fenceType
=
FenceTypeEnum
.
DANGEROUS
.
getCode
();
LocationFenceTypeContext
.
register
(
fenceType
,
this
);
LocationFenceTypeContext
.
register
(
fenceType
,
this
);
}
}
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/AllowEntranceStrategy.java
浏览文件 @
f39e4fc3
...
@@ -44,16 +44,26 @@ public class AllowEntranceStrategy implements IParamInitStrategy<LocationFenceRu
...
@@ -44,16 +44,26 @@ public class AllowEntranceStrategy implements IParamInitStrategy<LocationFenceRu
if
(
CollectionUtils
.
isEmpty
(
timeAndUser
))
{
if
(
CollectionUtils
.
isEmpty
(
timeAndUser
))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条允许进入人员的规则"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条允许进入人员的规则"
);
}
}
if
(
timeAndUser
.
size
()
==
1
&&
CollectionUtils
.
isEmpty
(
timeAndUser
.
get
(
0
).
getTime
()))
{
param
.
getRuleParam
().
setTimeAndUserAll
();
}
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
if
(
CollectionUtils
.
isEmpty
(
item
.
getUser
()))
{
if
(
CollectionUtils
.
isEmpty
(
item
.
getUser
()))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一个允许进入的人员"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一个允许进入的人员"
);
}
}
}
}
ruleParam
.
setDuration
(-
1
);
//如果只设置星期没有设置时间,则默认时间是全天
ruleParam
.
setDistance
(-
1
);
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
for
(
TimeParam
time
:
item
.
getTime
())
{
if
(
time
.
getWeek
()
!=
null
)
{
if
(
time
.
getBeginTime
()
==
null
)
{
time
.
setBeginTime
(
"00:00:00"
);
}
if
(
time
.
getEndTime
()
==
null
)
{
time
.
setEndTime
(
"23:59:59"
);
}
}
}
}
ruleParam
.
setDuration
(
null
);
ruleParam
.
setDistance
(
null
);
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
return
Result
.
ok
();
return
Result
.
ok
();
}
}
...
@@ -71,9 +81,9 @@ public class AllowEntranceStrategy implements IParamInitStrategy<LocationFenceRu
...
@@ -71,9 +81,9 @@ public class AllowEntranceStrategy implements IParamInitStrategy<LocationFenceRu
TimeAndUserParam
timeAndUserParam
=
null
;
TimeAndUserParam
timeAndUserParam
=
null
;
//筛选在当前时间生效的配置
//筛选在当前时间生效的配置
for
(
TimeAndUserParam
item
:
timeAndUserParamList
)
{
for
(
TimeAndUserParam
item
:
timeAndUserParamList
)
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
item
.
getWeek
()
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
time
.
getWeek
()
))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
o
me
()))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
i
me
()))
{
timeAndUserParam
=
item
;
timeAndUserParam
=
item
;
break
;
break
;
}
}
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/MaxPeopleNumberStrategy.java
浏览文件 @
f39e4fc3
...
@@ -47,17 +47,27 @@ public class MaxPeopleNumberStrategy implements IParamInitStrategy<LocationFence
...
@@ -47,17 +47,27 @@ public class MaxPeopleNumberStrategy implements IParamInitStrategy<LocationFence
if
(
CollectionUtils
.
isEmpty
(
timeAndNumber
))
{
if
(
CollectionUtils
.
isEmpty
(
timeAndNumber
))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条最多人数的规则"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条最多人数的规则"
);
}
}
if
(
timeAndNumber
.
size
()
==
1
&&
CollectionUtils
.
isEmpty
(
timeAndNumber
.
get
(
0
).
getTime
()))
{
param
.
getRuleParam
().
setTimeAndNumberAll
();
}
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
if
(
item
.
getNumber
()
==
null
||
item
.
getNumber
()
<
0
)
{
if
(
item
.
getNumber
()
==
null
||
item
.
getNumber
()
<
0
)
{
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"最大人数不能空或小于零"
);
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"最大人数不能空或小于零"
);
}
}
}
}
//如果只设置星期没有设置时间,则默认时间是全天
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
for
(
TimeParam
time
:
item
.
getTime
())
{
if
(
time
.
getWeek
()
!=
null
)
{
if
(
time
.
getBeginTime
()
==
null
)
{
time
.
setBeginTime
(
"00:00:00"
);
}
if
(
time
.
getEndTime
()
==
null
)
{
time
.
setEndTime
(
"23:59:59"
);
}
}
}
}
//将时间和距离都设为-1
//将时间和距离都设为-1
ruleParam
.
setDuration
(
-
1
);
ruleParam
.
setDuration
(
null
);
ruleParam
.
setDistance
(
-
1
);
ruleParam
.
setDistance
(
null
);
ArrayList
<
TimeAndUserParam
>
list
=
new
ArrayList
<>();
ArrayList
<
TimeAndUserParam
>
list
=
new
ArrayList
<>();
ruleParam
.
setTimeAndUser
(
list
);
ruleParam
.
setTimeAndUser
(
list
);
return
Result
.
ok
();
return
Result
.
ok
();
...
@@ -78,11 +88,11 @@ public class MaxPeopleNumberStrategy implements IParamInitStrategy<LocationFence
...
@@ -78,11 +88,11 @@ public class MaxPeopleNumberStrategy implements IParamInitStrategy<LocationFence
StringBuilder
end
=
new
StringBuilder
();
StringBuilder
end
=
new
StringBuilder
();
//筛选在当前时间生效的配置
//筛选在当前时间生效的配置
for
(
TimeAndNumberParam
item
:
timeAndNumberParamList
)
{
for
(
TimeAndNumberParam
item
:
timeAndNumberParamList
)
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
item
.
getWeek
()
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
time
.
getWeek
()
))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
o
me
()))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
i
me
()))
{
begin
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
begin
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
end
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTo
me
());
end
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTi
me
());
timeAndNumberParam
=
item
;
timeAndNumberParam
=
item
;
break
;
break
;
}
}
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/MinPeopleNumberStrategy.java
浏览文件 @
f39e4fc3
...
@@ -47,17 +47,27 @@ public class MinPeopleNumberStrategy implements IParamInitStrategy<LocationFence
...
@@ -47,17 +47,27 @@ public class MinPeopleNumberStrategy implements IParamInitStrategy<LocationFence
if
(
CollectionUtils
.
isEmpty
(
timeAndNumber
))
{
if
(
CollectionUtils
.
isEmpty
(
timeAndNumber
))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条最少人数的规则"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条最少人数的规则"
);
}
}
if
(
timeAndNumber
.
size
()
==
1
&&
CollectionUtils
.
isEmpty
(
timeAndNumber
.
get
(
0
).
getTime
()))
{
param
.
getRuleParam
().
setTimeAndNumberAll
();
}
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
if
(
item
.
getNumber
()
==
null
||
item
.
getNumber
()
<
0
)
{
if
(
item
.
getNumber
()
==
null
||
item
.
getNumber
()
<
0
)
{
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"最大人数不能空或小于零"
);
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"最大人数不能空或小于零"
);
}
}
}
}
//如果只设置星期没有设置时间,则默认时间是全天
for
(
TimeAndNumberParam
item
:
timeAndNumber
)
{
for
(
TimeParam
time
:
item
.
getTime
())
{
if
(
time
.
getWeek
()
!=
null
)
{
if
(
time
.
getBeginTime
()
==
null
)
{
time
.
setBeginTime
(
"00:00:00"
);
}
if
(
time
.
getEndTime
()
==
null
)
{
time
.
setEndTime
(
"23:59:59"
);
}
}
}
}
//将时间和距离都设为-1
//将时间和距离都设为-1
ruleParam
.
setDuration
(
-
1
);
ruleParam
.
setDuration
(
null
);
ruleParam
.
setDistance
(
-
1
);
ruleParam
.
setDistance
(
null
);
ArrayList
<
TimeAndUserParam
>
list
=
new
ArrayList
<>();
ArrayList
<
TimeAndUserParam
>
list
=
new
ArrayList
<>();
ruleParam
.
setTimeAndUser
(
list
);
ruleParam
.
setTimeAndUser
(
list
);
return
Result
.
ok
();
return
Result
.
ok
();
...
@@ -78,11 +88,11 @@ public class MinPeopleNumberStrategy implements IParamInitStrategy<LocationFence
...
@@ -78,11 +88,11 @@ public class MinPeopleNumberStrategy implements IParamInitStrategy<LocationFence
StringBuilder
end
=
new
StringBuilder
();
StringBuilder
end
=
new
StringBuilder
();
//筛选在当前时间生效的配置
//筛选在当前时间生效的配置
for
(
TimeAndNumberParam
item
:
timeAndNumberParamList
)
{
for
(
TimeAndNumberParam
item
:
timeAndNumberParamList
)
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
item
.
getWeek
()
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
for
(
TimeParam
time
:
item
.
getTime
(
))
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
time
.
getWeek
()
))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
o
me
()))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndT
i
me
()))
{
begin
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
begin
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
end
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTo
me
());
end
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTi
me
());
timeAndNumberParam
=
item
;
timeAndNumberParam
=
item
;
break
;
break
;
}
}
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/NotAllowLeaveStrategy.java
浏览文件 @
f39e4fc3
...
@@ -47,16 +47,26 @@ public class NotAllowLeaveStrategy implements IParamInitStrategy<LocationFenceRu
...
@@ -47,16 +47,26 @@ public class NotAllowLeaveStrategy implements IParamInitStrategy<LocationFenceRu
if
(
CollectionUtils
.
isEmpty
(
timeAndUser
))
{
if
(
CollectionUtils
.
isEmpty
(
timeAndUser
))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条不允许离开人员的规则"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一条不允许离开人员的规则"
);
}
}
if
(
timeAndUser
.
size
()
==
1
&&
CollectionUtils
.
isEmpty
(
timeAndUser
.
get
(
0
).
getTime
()))
{
param
.
getRuleParam
().
setTimeAndUserAll
();
}
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
if
(
CollectionUtils
.
isEmpty
(
item
.
getUser
()))
{
if
(
CollectionUtils
.
isEmpty
(
item
.
getUser
()))
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一个不允许离开的人员"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"请至少配置一个不允许离开的人员"
);
}
}
}
}
ruleParam
.
setDuration
(-
1
);
//如果只设置星期没有设置时间,则默认时间是全天
ruleParam
.
setDistance
(-
1
);
for
(
TimeAndUserParam
item
:
timeAndUser
)
{
for
(
TimeParam
time
:
item
.
getTime
())
{
if
(
time
.
getWeek
()
!=
null
)
{
if
(
time
.
getBeginTime
()
==
null
)
{
time
.
setBeginTime
(
"00:00:00"
);
}
if
(
time
.
getEndTime
()
==
null
)
{
time
.
setEndTime
(
"23:59:59"
);
}
}
}
}
ruleParam
.
setDuration
(
null
);
ruleParam
.
setDistance
(
null
);
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
return
Result
.
ok
();
return
Result
.
ok
();
}
}
...
@@ -76,12 +86,12 @@ public class NotAllowLeaveStrategy implements IParamInitStrategy<LocationFenceRu
...
@@ -76,12 +86,12 @@ public class NotAllowLeaveStrategy implements IParamInitStrategy<LocationFenceRu
StringBuilder
end
=
new
StringBuilder
();
StringBuilder
end
=
new
StringBuilder
();
//筛选在当前时间生效的配置
//筛选在当前时间生效的配置
for
(
TimeAndUserParam
item
:
timeAndUserParamList
)
{
for
(
TimeAndUserParam
item
:
timeAndUserParamList
)
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
item
.
getWeek
()))
{
for
(
TimeParam
time
:
item
.
getTime
())
{
for
(
TimeParam
time
:
item
.
getTime
())
{
if
(
TimeUtil
.
judgeWeek
(
LocalDateTime
.
now
(),
time
.
getWeek
()))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndTome
()))
{
if
(
TimeUtil
.
judgeTime
(
LocalDateTime
.
now
(),
time
.
getBeginTime
(),
time
.
getEndTime
()))
{
begin
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
end
.
append
(
item
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTome
());
timeAndUserParam
=
item
;
timeAndUserParam
=
item
;
begin
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getBeginTime
());
end
.
append
(
time
.
getWeek
()).
append
(
" "
).
append
(
time
.
getEndTime
());
break
;
break
;
}
}
}
}
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/RetentionDurationStrategy.java
浏览文件 @
f39e4fc3
...
@@ -44,7 +44,7 @@ public class RetentionDurationStrategy implements IParamInitStrategy<LocationFen
...
@@ -44,7 +44,7 @@ public class RetentionDurationStrategy implements IParamInitStrategy<LocationFen
if
(
ruleParam
.
getDuration
()
==
null
||
ruleParam
.
getDuration
()
<
0
)
{
if
(
ruleParam
.
getDuration
()
==
null
||
ruleParam
.
getDuration
()
<
0
)
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"滞留时长异常"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"滞留时长异常"
);
}
}
ruleParam
.
setDistance
(
-
1
);
ruleParam
.
setDistance
(
null
);
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
return
Result
.
ok
();
return
Result
.
ok
();
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/StaticDurationStrategy.java
浏览文件 @
f39e4fc3
...
@@ -42,7 +42,7 @@ public class StaticDurationStrategy implements IParamInitStrategy<LocationFenceR
...
@@ -42,7 +42,7 @@ public class StaticDurationStrategy implements IParamInitStrategy<LocationFenceR
if
(
ruleParam
.
getDuration
()
==
null
||
ruleParam
.
getDuration
()
<
0
)
{
if
(
ruleParam
.
getDuration
()
==
null
||
ruleParam
.
getDuration
()
<
0
)
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"静止时长异常"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"静止时长异常"
);
}
}
ruleParam
.
setDistance
(
-
1
);
ruleParam
.
setDistance
(
null
);
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
return
Result
.
ok
();
return
Result
.
ok
();
...
...
app/src/main/java/com/yiring/app/design/strategy/rule/TriggerAlarmDistanceStrategy.java
浏览文件 @
f39e4fc3
...
@@ -48,7 +48,7 @@ public class TriggerAlarmDistanceStrategy implements IParamInitStrategy<Location
...
@@ -48,7 +48,7 @@ public class TriggerAlarmDistanceStrategy implements IParamInitStrategy<Location
if
(
ruleParam
.
getDistance
()
==
null
||
ruleParam
.
getDistance
()
<
0
)
{
if
(
ruleParam
.
getDistance
()
==
null
||
ruleParam
.
getDistance
()
<
0
)
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"触发报警距离异常"
);
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"触发报警距离异常"
);
}
}
ruleParam
.
setDuration
(
-
1
);
ruleParam
.
setDuration
(
null
);
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndUser
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
ruleParam
.
setTimeAndNumber
(
new
ArrayList
<>());
return
Result
.
ok
();
return
Result
.
ok
();
...
...
app/src/main/java/com/yiring/app/domain/risk/RiskWarn.java
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
risk
;
package
com
.
yiring
.
app
.
domain
.
risk
;
import
com.yiring.app.domain.workArea.WorkArea
;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.HashSet
;
import
java.math.BigDecimal
;
import
java.util.Set
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.persistence.*
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.*
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.SuperBuilder
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.Comment
;
import
org.locationtech.jts.geom.Point
;
import
org.locationtech.jts.geom.Point
;
...
@@ -20,7 +23,7 @@ import org.locationtech.jts.geom.Point;
...
@@ -20,7 +23,7 @@ import org.locationtech.jts.geom.Point;
@Getter
@Getter
@Setter
@Setter
@ToString
@ToString
@
Builder
@
SuperBuilder
(
toBuilder
=
true
)
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldNameConstants
...
@@ -32,7 +35,10 @@ public class RiskWarn extends BasicEntity implements Serializable {
...
@@ -32,7 +35,10 @@ public class RiskWarn extends BasicEntity implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
1345477064611048638L
;
private
static
final
long
serialVersionUID
=
1345477064611048638L
;
//todo 工区
@Comment
(
"所属工区"
)
@ManyToOne
@JoinColumn
(
name
=
"workArea_id"
)
private
WorkArea
workArea
;
@Comment
(
"安装位置"
)
@Comment
(
"安装位置"
)
private
String
install
;
private
String
install
;
...
@@ -48,10 +54,10 @@ public class RiskWarn extends BasicEntity implements Serializable {
...
@@ -48,10 +54,10 @@ public class RiskWarn extends BasicEntity implements Serializable {
private
String
locationNum
;
private
String
locationNum
;
@Comment
(
"量程起始值"
)
@Comment
(
"量程起始值"
)
private
Integer
min
;
private
BigDecimal
min
;
@Comment
(
"量程结束值"
)
@Comment
(
"量程结束值"
)
private
Integer
max
;
private
BigDecimal
max
;
@Comment
(
"量程单位"
)
@Comment
(
"量程单位"
)
private
String
unit
;
private
String
unit
;
...
@@ -59,8 +65,9 @@ public class RiskWarn extends BasicEntity implements Serializable {
...
@@ -59,8 +65,9 @@ public class RiskWarn extends BasicEntity implements Serializable {
@Comment
(
"启用"
)
@Comment
(
"启用"
)
private
Boolean
enable
;
private
Boolean
enable
;
@ToString
.
Exclude
@Comment
(
"阈值区间信息"
)
@Builder
.
Default
@Builder
.
Default
@OneToMany
(
mappedBy
=
"riskWarn"
)
@OneToMany
(
mappedBy
=
"riskWarn"
)
@ToString
.
Exclude
private
List
<
Threshold
>
thresholds
=
new
ArrayList
<>();
private
Set
<
Threshold
>
thresholds
=
new
HashSet
<>();
}
}
app/src/main/java/com/yiring/app/domain/risk/RiskWarnRepository.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
risk
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.Set
;
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
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 17:58
*/
@Repository
public
interface
RiskWarnRepository
extends
JpaRepository
<
RiskWarn
,
Serializable
>,
JpaSpecificationExecutor
<
RiskWarn
>
{
/**
* 批量启用或停用
* @param ids ids
* @param enable 启用或停用
* @param now 当前时间
* @return 修改的条数
*/
@Query
(
value
=
"UPDATE RiskWarn SET enable = :enable, updateTime = :now WHERE id IN (:ids)"
)
@Modifying
int
batchEnable
(
@Param
(
"ids"
)
Set
<
Long
>
ids
,
@Param
(
"enable"
)
boolean
enable
,
@Param
(
"now"
)
LocalDateTime
now
);
}
app/src/main/java/com/yiring/app/domain/risk/Threshold.java
浏览文件 @
f39e4fc3
...
@@ -7,45 +7,43 @@ import java.io.Serializable;
...
@@ -7,45 +7,43 @@ import java.io.Serializable;
import
javax.persistence.*
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.*
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.SuperBuilder
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.Comment
;
/**
/**
* @author tml
* @author tml
* @version 1.0
* @version 1.0
* @date 2022/5/2
0 17:42
* @date 2022/5/2
4 11:21
*/
*/
@Getter
@Getter
@Setter
@Setter
@ToString
@ToString
@
Builder
@
SuperBuilder
(
toBuilder
=
true
)
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldNameConstants
@Entity
@Entity
@Table
(
name
=
"BS_THRESHOLD"
)
@Table
(
name
=
"BS_THRESHOLD"
)
@Comment
(
"
风险预警下的阈值设置
"
)
@Comment
(
"
阈值区间信息
"
)
public
class
Threshold
extends
BasicEntity
implements
Serializable
{
public
class
Threshold
extends
BasicEntity
implements
Serializable
{
@Serial
@Serial
private
static
final
long
serialVersionUID
=
5075164198170220832
L
;
private
static
final
long
serialVersionUID
=
3115736944401082777
L
;
@ManyToOne
@ManyToOne
@JoinColumn
(
name
=
"risk_warn_id"
)
@JoinColumn
(
name
=
"risk_warn_id"
)
@Comment
(
"
风险预警
"
)
@Comment
(
"
对应的风险预警信息
"
)
private
RiskWarn
riskWarn
;
private
RiskWarn
riskWarn
;
@Comment
(
"阈值区间起始值"
)
@Comment
(
"阈值区间起始值"
)
private
Integer
min
;
private
String
min
;
@Comment
(
"阈值区间结束值"
)
@Comment
(
"阈值区间结束值"
)
private
Integer
max
;
private
String
max
;
@Comment
(
"阈值区间的类型:1-普通数值,2-百分比,3-仅标志一种状态,如火焰熄灭"
)
private
Integer
type
;
@Comment
(
"阈值状态"
)
@Comment
(
"阈值状态"
)
private
String
status
;
private
Integer
status
;
@Comment
(
"风险等级
:1-红色风险,2-橙色风险,3-黄色风险,4-蓝色风险
"
)
@Comment
(
"风险等级"
)
private
Integer
riskLevel
;
private
Integer
riskLevel
;
}
}
app/src/main/java/com/yiring/app/excel/risk/RiskWarnExcel.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
risk
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.constant.risk.ThresholdStatusEnum
;
import
com.yiring.app.domain.risk.RiskWarn
;
import
com.yiring.app.domain.risk.Threshold
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/24 11:17
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ExcelModel
public
class
RiskWarnExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
535906627975355631L
;
@ExcelColumn
(
title
=
"工区"
,
width
=
15
)
private
String
workAreaName
;
@ExcelColumn
(
title
=
"安装位置"
,
width
=
15
)
private
String
install
;
@ExcelColumn
(
title
=
"监控参数"
,
width
=
15
)
private
String
monitoring
;
@ExcelColumn
(
title
=
"位号"
,
width
=
10
)
private
String
locationNum
;
@ExcelColumn
(
title
=
"量程"
,
width
=
10
)
private
String
range
;
@ExcelColumn
(
title
=
"量程单位"
,
width
=
10
)
private
String
unit
;
@ExcelColumn
(
title
=
"报警值(低低)"
,
width
=
10
)
private
String
lowLow
;
@ExcelColumn
(
title
=
"报警值(低)"
,
width
=
10
)
private
String
low
;
@ExcelColumn
(
title
=
"报警值(高)"
,
width
=
10
)
private
String
high
;
@ExcelColumn
(
title
=
"报警值(高高)"
,
width
=
10
)
private
String
highHigh
;
@ExcelColumn
(
title
=
"报警值(熄灭)"
,
width
=
10
)
private
String
flame
;
@ExcelColumn
(
title
=
"备注"
,
width
=
40
)
private
String
remark
;
public
static
RiskWarnExcel
transform
(
RiskWarn
riskWarn
)
{
String
range
=
riskWarn
.
getMin
()
+
" - "
+
riskWarn
.
getMax
();
Map
<
Integer
,
List
<
Threshold
>>
map
=
riskWarn
.
getThresholds
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
Threshold:
:
getStatus
));
String
lowLow
=
map
.
get
(
ThresholdStatusEnum
.
LOW_LOW
.
getCode
()).
get
(
0
).
getMin
();
String
low
=
map
.
get
(
ThresholdStatusEnum
.
LOW
.
getCode
()).
get
(
0
).
getMin
();
String
high
=
map
.
get
(
ThresholdStatusEnum
.
HIGH
.
getCode
()).
get
(
0
).
getMin
();
String
highHigh
=
map
.
get
(
ThresholdStatusEnum
.
HIGH_HIGH
.
getCode
()).
get
(
0
).
getMin
();
String
flame
=
map
.
get
(
ThresholdStatusEnum
.
FLAME_EXTINGUISH
.
getCode
()).
get
(
0
).
getMin
();
return
RiskWarnExcel
.
builder
()
.
workAreaName
(
riskWarn
.
getWorkArea
().
getWorkAreaName
())
.
install
(
riskWarn
.
getInstall
())
.
monitoring
(
riskWarn
.
getMonitoring
())
.
locationNum
(
riskWarn
.
getLocationNum
())
.
range
(
range
)
.
unit
(
riskWarn
.
getUnit
())
.
lowLow
(
lowLow
)
.
low
(
low
)
.
high
(
high
)
.
highHigh
(
highHigh
)
.
flame
(
flame
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/location/rule/RuleParam.java
浏览文件 @
f39e4fc3
...
@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModel;
...
@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.
HashSe
t
;
import
java.util.
ArrayLis
t
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -58,23 +58,25 @@ public class RuleParam implements Serializable {
...
@@ -58,23 +58,25 @@ public class RuleParam implements Serializable {
*/
*/
public
void
setTimeAndNumberAll
()
{
public
void
setTimeAndNumberAll
()
{
Integer
number
=
timeAndNumber
.
get
(
0
).
getNumber
();
Integer
number
=
timeAndNumber
.
get
(
0
).
getNumber
();
HashSet
<
TimeParam
>
set
=
new
HashSet
<>();
List
<
TimeParam
>
list
=
TimeUtil
.
WEEK
TimeParam
timeParam
=
TimeParam
.
builder
().
beginTime
(
"00:00:00"
).
endTome
(
"23:59:59"
).
build
();
.
stream
()
timeAndNumber
=
.
map
(
e
->
TimeParam
.
builder
().
week
(
e
).
beginTime
(
"00:00:00"
).
endTime
(
"23:59:59"
).
build
())
TimeUtil
.
WEEK
.
collect
(
Collectors
.
toList
());
.
stream
()
TimeAndNumberParam
timeAndNumberParam
=
TimeAndNumberParam
.
builder
().
number
(
number
).
time
(
list
).
build
();
.
map
(
e
->
TimeAndNumberParam
.
builder
().
week
(
e
).
number
(
number
).
time
(
set
).
build
())
List
<
TimeAndNumberParam
>
arrayList
=
new
ArrayList
<>();
.
collect
(
Collectors
.
toList
());
arrayList
.
add
(
timeAndNumberParam
);
timeAndNumber
=
arrayList
;
}
}
public
void
setTimeAndUserAll
()
{
public
void
setTimeAndUserAll
()
{
Set
<
RelevanceUserParam
>
user
=
timeAndUser
.
get
(
0
).
getUser
();
Set
<
RelevanceUserParam
>
user
=
timeAndUser
.
get
(
0
).
getUser
();
HashSet
<
TimeParam
>
set
=
new
HashSet
<>();
List
<
TimeParam
>
list
=
TimeUtil
.
WEEK
TimeParam
timeParam
=
TimeParam
.
builder
().
beginTime
(
"00:00:00"
).
endTome
(
"23:59:59"
).
build
();
.
stream
()
timeAndUser
=
.
map
(
e
->
TimeParam
.
builder
().
week
(
e
).
beginTime
(
"00:00:00"
).
endTime
(
"23:59:59"
).
build
())
TimeUtil
.
WEEK
.
collect
(
Collectors
.
toList
());
.
stream
()
TimeAndUserParam
timeAndUserParam
=
TimeAndUserParam
.
builder
().
user
(
user
).
time
(
list
).
build
();
.
map
(
e
->
TimeAndUserParam
.
builder
().
week
(
e
).
user
(
user
).
time
(
set
).
build
())
List
<
TimeAndUserParam
>
arrayList
=
new
ArrayList
<>();
.
collect
(
Collectors
.
toList
());
arrayList
.
add
(
timeAndUserParam
);
timeAndUser
=
arrayList
;
}
}
}
}
app/src/main/java/com/yiring/app/param/location/rule/TimeAndNumberParam.java
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Set
;
import
java.util.List
;
import
javax.validation.constraints.Pattern
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -28,11 +26,7 @@ public class TimeAndNumberParam implements Serializable {
...
@@ -28,11 +26,7 @@ public class TimeAndNumberParam implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
-
6796977663003158881L
;
private
static
final
long
serialVersionUID
=
-
6796977663003158881L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
private
List
<
TimeParam
>
time
;
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
week
;
private
Set
<
TimeParam
>
time
;
@ApiModelProperty
(
value
=
"人数"
,
example
=
"100"
)
@ApiModelProperty
(
value
=
"人数"
,
example
=
"100"
)
private
Integer
number
;
private
Integer
number
;
...
...
app/src/main/java/com/yiring/app/param/location/rule/TimeAndUserParam.java
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
package
com
.
yiring
.
app
.
param
.
location
.
rule
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
import
javax.validation.constraints.Pattern
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -28,11 +26,7 @@ public class TimeAndUserParam implements Serializable {
...
@@ -28,11 +26,7 @@ public class TimeAndUserParam implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
-
7037620599825901175L
;
private
static
final
long
serialVersionUID
=
-
7037620599825901175L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
private
List
<
TimeParam
>
time
;
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
week
;
private
Set
<
TimeParam
>
time
;
private
Set
<
RelevanceUserParam
>
user
;
private
Set
<
RelevanceUserParam
>
user
;
}
}
app/src/main/java/com/yiring/app/param/location/rule/TimeParam.java
浏览文件 @
f39e4fc3
...
@@ -27,11 +27,15 @@ public class TimeParam implements Serializable {
...
@@ -27,11 +27,15 @@ public class TimeParam implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
3657642913058744140L
;
private
static
final
long
serialVersionUID
=
3657642913058744140L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
week
;
@ApiModelProperty
(
value
=
"起始时间"
,
example
=
"08:00:00"
)
@ApiModelProperty
(
value
=
"起始时间"
,
example
=
"08:00:00"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
beginTime
;
private
String
beginTime
;
@ApiModelProperty
(
value
=
"终止时间"
,
example
=
"18:00:00"
)
@ApiModelProperty
(
value
=
"终止时间"
,
example
=
"18:00:00"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
endT
o
me
;
private
String
endT
i
me
;
}
}
app/src/main/java/com/yiring/app/param/risk/RiskWarnAddParam.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
risk
;
import
com.yiring.app.domain.risk.RiskWarn
;
import
com.yiring.app.domain.risk.Threshold
;
import
com.yiring.app.domain.workArea.WorkArea
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
import
lombok.Data
;
import
org.locationtech.jts.geom.Point
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 15:04
*/
@ApiModel
(
"风险预警管理"
)
@Data
public
class
RiskWarnAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
322828089862736394L
;
@ApiModelProperty
(
value
=
"所属工区id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"工区不能为空"
)
private
Long
workAreaId
;
@ApiModelProperty
(
value
=
"安装位置"
,
example
=
"组件厂区二楼"
,
required
=
true
)
@NotNull
(
message
=
"安装位置不能为空"
)
private
String
install
;
@ApiModelProperty
(
value
=
"经纬度"
,
required
=
true
,
dataType
=
"java.lang.String"
)
@NotNull
(
message
=
"经纬度不能为空"
)
private
Point
point
;
@ApiModelProperty
(
value
=
"监控参数"
,
example
=
"有毒气体报警器"
,
required
=
true
)
@NotNull
(
message
=
"监控参数不能为空"
)
private
String
monitoring
;
@ApiModelProperty
(
value
=
"位号"
,
example
=
"AT-4736"
,
required
=
true
)
@NotNull
(
message
=
"位号不能为空"
)
private
String
locationNum
;
@ApiModelProperty
(
value
=
"量程起始值"
,
example
=
"1.3"
)
@Pattern
(
regexp
=
RegEx
.
DIGIT_DECIMALS
,
message
=
"量程的数字格式不正确,只能为整数或小数"
)
private
BigDecimal
min
;
@ApiModelProperty
(
value
=
"量程结束值"
,
example
=
"50.2"
)
@Pattern
(
regexp
=
RegEx
.
DIGIT_DECIMALS
,
message
=
"量程的数字格式不正确,只能为整数或小数"
)
private
BigDecimal
max
;
@ApiModelProperty
(
value
=
"量程单位"
,
example
=
"ppm"
)
private
String
unit
;
private
List
<
ThresholdParam
>
thresholds
;
public
RiskWarn
transform
()
{
WorkArea
workArea
=
new
WorkArea
();
workArea
.
setId
(
workAreaId
);
List
<
Threshold
>
list
=
thresholds
.
stream
().
map
(
ThresholdParam:
:
transform
).
collect
(
Collectors
.
toList
());
return
RiskWarn
.
builder
()
.
workArea
(
workArea
)
.
install
(
install
)
.
point
(
point
)
.
monitoring
(
monitoring
)
.
locationNum
(
locationNum
)
.
min
(
min
)
.
max
(
max
)
.
unit
(
unit
)
.
enable
(
true
)
.
thresholds
(
list
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/risk/RiskWarnConditionParam.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
risk
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.Data
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 17:23
*/
@ApiModel
(
"风险预警管理"
)
@Data
public
class
RiskWarnConditionParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6509069447006234492L
;
@ApiModelProperty
(
value
=
"工区id"
,
example
=
"1"
)
private
Long
workAreaId
;
@ApiModelProperty
(
value
=
"监控参数"
,
example
=
"有毒气体报警器"
)
private
String
monitoring
;
}
app/src/main/java/com/yiring/app/param/risk/RiskWarnModifyParam.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
risk
;
import
com.yiring.app.domain.risk.RiskWarn
;
import
com.yiring.app.domain.risk.Threshold
;
import
com.yiring.app.domain.workArea.WorkArea
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.Data
;
import
org.locationtech.jts.geom.Point
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 15:04
*/
@ApiModel
(
"风险预警管理"
)
@Data
public
class
RiskWarnModifyParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1728064881609580496L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
private
Long
id
;
@ApiModelProperty
(
value
=
"所属工区id"
,
example
=
"1"
,
required
=
true
)
private
Long
workAreaId
;
@ApiModelProperty
(
value
=
"安装位置"
,
example
=
"组件厂区二楼"
,
required
=
true
)
private
String
install
;
@ApiModelProperty
(
value
=
"经纬度"
,
required
=
true
,
dataType
=
"java.lang.String"
)
private
Point
point
;
@ApiModelProperty
(
value
=
"监控参数"
,
example
=
"有毒气体报警器"
,
required
=
true
)
private
String
monitoring
;
@ApiModelProperty
(
value
=
"位号"
,
example
=
"AT-4736"
,
required
=
true
)
private
String
locationNum
;
@ApiModelProperty
(
value
=
"量程起始值"
,
example
=
"1.3"
)
private
BigDecimal
min
;
@ApiModelProperty
(
value
=
"量程结束值"
,
example
=
"50.2"
)
private
BigDecimal
max
;
@ApiModelProperty
(
value
=
"量程单位"
,
example
=
"ppm"
)
private
String
unit
;
private
List
<
ThresholdParam
>
thresholds
;
public
RiskWarn
transform
()
{
WorkArea
workArea
=
new
WorkArea
();
workArea
.
setId
(
workAreaId
);
List
<
Threshold
>
list
=
thresholds
.
stream
().
map
(
ThresholdParam:
:
transform
).
collect
(
Collectors
.
toList
());
return
RiskWarn
.
builder
()
.
id
(
id
)
.
workArea
(
workArea
)
.
install
(
install
)
.
point
(
point
)
.
monitoring
(
monitoring
)
.
locationNum
(
locationNum
)
.
min
(
min
)
.
max
(
max
)
.
unit
(
unit
)
.
enable
(
true
)
.
thresholds
(
list
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/risk/ThresholdParam.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
risk
;
import
com.yiring.app.domain.risk.Threshold
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
/**
* @author tml
* @version 1.0
* @date 2022/5/20 17:42
*/
@ApiModel
(
"风险预警管理"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
ThresholdParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5075164198170220832L
;
@ApiModelProperty
(
value
=
"阈值区间起始值"
,
example
=
"1.5"
)
private
String
min
;
@ApiModelProperty
(
value
=
"阈值区间结束值"
,
example
=
"20.2"
)
private
String
max
;
@ApiModelProperty
(
value
=
"阈值状态:1-低低,2-低,3-高,4-高高,5-熄灭"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"风险等级:1-红色风险,2-橙色风险,3-黄色风险,4-蓝色风险"
,
example
=
"1"
)
private
Integer
riskLevel
;
public
Threshold
transform
()
{
return
Threshold
.
builder
().
min
(
min
).
max
(
max
).
status
(
status
).
riskLevel
(
riskLevel
).
build
();
}
}
app/src/main/java/com/yiring/app/service/risk/RiskWarnService.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
risk
;
import
com.yiring.app.param.risk.RiskWarnAddParam
;
import
com.yiring.app.param.risk.RiskWarnConditionParam
;
import
com.yiring.app.param.risk.RiskWarnModifyParam
;
import
com.yiring.app.vo.risk.RiskWarnDetailVo
;
import
com.yiring.app.vo.risk.RiskWarnVo
;
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
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 17:42
*/
public
interface
RiskWarnService
{
/**
* 添加一条
* @param param 风险预警信息
* @return 是否成功
*/
Result
<
String
>
addOne
(
@Valid
RiskWarnAddParam
param
);
/**
* 修改一条
* @param param 风险预警信息
* @return 是否成功
*/
Result
<
String
>
modifyOne
(
@Valid
RiskWarnModifyParam
param
);
/**
* 删除一条
* @param idParam id
* @return 是否成功
*/
Result
<
String
>
removeOne
(
@Valid
IdParam
idParam
);
/**
* 查询一条
* @param idParam id
* @return 风险预警详细信息
*/
Result
<
RiskWarnDetailVo
>
findOne
(
@Valid
IdParam
idParam
);
/**
* 查询列表
* @param conditionParam 条件
* @param pageParam 分页参数
* @return 列表
*/
Result
<
PageVo
<
RiskWarnVo
>>
findList
(
@Valid
RiskWarnConditionParam
conditionParam
,
@Valid
PageParam
pageParam
);
/**
* 导出
* @param conditionParam 条件
* @param response response
*/
void
exportRiskWarn
(
@Valid
RiskWarnConditionParam
conditionParam
,
HttpServletResponse
response
);
/**
* 导入
* @param file excel文件
* @return 是否成功
*/
Result
<
String
>
importRiskWarn
(
MultipartFile
file
);
/**
* 导出模板
* @param response response
*/
void
exportTemplate
(
HttpServletResponse
response
);
/**
* 批量启用或停用
* @param ids ids
* @param enable 启用:true-启用,false-停用
* @return 是否成功
*/
Result
<
String
>
batchEnable
(
Set
<
Long
>
ids
,
boolean
enable
);
}
app/src/main/java/com/yiring/app/service/risk/impl/RiskWarnServiceImpl.java
0 → 100644
浏览文件 @
f39e4fc3
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/vo/location/rule/RuleVo.java
浏览文件 @
f39e4fc3
...
@@ -36,6 +36,7 @@ public class RuleVo implements Serializable {
...
@@ -36,6 +36,7 @@ public class RuleVo implements Serializable {
@ApiModelProperty
(
value
=
"选择的播放语音名称"
,
example
=
"紧急语音"
)
@ApiModelProperty
(
value
=
"选择的播放语音名称"
,
example
=
"紧急语音"
)
private
String
voiceName
;
private
String
voiceName
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"选择的播放设备id"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"选择的播放设备id"
,
example
=
"1"
)
private
Long
playEquipmentId
;
private
Long
playEquipmentId
;
...
...
app/src/main/java/com/yiring/app/vo/location/rule/TimeAndNumberVo.java
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
location
.
rule
;
package
com
.
yiring
.
app
.
vo
.
location
.
rule
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Set
;
import
java.util.Set
;
import
javax.validation.constraints.Pattern
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -28,10 +26,6 @@ public class TimeAndNumberVo implements Serializable {
...
@@ -28,10 +26,6 @@ public class TimeAndNumberVo implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
-
6796977663003158881L
;
private
static
final
long
serialVersionUID
=
-
6796977663003158881L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
@Pattern
(
regexp
=
RegEx
.
TIME_RULE
,
message
=
"时间格式不正确"
)
private
String
week
;
private
Set
<
TimeVo
>
time
;
private
Set
<
TimeVo
>
time
;
@ApiModelProperty
(
value
=
"人数"
,
example
=
"100"
)
@ApiModelProperty
(
value
=
"人数"
,
example
=
"100"
)
...
...
app/src/main/java/com/yiring/app/vo/location/rule/TimeAndUserVo.java
浏览文件 @
f39e4fc3
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
package
com
.
yiring
.
app
.
vo
.
location
.
rule
;
package
com
.
yiring
.
app
.
vo
.
location
.
rule
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Set
;
import
java.util.Set
;
...
@@ -26,9 +25,6 @@ public class TimeAndUserVo implements Serializable {
...
@@ -26,9 +25,6 @@ public class TimeAndUserVo implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
-
7037620599825901175L
;
private
static
final
long
serialVersionUID
=
-
7037620599825901175L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
private
String
week
;
private
Set
<
TimeVo
>
time
;
private
Set
<
TimeVo
>
time
;
private
Set
<
RelevanceUserVo
>
user
;
private
Set
<
RelevanceUserVo
>
user
;
...
...
app/src/main/java/com/yiring/app/vo/location/rule/TimeVo.java
浏览文件 @
f39e4fc3
...
@@ -25,9 +25,12 @@ public class TimeVo implements Serializable {
...
@@ -25,9 +25,12 @@ public class TimeVo implements Serializable {
@Serial
@Serial
private
static
final
long
serialVersionUID
=
-
3275638425715878794L
;
private
static
final
long
serialVersionUID
=
-
3275638425715878794L
;
@ApiModelProperty
(
value
=
"星期"
,
example
=
"星期一"
)
private
String
week
;
@ApiModelProperty
(
value
=
"起始时间"
,
example
=
"08:00:00"
)
@ApiModelProperty
(
value
=
"起始时间"
,
example
=
"08:00:00"
)
private
String
beginTime
;
private
String
beginTime
;
@ApiModelProperty
(
value
=
"终止时间"
,
example
=
"18:00:00"
)
@ApiModelProperty
(
value
=
"终止时间"
,
example
=
"18:00:00"
)
private
String
endT
o
me
;
private
String
endT
i
me
;
}
}
app/src/main/java/com/yiring/app/vo/risk/RiskWarnDetailVo.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
risk
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.risk.RiskWarn
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 16:06
*/
@ApiModel
(
"风险预警管理"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
RiskWarnDetailVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
519127002530795898L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"工区名称"
,
example
=
"组装工区"
)
private
String
workAreaName
;
@ApiModelProperty
(
value
=
"安装位置"
,
example
=
"组装厂区二楼"
)
private
String
install
;
@ApiModelProperty
(
value
=
"监控参数"
,
example
=
"有毒气体报警器"
)
private
String
monitoring
;
@ApiModelProperty
(
value
=
"位号"
,
example
=
"AT-4736"
)
private
String
locationNum
;
@ApiModelProperty
(
value
=
"量程"
,
example
=
"0-100PPm"
)
private
String
range
;
@ApiModelProperty
(
value
=
"量程单位"
,
example
=
"PPm"
)
private
String
unit
;
@ApiModelProperty
(
value
=
"是否启用"
,
example
=
"true"
)
private
Boolean
enable
;
private
List
<
ThresholdVo
>
thresholdVos
;
public
static
RiskWarnDetailVo
transform
(
RiskWarn
riskWarn
)
{
List
<
ThresholdVo
>
list
=
riskWarn
.
getThresholds
()
.
stream
()
.
map
(
ThresholdVo:
:
transform
)
.
collect
(
Collectors
.
toList
());
String
range
=
riskWarn
.
getMin
()
+
"-"
+
riskWarn
.
getMax
();
return
RiskWarnDetailVo
.
builder
()
.
id
(
riskWarn
.
getId
())
.
workAreaName
(
riskWarn
.
getWorkArea
().
getWorkAreaName
())
.
install
(
riskWarn
.
getInstall
())
.
monitoring
(
riskWarn
.
getMonitoring
())
.
locationNum
(
riskWarn
.
getLocationNum
())
.
range
(
range
)
.
unit
(
riskWarn
.
getUnit
())
.
enable
(
riskWarn
.
getEnable
())
.
thresholdVos
(
list
)
.
build
();
}
}
app/src/main/java/com/yiring/app/vo/risk/RiskWarnVo.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
risk
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.risk.RiskWarn
;
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
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 15:40
*/
@ApiModel
(
"风险预警管理"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
RiskWarnVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6006976424270409054L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"工区名称"
,
example
=
"组装工区"
)
private
String
workAreaName
;
@ApiModelProperty
(
value
=
"安装位置"
,
example
=
"组装厂区二楼"
)
private
String
install
;
@ApiModelProperty
(
value
=
"监控参数"
,
example
=
"有毒气体报警器"
)
private
String
monitoring
;
@ApiModelProperty
(
value
=
"位号"
,
example
=
"AT-4736"
)
private
String
locationNum
;
@ApiModelProperty
(
value
=
"量程"
,
example
=
"0-100PPm"
)
private
String
range
;
@ApiModelProperty
(
value
=
"是否启用"
,
example
=
"true"
)
private
Boolean
enable
;
public
static
RiskWarnVo
transform
(
RiskWarn
riskWarn
)
{
String
range
=
riskWarn
.
getMin
().
toString
()
+
"-"
+
riskWarn
.
getMax
().
toString
();
return
RiskWarnVo
.
builder
()
.
id
(
riskWarn
.
getId
())
.
workAreaName
(
riskWarn
.
getWorkArea
().
getWorkAreaName
())
.
install
(
riskWarn
.
getInstall
())
.
monitoring
(
riskWarn
.
getMonitoring
())
.
locationNum
(
riskWarn
.
getLocationNum
())
.
range
(
range
)
.
enable
(
riskWarn
.
getEnable
())
.
build
();
}
}
app/src/main/java/com/yiring/app/vo/risk/ThresholdVo.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
risk
;
import
com.yiring.app.constant.rehearsal.RiskLevelEnum
;
import
com.yiring.app.domain.risk.Threshold
;
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
;
/**
* @author tml
* @version 1.0
* @date 2022/5/20 17:42
*/
@ApiModel
(
"风险预警管理"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
ThresholdVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5075164198170220832L
;
@ApiModelProperty
(
value
=
"阈值区间起始值"
,
example
=
"1.5"
)
private
String
min
;
@ApiModelProperty
(
value
=
"阈值区间结束值"
,
example
=
"20.2"
)
private
String
max
;
@ApiModelProperty
(
value
=
"阈值状态"
,
example
=
"低低"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"风险等级:1-红色风险,2-橙色风险,3-黄色风险,4-蓝色风险"
,
example
=
"1"
)
private
String
riskLevel
;
public
static
ThresholdVo
transform
(
Threshold
threshold
)
{
return
ThresholdVo
.
builder
()
.
min
(
threshold
.
getMin
())
.
max
(
threshold
.
getMax
())
.
status
(
threshold
.
getStatus
())
.
riskLevel
(
RiskLevelEnum
.
getByCode
(
threshold
.
getRiskLevel
()))
.
build
();
}
}
app/src/main/java/com/yiring/app/web/risk/RiskWarnController.java
0 → 100644
浏览文件 @
f39e4fc3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
risk
;
import
com.yiring.app.constant.rehearsal.RiskLevelEnum
;
import
com.yiring.app.constant.risk.ThresholdStatusEnum
;
import
com.yiring.app.domain.alarm.AlarmType
;
import
com.yiring.app.param.risk.RiskWarnAddParam
;
import
com.yiring.app.param.risk.RiskWarnConditionParam
;
import
com.yiring.app.param.risk.RiskWarnModifyParam
;
import
com.yiring.app.service.risk.RiskWarnService
;
import
com.yiring.app.vo.CodeNameVo
;
import
com.yiring.app.vo.risk.RiskWarnDetailVo
;
import
com.yiring.app.vo.risk.RiskWarnVo
;
import
com.yiring.auth.param.IdsParam
;
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
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.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author tml
* @version 1.0
* @date 2022/5/23 17:16
*/
@Api
(
tags
=
"风险预警管理"
)
@Validated
@RestController
@RequestMapping
(
"/risk/warn"
)
public
class
RiskWarnController
{
@Resource
private
RiskWarnService
riskWarnService
;
@ApiOperation
(
"添加一条"
)
@PostMapping
(
"/addOne"
)
public
Result
<
String
>
addOne
(
@Valid
RiskWarnAddParam
param
)
{
return
riskWarnService
.
addOne
(
param
);
}
@ApiOperation
(
"修改一条"
)
@PostMapping
(
"/modifyOne"
)
public
Result
<
String
>
modifyOne
(
@Valid
RiskWarnModifyParam
param
)
{
return
riskWarnService
.
modifyOne
(
param
);
}
@ApiOperation
(
"删除一条"
)
@PostMapping
(
"/removeOne"
)
public
Result
<
String
>
removeOne
(
@Valid
IdParam
idParam
)
{
return
riskWarnService
.
removeOne
(
idParam
);
}
@ApiOperation
(
"查询一条"
)
@GetMapping
(
"/findOne"
)
public
Result
<
RiskWarnDetailVo
>
findOne
(
@Valid
IdParam
idParam
)
{
return
riskWarnService
.
findOne
(
idParam
);
}
@ApiOperation
(
"查询列表"
)
@GetMapping
(
"/findList"
)
public
Result
<
PageVo
<
RiskWarnVo
>>
findList
(
@Valid
RiskWarnConditionParam
conditionParam
,
@Valid
PageParam
pageParam
)
{
if
(
Objects
.
isNull
(
pageParam
.
getSortField
()))
{
pageParam
.
setSortField
(
AlarmType
.
Fields
.
createTime
);
pageParam
.
setSortOrder
(
Sort
.
Direction
.
DESC
);
}
return
riskWarnService
.
findList
(
conditionParam
,
pageParam
);
}
@ApiOperation
(
"查询阈值状态下拉框"
)
@GetMapping
(
"/findThresholds"
)
public
Result
<
PageVo
<
CodeNameVo
>>
findThresholds
()
{
List
<
CodeNameVo
>
list
=
ThresholdStatusEnum
.
getAll
();
PageVo
<
CodeNameVo
>
pageVo
=
PageVo
.
build
(
list
,
list
.
size
());
return
Result
.
ok
(
pageVo
);
}
@ApiOperation
(
"查询风险等级下拉框"
)
@GetMapping
(
"/findRiskLevels"
)
public
Result
<
PageVo
<
CodeNameVo
>>
findRiskLevels
()
{
List
<
CodeNameVo
>
list
=
RiskLevelEnum
.
getAll
();
PageVo
<
CodeNameVo
>
pageVo
=
PageVo
.
build
(
list
,
list
.
size
());
return
Result
.
ok
(
pageVo
);
}
@ApiOperation
(
value
=
"导出"
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
@GetMapping
(
"/exportRiskWarn"
)
public
void
exportRiskWarn
(
@Valid
RiskWarnConditionParam
conditionParam
,
HttpServletResponse
response
)
{
riskWarnService
.
exportRiskWarn
(
conditionParam
,
response
);
}
@ApiOperation
(
"导入"
)
@PostMapping
(
"/importRiskWarn"
)
public
Result
<
String
>
importRiskWarn
(
MultipartFile
file
)
{
return
riskWarnService
.
importRiskWarn
(
file
);
}
@ApiOperation
(
value
=
"导出模板"
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
@GetMapping
(
"/exportTemplate"
)
public
void
exportTemplate
(
HttpServletResponse
response
)
{
riskWarnService
.
exportTemplate
(
response
);
}
@ApiOperation
(
"批量启用或停用"
)
@ApiImplicitParam
(
value
=
"启用:true-启用,false-停用"
,
required
=
true
)
@PostMapping
(
"/batchEnable"
)
public
Result
<
String
>
batchEnable
(
@Valid
IdsParam
idsParam
,
boolean
enable
)
{
return
riskWarnService
.
batchEnable
(
idsParam
.
toIds
(),
enable
);
}
}
basic-common/core/src/main/java/com/yiring/common/constant/RegEx.java
浏览文件 @
f39e4fc3
...
@@ -33,4 +33,9 @@ public class RegEx {
...
@@ -33,4 +33,9 @@ public class RegEx {
public
static
final
String
WEEK_RULE
=
"^星期[一二三四五六日]$"
;
public
static
final
String
WEEK_RULE
=
"^星期[一二三四五六日]$"
;
public
static
final
String
COLOUR_RGB
=
"^#(\\d|[A-F a-f]){6}$"
;
public
static
final
String
COLOUR_RGB
=
"^#(\\d|[A-F a-f]){6}$"
;
/**
* 数字或小数
*/
public
static
final
String
DIGIT_DECIMALS
=
"^(-?\\d+)|(-?\\d+.\\d+)$"
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论