Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wj-datacenter-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
jinan
wj-datacenter-platform
Commits
751f96c3
Commit
751f96c3
authored
Jan 17, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 事件方向转向数据结构优化
parent
a8d6d647
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
100 additions
and
99 deletions
+100
-99
EventDataServiceImpl.java
...va/net/wanji/datacenter/service/EventDataServiceImpl.java
+100
-99
No files found.
wj-datacenter-service/src/main/java/net/wanji/datacenter/service/EventDataServiceImpl.java
View file @
751f96c3
...
...
@@ -26,106 +26,107 @@ import java.util.*;
@Slf4j
public
class
EventDataServiceImpl
implements
EventDataService
{
@Resource
private
EventInfoMapper
eventInfoMapper
;
@Resource
private
EventInfoMapper
eventInfoMapper
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
save
(
String
originData
)
{
try
{
Map
<
String
,
Integer
>
crossIdGreenIdMap
=
CrossGreenWaveInfoCache
.
crossIdGreenIdMap
;
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
EventDataDTO
eventDataDTO
=
mapper
.
readValue
(
originData
,
EventDataDTO
.
class
);
String
eventId
=
eventDataDTO
.
getEventId
();
// 如果同一时间id更新结束时间和告警状态
if
(
StringUtils
.
isNotBlank
(
eventId
))
{
EventInfoPO
eventInfoPO4DB
=
eventInfoMapper
.
selectByEventSerialNumber
(
eventId
);
if
(
Objects
.
nonNull
(
eventInfoPO4DB
))
{
eventInfoPO4DB
.
setModifyTime
(
new
Date
());
eventInfoPO4DB
.
setEndTime
(
eventDataDTO
.
getEventEndTime
());
Integer
eventStatus
=
eventDataDTO
.
getEventStatus
();
eventInfoPO4DB
.
setAlarmStatus
(
eventStatus
);
if
(
Objects
.
equals
(
2
,
eventStatus
)
||
Objects
.
equals
(
3
,
eventStatus
))
{
eventInfoPO4DB
.
setOptStatus
(
1
);
}
setGreenId
(
crossIdGreenIdMap
,
eventInfoPO4DB
,
eventInfoPO4DB
.
getCrossId
());
eventInfoMapper
.
updateOne
(
eventInfoPO4DB
);
}
else
{
EventInfoPO
eventInfoPO
=
getEventInfoPO
(
eventDataDTO
);
eventInfoMapper
.
insertOne
(
eventInfoPO
);
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"事件保存异常:"
,
e
);
throw
new
RuntimeException
(
e
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
save
(
String
originData
)
{
try
{
Map
<
String
,
Integer
>
crossIdGreenIdMap
=
CrossGreenWaveInfoCache
.
crossIdGreenIdMap
;
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
EventDataDTO
eventDataDTO
=
mapper
.
readValue
(
originData
,
EventDataDTO
.
class
);
String
eventId
=
eventDataDTO
.
getEventId
();
// 如果同一时间id更新结束时间和告警状态
if
(
StringUtils
.
isNotBlank
(
eventId
))
{
EventInfoPO
eventInfoPO4DB
=
eventInfoMapper
.
selectByEventSerialNumber
(
eventId
);
if
(
Objects
.
nonNull
(
eventInfoPO4DB
))
{
eventInfoPO4DB
.
setModifyTime
(
new
Date
());
eventInfoPO4DB
.
setEndTime
(
eventDataDTO
.
getEventEndTime
());
Integer
eventStatus
=
eventDataDTO
.
getEventStatus
();
eventInfoPO4DB
.
setAlarmStatus
(
eventStatus
);
if
(
Objects
.
equals
(
2
,
eventStatus
)
||
Objects
.
equals
(
3
,
eventStatus
))
{
eventInfoPO4DB
.
setOptStatus
(
1
);
}
setGreenId
(
crossIdGreenIdMap
,
eventInfoPO4DB
,
eventInfoPO4DB
.
getCrossId
());
eventInfoMapper
.
updateOne
(
eventInfoPO4DB
);
}
else
{
EventInfoPO
eventInfoPO
=
getEventInfoPO
(
eventDataDTO
);
eventInfoMapper
.
insertOne
(
eventInfoPO
);
// websocket
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"事件保存异常:"
,
e
);
throw
new
RuntimeException
(
e
);
}
}
@NotNull
private
static
EventInfoPO
getEventInfoPO
(
EventDataDTO
eventDataDTO
)
throws
Exception
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
Map
<
String
,
Integer
>
crossIdGreenIdMap
=
CrossGreenWaveInfoCache
.
crossIdGreenIdMap
;
EventInfoPO
eventInfoPO
=
new
EventInfoPO
();
String
crossId
=
eventDataDTO
.
getCrossId
();
String
eventTypeName
=
eventDataDTO
.
getEventType
();
setEventType
(
eventInfoPO
,
eventTypeName
);
Date
eventStartTime
=
eventDataDTO
.
getEventStartTime
();
eventInfoPO
.
setStartTime
(
eventStartTime
);
eventInfoPO
.
setEndTime
(
eventDataDTO
.
getEventEndTime
());
eventInfoPO
.
setEventSerialNumber
(
eventDataDTO
.
getEventId
());
eventInfoPO
.
setCrossId
(
crossId
);
eventInfoPO
.
setGreenId
(
eventDataDTO
.
getGreenId
());
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
String
dateStr
=
format
.
format
(
eventStartTime
);
eventInfoPO
.
setDt
(
Integer
.
valueOf
(
dateStr
));
eventInfoPO
.
setLat
(
eventInfoPO
.
getLat
());
eventInfoPO
.
setLng
(
eventInfoPO
.
getLng
());
eventInfoPO
.
setCategory
(
eventDataDTO
.
getEventLevel
());
eventInfoPO
.
setPlaceDesc
(
eventDataDTO
.
getEventType
());
List
<
Integer
>
directions
=
eventDataDTO
.
getDirection
();
List
<
Integer
>
dirs
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
directions
))
{
directions
.
forEach
(
item
->
{
dirs
.
add
(
Integer
.
valueOf
(
item
)
+
1
);
});
}
eventInfoPO
.
setDir
(
mapper
.
writeValueAsString
(
dirs
));
eventInfoPO
.
setTurn
(
mapper
.
writeValueAsString
(
eventDataDTO
.
getTurn
()));
eventInfoPO
.
setRuksj
(
new
Date
());
eventInfoPO
.
setAlarmStatus
(
eventDataDTO
.
getEventStatus
());
// 默认未优化
eventInfoPO
.
setOptStatus
(
0
);
setGreenId
(
crossIdGreenIdMap
,
eventInfoPO
,
crossId
);
return
eventInfoPO
;
}
@NotNull
private
static
EventInfoPO
getEventInfoPO
(
EventDataDTO
eventDataDTO
)
throws
Exception
{
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
Map
<
String
,
Integer
>
crossIdGreenIdMap
=
CrossGreenWaveInfoCache
.
crossIdGreenIdMap
;
EventInfoPO
eventInfoPO
=
new
EventInfoPO
();
String
crossId
=
eventDataDTO
.
getCrossId
();
String
eventTypeName
=
eventDataDTO
.
getEventType
();
setEventType
(
eventInfoPO
,
eventTypeName
);
Date
eventStartTime
=
eventDataDTO
.
getEventStartTime
();
eventInfoPO
.
setStartTime
(
eventStartTime
);
eventInfoPO
.
setEndTime
(
eventDataDTO
.
getEventEndTime
());
eventInfoPO
.
setEventSerialNumber
(
eventDataDTO
.
getEventId
());
eventInfoPO
.
setCrossId
(
crossId
);
eventInfoPO
.
setGreenId
(
eventDataDTO
.
getGreenId
());
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
String
dateStr
=
format
.
format
(
eventStartTime
);
eventInfoPO
.
setDt
(
Integer
.
valueOf
(
dateStr
));
eventInfoPO
.
setLat
(
eventInfoPO
.
getLat
());
eventInfoPO
.
setLng
(
eventInfoPO
.
getLng
());
eventInfoPO
.
setCategory
(
eventDataDTO
.
getEventLevel
());
eventInfoPO
.
setPlaceDesc
(
eventDataDTO
.
getEventType
());
List
<
Integer
>
directions
=
eventDataDTO
.
getDirection
();
List
<
Integer
>
dirs
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
directions
))
{
directions
.
forEach
(
item
->
{
dirs
.
add
(
Integer
.
valueOf
(
item
)
+
1
);
});
}
eventInfoPO
.
setDir
(
mapper
.
writeValueAsString
(
dirs
));
eventInfoPO
.
setTurn
(
mapper
.
writeValueAsString
(
eventDataDTO
.
getTurn
()));
eventInfoPO
.
setRuksj
(
new
Date
());
eventInfoPO
.
setAlarmStatus
(
eventDataDTO
.
getEventStatus
());
// 默认未优化
eventInfoPO
.
setOptStatus
(
0
);
setGreenId
(
crossIdGreenIdMap
,
eventInfoPO
,
crossId
);
return
eventInfoPO
;
}
private
static
void
setGreenId
(
Map
<
String
,
Integer
>
crossIdGreenIdMap
,
EventInfoPO
eventInfoPO
,
String
crossId
)
{
if
(!
crossIdGreenIdMap
.
isEmpty
())
{
Integer
greenId
=
crossIdGreenIdMap
.
get
(
crossId
);
if
(
Objects
.
nonNull
(
greenId
))
{
eventInfoPO
.
setGreenId
(
String
.
valueOf
(
greenId
));
}
}
}
private
static
void
setGreenId
(
Map
<
String
,
Integer
>
crossIdGreenIdMap
,
EventInfoPO
eventInfoPO
,
String
crossId
)
{
if
(!
crossIdGreenIdMap
.
isEmpty
())
{
Integer
greenId
=
crossIdGreenIdMap
.
get
(
crossId
);
if
(
Objects
.
nonNull
(
greenId
))
{
eventInfoPO
.
setGreenId
(
String
.
valueOf
(
greenId
));
}
}
}
private
static
void
setEventType
(
EventInfoPO
eventInfoPO
,
String
eventTypeName
)
{
if
(
EventAbnormalEnum
.
PHASE_EMPTY
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
PHASE_EMPTY
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
());
}
if
(
EventAbnormalEnum
.
GREEN_SLOW
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
GREEN_SLOW
.
getType
());
}
if
(
EventAbnormalEnum
.
GREEN_CONGEST
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
GREEN_CONGEST
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_CONGEST
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_CONGEST
.
getType
());
}
}
}
private
static
void
setEventType
(
EventInfoPO
eventInfoPO
,
String
eventTypeName
)
{
if
(
EventAbnormalEnum
.
PHASE_EMPTY
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
PHASE_EMPTY
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
());
}
if
(
EventAbnormalEnum
.
GREEN_SLOW
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
GREEN_SLOW
.
getType
());
}
if
(
EventAbnormalEnum
.
GREEN_CONGEST
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
GREEN_CONGEST
.
getType
());
}
if
(
EventAbnormalEnum
.
CROSS_CONGEST
.
getDesc
().
contains
(
eventTypeName
))
{
eventInfoPO
.
setType
(
EventAbnormalEnum
.
CROSS_CONGEST
.
getType
());
}
}
}
\ No newline at end of file
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