Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
8645f62d
Commit
8645f62d
authored
Feb 17, 2023
by
KeYong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop_dl_plan6_temp' of…
Merge branch 'develop_dl_plan6_temp' of
http://39.98.45.134:8090/moa/amos-boot-biz
into develop_dl_plan6_temp
parents
cd8710a7
1a6a52de
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
363 additions
and
84 deletions
+363
-84
IotDataVO.java
...ain/java/com/yeejoin/equipmanage/common/vo/IotDataVO.java
+2
-0
OrganizationMapper.xml
...-jcs-api/src/main/resources/mapper/OrganizationMapper.xml
+1
-18
SupervisionConfigureController.java
...quipmanage/controller/SupervisionConfigureController.java
+29
-40
IEmergencyService.java
...va/com/yeejoin/equipmanage/service/IEmergencyService.java
+2
-0
IPressurePumpService.java
...com/yeejoin/equipmanage/service/IPressurePumpService.java
+34
-0
EmergencyServiceImpl.java
...eejoin/equipmanage/service/impl/EmergencyServiceImpl.java
+42
-5
MqttReceiveServiceImpl.java
...join/equipmanage/service/impl/MqttReceiveServiceImpl.java
+6
-0
PressurePumpServiceImpl.java
...oin/equipmanage/service/impl/PressurePumpServiceImpl.java
+89
-0
CheckController.java
...join/amos/patrol/business/controller/CheckController.java
+29
-13
ControlScreenController.java
...s/patrol/business/controller/ControlScreenController.java
+37
-0
PlanTaskMapper.java
...ejoin/amos/patrol/business/dao/mapper/PlanTaskMapper.java
+7
-0
FeignBasicAuthRequestInterceptor.java
...trol/business/feign/FeignBasicAuthRequestInterceptor.java
+4
-4
CheckInfoPageParam.java
...eejoin/amos/patrol/business/param/CheckInfoPageParam.java
+2
-0
PlanTaskServiceImpl.java
...mos/patrol/business/service/impl/PlanTaskServiceImpl.java
+5
-0
IPlanTaskService.java
.../amos/patrol/business/service/intfc/IPlanTaskService.java
+7
-0
nameKeyInfo.json
...oot-system-equip/src/main/resources/json/nameKeyInfo.json
+9
-0
EmergencyMapper.xml
...ystem-equip/src/main/resources/mapper/EmergencyMapper.xml
+2
-1
dbTemplate_check.xml
...-patrol/src/main/resources/db/mapper/dbTemplate_check.xml
+2
-0
dbTemplate_plan_task.xml
...rol/src/main/resources/db/mapper/dbTemplate_plan_task.xml
+49
-0
application-dev.properties
...ils-message/src/main/resources/application-dev.properties
+5
-3
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/vo/IotDataVO.java
View file @
8645f62d
...
...
@@ -21,4 +21,6 @@ public class IotDataVO {
* iot数据上报唯一id
*/
private
String
traceId
;
private
String
createdTime
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/resources/mapper/OrganizationMapper.xml
View file @
8645f62d
...
...
@@ -40,23 +40,6 @@
'当值值长' AS name UNION
(
SELECT
(
SELECT
count( 1 ) AS num
FROM
cb_org_usr cou
LEFT JOIN cb_dynamic_form_instance cdfi ON cou.sequence_nbr = cdfi.instance_id
WHERE
cou.biz_org_type = 'PERSON'
AND cdfi.field_code = 'peopleType'
AND field_value = '1601'
AND cou.is_delete = 0
AND cou.biz_org_code LIKE CONCAT( #{bizOrgCode}, '%' )
) AS `value`,
'驻站消防队' AS name
) UNION
(
SELECT
( SELECT COUNT( 1 ) FROM cb_organization_user cou WHERE cou.emergency_team_id = co.sequence_nbr ) AS
value
,
...
...
@@ -66,7 +49,7 @@
WHERE co.is_delete = 0
ORDER BY
co.sort desc
LIMIT
4
LIMIT
5
)
</select>
<select
id=
"getOrganizationList"
resultType=
"java.util.Map"
>
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/SupervisionConfigureController.java
View file @
8645f62d
...
...
@@ -10,6 +10,7 @@ import com.yeejoin.equipmanage.common.utils.*;
import
com.yeejoin.equipmanage.config.PersonIdentify
;
import
com.yeejoin.equipmanage.fegin.IotFeign
;
import
com.yeejoin.equipmanage.mapper.FireFightingSystemMapper
;
import
com.yeejoin.equipmanage.service.IEmergencyService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmService
;
import
com.yeejoin.equipmanage.service.IFireFightingSystemService
;
import
com.yeejoin.equipmanage.service.ISupervisionVideoService
;
...
...
@@ -23,7 +24,6 @@ import org.springframework.util.CollectionUtils;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.DateTimeUtil
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
...
...
@@ -55,6 +55,9 @@ public class SupervisionConfigureController extends AbstractBaseController {
@Autowired
private
ISupervisionVideoService
supervisionVideoService
;
@Autowired
private
IEmergencyService
emergencyService
;
@Value
(
"${equipment.pressurepump.start}"
)
private
String
pressurePumpStart
;
...
...
@@ -276,14 +279,14 @@ public class SupervisionConfigureController extends AbstractBaseController {
Page
<
Map
<
String
,
Object
>>
pressurePumpInfo
=
fireFightingSystemMapper
.
getPressurePumpInfo
(
page
,
bizOrgCode
,
null
);
List
<
Long
>
startTimeList
=
new
ArrayList
();
List
<
Long
>
stopTimeList
=
new
ArrayList
();
pressurePumpInfo
.
getRecords
().
stream
().
map
(
item
->
{
String
prefix
=
null
;
for
(
Map
<
String
,
Object
>
item
:
pressurePumpInfo
.
getRecords
())
{
item
.
put
(
"monthStartNum"
,
0
);
item
.
put
(
"halfHourStartNum"
,
0
);
item
.
put
(
"twoHourStartNum"
,
0
);
item
.
put
(
"fourHourStartNum"
,
0
);
item
.
put
(
"update_time"
,
"--"
);
item
.
put
(
"equipment_index_name"
,
"--"
);
String
prefix
=
null
;
String
suffix
=
null
;
String
iotCode
=
item
.
get
(
"iot_code"
).
toString
();
if
(
iotCode
.
length
()
>
8
)
{
...
...
@@ -385,6 +388,7 @@ public class SupervisionConfigureController extends AbstractBaseController {
Date
stopDate
=
null
;
if
(
ObjectUtils
.
isEmpty
(
item
.
get
(
"start"
))
&&
ObjectUtils
.
isEmpty
(
item
.
get
(
"stop"
)))
{
item
.
put
(
"equipment_index_name"
,
"无信号"
);
item
.
put
(
"update_time"
,
false
);
}
else
{
if
(!
ObjectUtils
.
isEmpty
(
item
.
get
(
"start"
)))
{
startTime
=
item
.
get
(
"start"
).
toString
().
substring
(
0
,
19
).
replace
(
"T"
,
" "
);
...
...
@@ -404,35 +408,19 @@ public class SupervisionConfigureController extends AbstractBaseController {
}
else
{
item
.
put
(
"stopTime"
,
0
);
}
if
(!
"0"
.
equals
(
item
.
get
(
"startTime"
)))
{
if
(
"0"
.
equals
(
item
.
get
(
"stopTime"
)))
{
long
res
=
nowDateTime
-
start_time
;
long
diffMinute
=
res
/
1000
/
60
;
if
(
diffMinute
>
5
)
{
time
=
false
;
}
item
.
put
(
"upTime"
,
diffMinute
);
item
.
put
(
"equipment_index_name"
,
"启动"
);
item
.
put
(
"update_time"
,
startDate
);
}
else
{
String
startOrStop
=
start_time
-
stop_time
>
0
?
"start"
:
" stop"
;
if
(
"start"
.
equals
(
startOrStop
))
{
long
res
=
nowDateTime
-
start_time
;
long
diffMinute
=
res
/
1000
/
60
;
if
(
diffMinute
>
5
)
{
time
=
false
;
}
item
.
put
(
"upTime"
,
diffMinute
);
item
.
put
(
"equipment_index_name"
,
"启动"
);
item
.
put
(
"update_time"
,
startDate
);
}
else
{
item
.
put
(
"upTime"
,
0
);
item
.
put
(
"equipment_index_name"
,
"停止"
);
item
.
put
(
"update_time"
,
stopDate
);
}
if
(
start_time
-
stop_time
>
0
)
{
long
res
=
nowDateTime
-
start_time
;
long
diffMinute
=
res
/
1000
/
60
;
if
(
diffMinute
>
5
)
{
time
=
false
;
}
item
.
put
(
"upTime"
,
diffMinute
);
item
.
put
(
"equipment_index_name"
,
"启动"
);
item
.
put
(
"update_time"
,
startDate
);
}
else
{
item
.
put
(
"upTime"
,
0
);
item
.
put
(
"equipment_index_name"
,
"停止"
);
item
.
put
(
"update_time"
,
stopDate
);
}
}
item
.
put
(
"stateDesc"
,
Integer
.
parseInt
(
String
.
valueOf
(
item
.
get
(
"isAlarm"
)))
==
0
&&
time
?
"正常"
:
"异常"
);
...
...
@@ -441,17 +429,18 @@ public class SupervisionConfigureController extends AbstractBaseController {
}
else
{
item
.
put
(
"sort"
,
1
);
}
return
item
;
}).
collect
(
Collectors
.
toList
());
List
<
Long
>
startCollect
=
startTimeList
.
stream
().
sorted
(
Comparator
.
reverseOrder
()).
limit
(
1
).
collect
(
Collectors
.
toList
());
List
<
Long
>
stopCollect
=
stopTimeList
.
stream
().
sorted
(
Comparator
.
reverseOrder
()).
limit
(
1
).
collect
(
Collectors
.
toList
());
long
res
=
0L
;
if
(
startCollect
.
size
()
>
0
&&
stopCollect
.
size
()
>
0
)
{
res
=
Math
.
abs
(
startCollect
.
get
(
0
)
-
stopCollect
.
get
(
0
));
}
long
diffMinute
=
0L
;
diffMinute
=
res
/
1000
/
60
;
long
finalDiffMinute
=
diffMinute
;
}
// List<Long> startCollect = startTimeList.stream().sorted(Comparator.reverseOrder()).limit(1).collect(Collectors.toList());
// List<Long> stopCollect = stopTimeList.stream().sorted(Comparator.reverseOrder()).limit(1).collect(Collectors.toList());
// long res = 0L;
// if (startCollect.size() > 0 && stopCollect.size() > 0) {
// res = Math.abs(startCollect.get(0) - stopCollect.get(0));
// }
// long diffMinute = 0L;
// diffMinute = res / 1000 / 60;
// long finalDiffMinute = diffMinute;
double
finalDiffMinute
=
emergencyService
.
getPressurePumpIntervalTime
(
prefix
,
getAppKey
(),
getProduct
(),
getToken
());
pressurePumpInfo
.
getRecords
().
stream
(
).
map
(
item
->
{
item
.
put
(
"startAndStopInterval"
,
finalDiffMinute
);
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/IEmergencyService.java
View file @
8645f62d
...
...
@@ -58,5 +58,7 @@ public interface IEmergencyService {
List
<
Map
<
String
,
Object
>>
getPressurePumpDiagnosticAnalysis
(
String
equipmentCode
,
String
nameKeys
,
String
fieldKey
,
String
bizOrgCode
,
String
appKey
,
String
product
,
String
token
);
double
getPressurePumpIntervalTime
(
String
prefix
,
String
appKey
,
String
product
,
String
token
);
Page
<
Map
<
String
,
Object
>>
alarmList
(
Page
<
Map
<
String
,
Object
>>
page
,
String
bizOrgCode
,
List
<
String
>
types
,
List
<
String
>
emergencyLevels
,
String
name
,
Integer
cleanStatus
,
Integer
handleStatus
);
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/IPressurePumpService.java
0 → 100644
View file @
8645f62d
package
com
.
yeejoin
.
equipmanage
.
service
;
import
com.yeejoin.equipmanage.common.vo.IotDataVO
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author GaoJianqiang
* @date 2023/02/15 16:20
*/
public
interface
IPressurePumpService
{
/**
* redis缓存物联采集数据,内部读取JSON配置指定有效期
* @param message
* @param iotDatalist
*/
void
saveDataToRedis
(
List
<
IotDataVO
>
iotDatalist
);
/**
* 根据key,模糊查询所有的redis缓存数据
* @param key
* @return
*/
List
<
IotDataVO
>
getDataToRedis
(
String
key
);
/**
* 获取指标配置JSON信息集合
* @return
*/
List
<
Map
>
getNameKeyInfoList
();
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/EmergencyServiceImpl.java
View file @
8645f62d
...
...
@@ -393,16 +393,14 @@ public class EmergencyServiceImpl implements IEmergencyService {
String
value
=
intervalDataList
.
get
(
0
).
get
(
pressurePumpStart
);
List
<
Map
<
String
,
String
>>
falseDataList
=
intervalDataList
.
stream
().
filter
(
x
->
x
.
containsKey
(
"createdTime"
)
&&
"false"
.
equalsIgnoreCase
(
x
.
get
(
pressurePumpStart
))).
collect
(
Collectors
.
toList
());
List
<
Map
<
String
,
String
>>
trueDataList
=
intervalDataList
.
stream
().
filter
(
x
->
x
.
containsKey
(
"createdTime"
)
&&
"true"
.
equalsIgnoreCase
(
x
.
get
(
pressurePumpStart
))).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
falseDataList
)
&&
!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
intervalTime1
=
falseDataList
.
get
(
0
).
get
(
"createdTime"
);
if
(!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
intervalTime2
=
trueDataList
.
get
(
0
).
get
(
"createdTime"
);
}
if
(
"true"
.
equalsIgnoreCase
(
value
))
{
if
(!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
durationTime
=
intervalTime2
;
}
if
(!
CollectionUtils
.
isEmpty
(
falseDataList
))
{
try
{
durationTime
=
intervalTime2
;
intervalTime1
=
falseDataList
.
get
(
0
).
get
(
"createdTime"
);
String
stop5BeforeTime
=
DateUtils
.
convertDateToString
(
DateUtils
.
dateAddMinutes
(
DateUtils
.
convertStrToDate
(
intervalTime1
,
"yyyy-MM-dd HH:mm:ss"
),
-
5
),
"yyyy-MM-dd HH:mm:ss"
);
ResponseModel
pipeResponseModel
=
iotFeign
.
selectListNew
(
appKey
,
product
,
token
,
prefix
,
null
,
stop5BeforeTime
,
intervalTime2
,
null
,
"FHS_PipePressureDetector_PipePressure"
);
if
(
200
==
pipeResponseModel
.
getStatus
())
{
...
...
@@ -423,6 +421,10 @@ public class EmergencyServiceImpl implements IEmergencyService {
if
(!
CollectionUtils
.
isEmpty
(
falseDataList
)
&&
!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
durationTime
=
trueDataList
.
get
(
0
).
get
(
"createdTime"
);
nowStrLong
=
falseDataList
.
get
(
0
).
get
(
"createdTime"
);
// 获取最接近最新启动信号,且时间大于启动信号的停止信号时间值
String
finalIntervalTime
=
intervalTime2
;
List
<
Map
<
String
,
String
>>
timeList
=
falseDataList
.
stream
().
filter
(
x
->
DateUtils
.
getDurationSecconds
(
finalIntervalTime
,
x
.
get
(
"createdTime"
),
"yyyy-MM-dd HH:mm:ss"
)
>=
0
).
collect
(
Collectors
.
toList
());
intervalTime1
=
timeList
.
get
(
timeList
.
size
()
-
1
).
get
(
"createdTime"
);
}
}
}
...
...
@@ -457,6 +459,41 @@ public class EmergencyServiceImpl implements IEmergencyService {
}
@Override
public
double
getPressurePumpIntervalTime
(
String
prefix
,
String
appKey
,
String
product
,
String
token
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
ResponseModel
intervalResponseModel
=
iotFeign
.
topSingleField
(
appKey
,
product
,
token
,
"100"
,
prefix
,
null
,
null
,
pressurePumpStart
);
String
nowStrLong
=
DateUtils
.
getNowStrLong
();
String
intervalTime1
=
nowStrLong
;
String
intervalTime2
=
nowStrLong
;
if
(
200
==
intervalResponseModel
.
getStatus
())
{
String
json
=
JSON
.
toJSONString
(
intervalResponseModel
.
getResult
());
List
<
Map
<
String
,
String
>>
intervalDataList
=
(
List
<
Map
<
String
,
String
>>)
JSONArray
.
parse
(
json
);
if
(!
CollectionUtils
.
isEmpty
(
intervalDataList
))
{
String
value
=
intervalDataList
.
get
(
0
).
get
(
pressurePumpStart
);
List
<
Map
<
String
,
String
>>
falseDataList
=
intervalDataList
.
stream
().
filter
(
x
->
x
.
containsKey
(
"createdTime"
)
&&
"false"
.
equalsIgnoreCase
(
x
.
get
(
pressurePumpStart
))).
collect
(
Collectors
.
toList
());
List
<
Map
<
String
,
String
>>
trueDataList
=
intervalDataList
.
stream
().
filter
(
x
->
x
.
containsKey
(
"createdTime"
)
&&
"true"
.
equalsIgnoreCase
(
x
.
get
(
pressurePumpStart
))).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
intervalTime2
=
trueDataList
.
get
(
0
).
get
(
"createdTime"
);
}
if
(
"true"
.
equalsIgnoreCase
(
value
))
{
if
(!
CollectionUtils
.
isEmpty
(
falseDataList
))
{
intervalTime1
=
falseDataList
.
get
(
0
).
get
(
"createdTime"
);
}
}
else
{
if
(!
CollectionUtils
.
isEmpty
(
falseDataList
)
&&
!
CollectionUtils
.
isEmpty
(
trueDataList
))
{
nowStrLong
=
falseDataList
.
get
(
0
).
get
(
"createdTime"
);
// 获取最接近最新启动信号,且时间大于启动信号的停止信号时间值
String
finalIntervalTime
=
intervalTime2
;
List
<
Map
<
String
,
String
>>
timeList
=
falseDataList
.
stream
().
filter
(
x
->
DateUtils
.
getDurationSecconds
(
finalIntervalTime
,
x
.
get
(
"createdTime"
),
"yyyy-MM-dd HH:mm:ss"
)
>=
0
).
collect
(
Collectors
.
toList
());
intervalTime1
=
timeList
.
get
(
timeList
.
size
()
-
1
).
get
(
"createdTime"
);
}
}
}
}
return
Math
.
ceil
((
double
)
Math
.
abs
(
DateUtils
.
getDurationSecconds
(
intervalTime1
,
intervalTime2
,
"yyyy-MM-dd HH:mm:ss"
))
/
60
);
}
@Override
public
Page
<
Map
<
String
,
Object
>>
alarmList
(
Page
<
Map
<
String
,
Object
>>
page
,
String
bizOrgCode
,
List
<
String
>
types
,
List
<
String
>
emergencyLevels
,
String
name
,
Integer
cleanStatus
,
Integer
handleStatus
)
{
return
emergencyMapper
.
alarmList
(
page
,
bizOrgCode
,
types
,
emergencyLevels
,
name
,
cleanStatus
,
handleStatus
);
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/MqttReceiveServiceImpl.java
View file @
8645f62d
...
...
@@ -193,6 +193,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
@Autowired
private
IEquipmentService
equipmentService
;
@Autowired
private
IPressurePumpService
pressurePumpService
;
@Value
(
"${equipManage.name}"
)
private
String
serverName
;
...
...
@@ -313,6 +316,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
log
.
info
(
String
.
format
(
"发送eqm转kafka消息失败:%s"
,
e
.
getMessage
()));
}
// redis缓存指定指标、指定时长物联数据
pressurePumpService
.
saveDataToRedis
(
iotDatalist
);
if
(!
StringUtils
.
isEmpty
(
traceId
))
{
String
finalTraceId
=
traceId
;
List
<
IotDataVO
>
collect
=
iotDatalist
.
stream
().
map
(
x
->
{
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/PressurePumpServiceImpl.java
0 → 100644
View file @
8645f62d
package
com
.
yeejoin
.
equipmanage
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.equipmanage.common.vo.IotDataVO
;
import
com.yeejoin.equipmanage.service.IPressurePumpService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.io.Resource
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
PressurePumpServiceImpl
implements
IPressurePumpService
{
@Autowired
private
RedisUtils
redisUtils
;
@Value
(
"classpath:/json/nameKeyInfo.json"
)
private
Resource
nameKeyInfo
;
// 稳压泵标识
private
static
final
String
PRESSURE_PUMP
=
"PressurePump"
;
@Override
@Async
public
void
saveDataToRedis
(
List
<
IotDataVO
>
iotDatalist
)
{
// 获取配置JSON信息集合
List
<
Map
>
infoList
=
getNameKeyInfoList
();
if
(
CollectionUtils
.
isNotEmpty
(
infoList
))
{
// 过滤出稳压泵标识的信息集合
List
<
Map
>
pumpInfoList
=
infoList
.
stream
().
filter
(
x
->
PRESSURE_PUMP
.
equals
(
x
.
get
(
"code"
))).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
pumpInfoList
))
{
Map
map
=
pumpInfoList
.
get
(
0
);
String
nameKey
=
map
.
get
(
"nameKey"
).
toString
();
int
expire
=
Integer
.
parseInt
(
map
.
get
(
"expire"
).
toString
());
String
nowString
=
DateUtils
.
getDateNowString
();
long
timeMillis
=
System
.
currentTimeMillis
();
for
(
IotDataVO
vo
:
iotDatalist
)
{
String
key
=
vo
.
getKey
();
if
(
nameKey
.
contains
(
vo
.
getKey
()))
{
vo
.
setCreatedTime
(
nowString
);
redisUtils
.
set
(
String
.
join
(
":"
,
PRESSURE_PUMP
,
key
,
String
.
valueOf
(
timeMillis
)),
JSONObject
.
toJSONString
(
vo
),
expire
);
}
List
<
IotDataVO
>
dataToRedis
=
getDataToRedis
(
key
);
}
}
}
}
@Override
public
List
<
IotDataVO
>
getDataToRedis
(
String
key
)
{
List
<
IotDataVO
>
list
=
new
ArrayList
<>();
Set
<
String
>
keys
=
redisUtils
.
getKeys
(
String
.
join
(
":"
,
PRESSURE_PUMP
,
key
));
if
(
CollectionUtils
.
isNotEmpty
(
keys
))
{
keys
.
forEach
(
x
->
{
list
.
add
(
JSON
.
parseObject
(
redisUtils
.
get
(
x
).
toString
(),
IotDataVO
.
class
));
});
// 时间倒序排序
list
.
sort
((
t1
,
t2
)
->
t2
.
getCreatedTime
().
compareTo
(
t1
.
getCreatedTime
()));
}
return
list
;
}
@Override
public
List
<
Map
>
getNameKeyInfoList
()
{
String
json
=
null
;
try
{
json
=
IOUtils
.
toString
(
nameKeyInfo
.
getInputStream
(),
java
.
lang
.
String
.
valueOf
(
StandardCharsets
.
UTF_8
));
}
catch
(
IOException
e
)
{
log
.
error
(
"获取指标JSON配置信息失败:{}"
,
e
.
getMessage
());
}
return
JSONObject
.
parseArray
(
json
,
Map
.
class
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/controller/CheckController.java
View file @
8645f62d
...
...
@@ -9,6 +9,8 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.Executor
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.xml.transform.Result
;
...
...
@@ -19,7 +21,11 @@ import javax.xml.transform.TransformerFactory;
import
javax.xml.transform.stream.StreamResult
;
import
javax.xml.transform.stream.StreamSource
;
import
com.yeejoin.amos.patrol.business.service.intfc.*
;
import
com.yeejoin.amos.patrol.business.util.*
;
import
com.yeejoin.amos.patrol.core.async.TaskExecutorPoolConfig
;
import
com.yeejoin.amos.patrol.core.enums.QueryOperatorEnum
;
import
com.yeejoin.amos.patrol.feign.RemoteSecurityService
;
import
org.apache.commons.io.IOUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -42,18 +48,6 @@ import com.yeejoin.amos.patrol.business.dto.CheckDto;
import
com.yeejoin.amos.patrol.business.param.CheckInfoPageParam
;
import
com.yeejoin.amos.patrol.business.param.CheckRecordParam
;
import
com.yeejoin.amos.patrol.business.param.CheckStatisticalParam
;
import
com.yeejoin.amos.patrol.business.service.intfc.ICheckService
;
import
com.yeejoin.amos.patrol.business.service.intfc.IPlanTaskService
;
import
com.yeejoin.amos.patrol.business.service.intfc.IPointService
;
import
com.yeejoin.amos.patrol.business.service.intfc.ISafety3DDataSendService
;
import
com.yeejoin.amos.patrol.business.util.CheckPageParamUtil
;
import
com.yeejoin.amos.patrol.business.util.CheckParamUtil
;
import
com.yeejoin.amos.patrol.business.util.CommonResponse
;
import
com.yeejoin.amos.patrol.business.util.CommonResponseUtil
;
import
com.yeejoin.amos.patrol.business.util.DaoCriteria
;
import
com.yeejoin.amos.patrol.business.util.FileHelper
;
import
com.yeejoin.amos.patrol.business.util.Toke
;
import
com.yeejoin.amos.patrol.business.util.ToolUtils
;
import
com.yeejoin.amos.patrol.business.vo.CheckAnalysisVo
;
import
com.yeejoin.amos.patrol.business.vo.CheckInfoVo
;
import
com.yeejoin.amos.patrol.common.enums.PlanTaskFinishStatusEnum
;
...
...
@@ -62,6 +56,8 @@ import com.yeejoin.amos.patrol.core.common.request.CommonPageable;
import
com.yeejoin.amos.patrol.core.common.request.CommonRequest
;
import
com.yeejoin.amos.patrol.core.common.response.AppPointCheckRespone
;
import
com.yeejoin.amos.patrol.core.common.response.GraphInitDataResponse
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
com.yeejoin.amos.patrol.core.util.DateUtil
;
import
com.yeejoin.amos.patrol.core.util.StringUtil
;
...
...
@@ -93,6 +89,12 @@ public class CheckController extends AbstractBaseController {
@Autowired
private
ISafety3DDataSendService
is
;
@Autowired
private
RemoteSecurityService
remoteSecurityService
;
@Autowired
private
IMessageService
messageService
;
@Value
(
"${windows.img.path}"
)
private
String
winImgPath
;
...
...
@@ -240,7 +242,21 @@ public class CheckController extends AbstractBaseController {
CheckDto
checkDto
=
checkService
.
saveCheckRecordNew
(
requestParam
,
token
);
if
(
StringUtil
.
isNotEmpty
(
checkDto
)){
asyncTaskf
(
checkDto
.
getCheckId
());
RequestAttributes
requestAttributes
=
RequestContextHolder
.
getRequestAttributes
();
CompletableFuture
<
Void
>
getAddressTask
=
CompletableFuture
.
runAsync
(()
->
{
// 解决异步任务拿不到ThreadLocal里的数据
RequestContextHolder
.
setRequestAttributes
(
requestAttributes
);
// asyncTaskf(checkDto.getCheckId());
try
{
asyncTask
.
pushCheckInfoTo3D
(
checkDto
.
getCheckId
());
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
Toke
toke
=
remoteSecurityService
.
getServerToken
();
messageService
.
pushCheckMessage
(
toke
.
getToke
(),
toke
.
getProduct
(),
toke
.
getAppKey
(),
checkDto
.
getCheckId
());
});
}
is
.
pointCheckInfoPushToB
(
checkDto
.
getCheckId
());
//数字换流站页面刷新
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/controller/ControlScreenController.java
0 → 100644
View file @
8645f62d
package
com
.
yeejoin
.
amos
.
patrol
.
business
.
controller
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.patrol.business.service.intfc.IPlanTaskService
;
import
com.yeejoin.amos.patrol.business.util.CommonResponse
;
import
com.yeejoin.amos.patrol.business.util.CommonResponseUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
javax.annotation.Resource
;
@RestController
@RequestMapping
(
"/api/controlScreen"
)
@Api
(
value
=
"管控屏API"
,
tags
=
"管控屏API"
)
public
class
ControlScreenController
extends
AbstractBaseController
{
@Resource
private
IPlanTaskService
iPlanTaskService
;
@GetMapping
(
"/firePatrolStatics"
)
@ApiOperation
(
value
=
"消防巡检信息统计"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
public
CommonResponse
firePatrolStatics
(
@RequestParam
(
required
=
false
)
String
bizOrgCode
)
{
if
(
StringUtils
.
isEmpty
(
bizOrgCode
))
{
ReginParams
reginParams
=
getSelectedOrgInfo
();
bizOrgCode
=
reginParams
.
getPersonIdentity
().
getCompanyBizOrgCode
();
}
return
CommonResponseUtil
.
success
(
iPlanTaskService
.
firePatrolStatics
(
bizOrgCode
));
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/dao/mapper/PlanTaskMapper.java
View file @
8645f62d
...
...
@@ -191,4 +191,11 @@ public interface PlanTaskMapper extends BaseMapper {
List
<
Plan
>
getPlanIdsByDate
(
@Param
(
"date"
)
Date
date
);
List
<
PlanTask
>
getPlanTaskList
(
@Param
(
"date"
)
Date
date
);
/**
* 消防巡检信息统计
* @param bizOrgCode 业务公司编码
* @return 消防巡检信息统计
*/
List
<
Map
<
String
,
Object
>>
firePatrolStatics
(
@Param
(
"bizOrgCode"
)
String
bizOrgCode
);
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/feign/FeignBasicAuthRequestInterceptor.java
View file @
8645f62d
...
...
@@ -28,11 +28,11 @@ public class FeignBasicAuthRequestInterceptor implements RequestInterceptor {
token
=
request
.
getHeader
(
"X-Access-Token"
);
}
String
product
=
request
.
getHeader
(
"product"
);
String
appKey
=
request
.
getHeader
(
"appKey"
);
template
.
header
(
"X-Access-Token"
,
token
);
template
.
header
(
"token"
,
token
);
template
.
header
(
"product"
,
product
);
template
.
header
(
"appKey"
,
appKey
);
template
.
header
(
"appKey"
,
request
.
getHeader
(
"appKey"
));
template
.
header
(
"product"
,
request
.
getHeader
(
"product"
));
template
.
header
(
"clientType"
,
"feignClient"
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/param/CheckInfoPageParam.java
View file @
8645f62d
...
...
@@ -107,6 +107,8 @@ public class CheckInfoPageParam extends CommonPageable{
private
String
searchDay
;
private
String
isExecute
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/service/impl/PlanTaskServiceImpl.java
View file @
8645f62d
...
...
@@ -1811,4 +1811,9 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
return
result
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
firePatrolStatics
(
String
bizOrgCode
)
{
return
planTaskMapper
.
firePatrolStatics
(
bizOrgCode
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-patrol-biz/src/main/java/com/yeejoin/amos/patrol/business/service/intfc/IPlanTaskService.java
View file @
8645f62d
...
...
@@ -178,4 +178,11 @@ public interface IPlanTaskService {
List
<
Map
<
String
,
Object
>>
queryPlanTaskTimeAxis
(
Long
userId
,
Integer
createDate
);
List
<
Map
<
String
,
Object
>>
queryTimeAxis
(
Long
userId
,
Integer
createDate
);
/**
* 消防巡检信息统计
* @param bizOrgCode 业务公司编码
* @return 消防巡检信息统计
*/
List
<
Map
<
String
,
Object
>>
firePatrolStatics
(
String
bizOrgCode
);
}
amos-boot-system-equip/src/main/resources/json/nameKeyInfo.json
0 → 100644
View file @
8645f62d
[
{
"name"
:
"稳压泵"
,
"code"
:
"PressurePump"
,
"nameKey"
:
"FHS_PressurePump_Start"
,
"expire"
:
14400
}
]
\ No newline at end of file
amos-boot-system-equip/src/main/resources/mapper/EmergencyMapper.xml
View file @
8645f62d
...
...
@@ -122,6 +122,7 @@
END) ELSE wesi.value_label END FROM wl_equipment_specific_index wesi
LEFT JOIN wl_equipment_index wei on wesi.equipment_index_id = wei.id
WHERE wesi.equipment_specific_id = temp.id AND wei.is_trend = 0
AND wesi.value is NOT NULL AND wesi.value
<![CDATA[<>]]>
''
ORDER BY wesi.update_date desc LIMIT 1),'--') AS status,
'0' AS flow
FROM(
...
...
@@ -973,7 +974,7 @@
<select
id=
"getSystemAndCarCount"
resultType=
"java.util.Map"
>
SELECT
(SELECT count(*) FROM f_fire_fighting_system
) fireSystem,
(SELECT count(*) FROM f_fire_fighting_system fs where fs.system_type_code
<![CDATA[<>]]>
'otherSys'
) fireSystem,
(SELECT count(*) FROM wl_car) fireCar
</select>
<select
id=
"getEquipExpiryStatistics"
resultType=
"java.util.Map"
>
...
...
amos-boot-system-patrol/src/main/resources/db/mapper/dbTemplate_check.xml
View file @
8645f62d
...
...
@@ -114,6 +114,7 @@
'%Y-%m-%d'
) = curdate()
</if>
<if
test=
"isExecute!=null and isExecute!='' and isExecute = '3'"
>
and a.is_OK != #{isExecute}
</if>
</trim>
</select>
...
...
@@ -323,6 +324,7 @@
'%Y-%m-%d'
) = curdate()
</if>
<if
test=
"isExecute!=null and isExecute!='' and isExecute = 3"
>
and a.is_OK != #{isExecute}
</if>
</trim>
order by ${orderBy}
<choose>
...
...
amos-boot-system-patrol/src/main/resources/db/mapper/dbTemplate_plan_task.xml
View file @
8645f62d
...
...
@@ -1126,4 +1126,52 @@
and finish_status in (0,1)
and status = 0
</select>
<select
id=
"firePatrolStatics"
resultType=
"java.util.Map"
>
SELECT
ifnull( sum( `p_plan_task`.`point_num` ), 0 ) AS `value`,
'个' AS unit,
'今日应巡查点' AS `name`,
'currentDayTotal' AS `indexKey`,
'xfxc' AS type,
'1' AS `key`
FROM
`p_plan_task`
WHERE
DATE_FORMAT( check_date, '%Y-%m-%d' ) = CURRENT_DATE ()
<if
test=
"bizOrgCode != null and bizOrgCode != ''"
>
AND org_code LIKE CONCAT(#{bizOrgCode}, '%')
</if>
UNION ALL
SELECT
ifnull( sum( `p_plan_task`.`point_num` ), 0 ) AS `value`,
'个' AS unit,
'今日漏查点位' AS `name`,
'currentDayMiss' AS `indexKey`,
'xfxc' AS type,
'2' AS `key`
FROM
`p_plan_task`
WHERE
`finish_status` = 3
AND DATE_FORMAT( check_date, '%Y-%m-%d' ) = CURRENT_DATE ()
<if
test=
"bizOrgCode != null and bizOrgCode != ''"
>
AND org_code LIKE CONCAT(#{bizOrgCode}, '%')
</if>
UNION ALL
SELECT
ifnull( sum( `p_plan_task`.`finish_num` ), 0 ) AS `value`,
'个' AS unit,
'今日已巡查点' AS `name`,
'currentDayPass' AS `indexKey`,
'xfxc' AS type,
'3' AS `key`
FROM
`p_plan_task`
WHERE
DATE_FORMAT( check_date, '%Y-%m-%d' ) = CURRENT_DATE ()
<if
test=
"bizOrgCode != null and bizOrgCode != ''"
>
AND org_code LIKE CONCAT(#{bizOrgCode}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
amos-boot-utils/amos-boot-utils-message/src/main/resources/application-dev.properties
View file @
8645f62d
#注册中心地址
eureka.client.service-url.defaultZone
=
http://172.16.1
1.201
:10001/eureka/
eureka.client.service-url.defaultZone
=
http://172.16.1
0.215
:10001/eureka/
eureka.instance.prefer-ip-address
=
true
management.endpoint.health.show-details
=
always
management.endpoints.web.exposure.include
=
*
...
...
@@ -14,6 +14,7 @@ spring.kafka.bootstrap-servers=172.16.3.100:9092
# 生产者配置
# 设置大于0的值,则客户端会将发送失败的记录重新发送 # 重试次数
spring.kafka.producer.retries
=
1
spring.kafka.producer.bootstrap-servers
=
172.16.10.215:9092
#16K
spring.kafka.producer.batch-size
=
16384
spring.kafka.producer.buffer-memory
=
33554432
...
...
@@ -41,6 +42,7 @@ spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.Str
# latest:重置为分区中最新的offset(消费分区中新产生的数据)
# none:只要有一个分区不存在已提交的offset,就抛出异常
spring.kafka.consumer.group-id
=
zhTestGroup
spring.kafka.consumer.bootstrap-servers
=
172.16.10.215:9092
spring.kafka.consumer.enable-auto-commit
=
false
# 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
# # 自动提交的频率 单位 ms
...
...
@@ -72,7 +74,7 @@ management.health.redis.enabled=false
## emqx
emqx.clean-session
=
true
emqx.client-id
=
${spring.application.name}-${random.int[1024,65536]}
emqx.broker
=
tcp://172.16.1
1.201
:1883
emqx.broker
=
tcp://172.16.1
0.215
:1883
emqx.client-user-name
=
admin
emqx.client-password
=
public
emqx.max-inflight
=
1000
...
...
@@ -81,7 +83,7 @@ emqx.max-inflight=1000
# 下面个配置默认站端 中心级系统的时候注释掉上边 放开下边
#站端配置
#需要监听得kafka消息主题 根据是否是中心极和站端选择需要监听得主题进行配置
kafka.topics
=
null
.topic
kafka.topics
=
null
#需要监听得eqm消息主题 根据是否是中心极和站端选择需要监听得主题进行配置 emq.iot.created,
emq.topic
=
emq.xf.created,emq.iot.created,emq.patrol.created,emq.sign.created,emq.bussSign.created,emq.user.created
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment