Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-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
signal
traffic-signal-platform
Commits
771c0a9a
Commit
771c0a9a
authored
Nov 27, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 动态切换全息数据库数据源
parent
7bf33daf
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
86 additions
and
112 deletions
+86
-112
HoloEventMapper.java
...c/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
+19
-0
SchemeEvaluateServiceImpl.java
...net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
+21
-8
application-local.yaml
...ptimize-service/src/main/resources/application-local.yaml
+6
-0
HoloEventMapper.xml
...ize-service/src/main/resources/mapper/HoloEventMapper.xml
+36
-0
BaseCrossDirInfoMapper.java
.../net/wanji/databus/dao/mapper/BaseCrossDirInfoMapper.java
+0
-2
BaseCrossTurnInfoMapper.java
...net/wanji/databus/dao/mapper/BaseCrossTurnInfoMapper.java
+0
-1
CrossDataHistMapper.java
...ava/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
+0
-2
CrossDirDataHistMapper.java
.../net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
+1
-1
CrossTurnDataHistMapper.java
...net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
+1
-1
BaseCrossDirInfoMapper.xml
...abus/src/main/resources/mapper/BaseCrossDirInfoMapper.xml
+0
-22
BaseCrossTurnInfoMapper.xml
...bus/src/main/resources/mapper/BaseCrossTurnInfoMapper.xml
+0
-24
CrossDataHistMapper.xml
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
+0
-9
CrossDirDataHistMapper.xml
...abus/src/main/resources/mapper/CrossDirDataHistMapper.xml
+1
-21
CrossTurnDataHistMapper.xml
...bus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
+1
-21
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/HoloEventMapper.java
0 → 100644
View file @
771c0a9a
package
net
.
wanji
.
opt
.
dao
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @author duanruiming
* @date 2023/01/31 18:32
*/
@Repository
@DS
(
"holo"
)
public
interface
HoloEventMapper
{
Integer
selectCrossEmergencyCount
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Integer
selectEmergencyCountWithLaneIds
(
String
crossId
,
int
startStamp
,
int
endStamp
,
List
<
String
>
laneIds
);
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
View file @
771c0a9a
...
...
@@ -19,6 +19,7 @@ import net.wanji.opt.bo.CurveChartBO;
import
net.wanji.opt.bo.CurveChartBO.DirTurn
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.SchemeDetailOverallBO
;
import
net.wanji.opt.dao.mapper.HoloEventMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper
;
import
net.wanji.opt.dao.mapper.strategy.StrategyMapper
;
...
...
@@ -59,6 +60,7 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
private
final
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
;
private
final
CrossTurnDataHistMapper
crossTurnDataHistMapper
;
private
final
BaseCrossTurnInfoMapper
baseCrossTurnInfoMapper
;
private
final
HoloEventMapper
holoEventMapper
;
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
timeFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
...
...
@@ -75,7 +77,7 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
@Qualifier
(
"baseCrossDirInfoMapper"
)
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
CrossTurnDataHistMapper
crossTurnDataHistMapper
,
@Qualifier
(
"baseCrossTurnInfoMapper"
)
BaseCrossTurnInfoMapper
baseCrossTurnInfoMapper
)
{
@Qualifier
(
"baseCrossTurnInfoMapper"
)
BaseCrossTurnInfoMapper
baseCrossTurnInfoMapper
,
@Qualifier
(
"holoEventMapper"
)
HoloEventMapper
holoEventMapper
)
{
this
.
crossDataHistMapper
=
crossDataHistMapper
;
this
.
runningEvaluateService
=
runningEvaluateService
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
...
...
@@ -90,6 +92,7 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
this
.
baseCrossDirInfoMapper
=
baseCrossDirInfoMapper
;
this
.
crossTurnDataHistMapper
=
crossTurnDataHistMapper
;
this
.
baseCrossTurnInfoMapper
=
baseCrossTurnInfoMapper
;
this
.
holoEventMapper
=
holoEventMapper
;
}
@Override
...
...
@@ -360,7 +363,12 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
List
<
String
>
laneIds
=
baseCrossDirInfoMapper
.
selectLaneIds
(
crossId
,
dirInt
);
// 查询该方向,该时段内全量数据
List
<
CrossDirDataHistPOExt
>
crossDirDataHistPOList
=
crossDirDataHistMapper
.
selectByMetrics
(
crossId
,
dirInt
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
crossId
,
dirInt
,
startTimeStamp
,
endTimeStamp
);
Integer
emergencyCount
=
holoEventMapper
.
selectEmergencyCountWithLaneIds
(
crossId
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
for
(
CrossDirDataHistPOExt
po
:
crossDirDataHistPOList
)
{
po
.
setEmergencyCount
(
emergencyCount
);
}
// 按时间段分组
Map
<
String
,
List
<
CrossDirDataHistPOExt
>>
groupedByTime
=
crossDirDataHistPOList
.
stream
()
...
...
@@ -405,7 +413,12 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
List
<
String
>
laneIds
=
baseCrossTurnInfoMapper
.
selectLaneIds
(
crossId
,
dirInt
,
intTurnCode
);
// 查询该方向,该转向,该时段内全量数据
List
<
CrossTurnDataHistPOExt
>
crossTurnDataHistPOList
=
crossTurnDataHistMapper
.
selectByMetrics
(
crossId
,
dirInt
,
turnType
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
crossId
,
dirInt
,
turnType
,
startTimeStamp
,
endTimeStamp
);
Integer
emergencyCount
=
holoEventMapper
.
selectEmergencyCountWithLaneIds
(
crossId
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
for
(
CrossTurnDataHistPOExt
crossTurnDataHistPOExt
:
crossTurnDataHistPOList
)
{
crossTurnDataHistPOExt
.
setEmergencyCount
(
emergencyCount
);
}
// 按时间段分组
Map
<
String
,
List
<
CrossTurnDataHistPOExt
>>
groupedByTime
=
crossTurnDataHistPOList
.
stream
()
...
...
@@ -526,8 +539,8 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
// 查询该方向所有的车道ID
List
<
String
>
laneIds
=
baseCrossDirInfoMapper
.
selectLaneIds
(
crossId
,
dirCode
);
// 加总该方向的三急一速
Integer
emergencyCount
=
baseCrossDirInfoMapper
.
selectDirEmergencyCount
(
crossId
,
laneIds
,
startTimeStamp
,
endTimeStamp
);
Integer
emergencyCount
=
holoEventMapper
.
selectEmergencyCountWithLaneIds
(
crossId
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
metricsMap
.
put
(
StrategyAndMetricsEnum
.
Metrics
.
EMERGENCY_COUNT
.
getCode
(),
emergencyCount
+
StrategyAndMetricsEnum
.
Metrics
.
EMERGENCY_COUNT
.
getUnit
());
...
...
@@ -605,8 +618,8 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
Integer
intTurnCode
=
BaseEnum
.
TurnTypeEnum
.
getIntCodeByStrCode
(
turnType
);
List
<
String
>
laneIds
=
baseCrossTurnInfoMapper
.
selectLaneIds
(
crossId
,
dirCode
,
intTurnCode
);
// 加总该转向的三急一速
Integer
emergencyCount
=
baseCrossTurnInfoMapper
.
selectTurnEmergencyCount
(
crossId
,
laneIds
,
startTimeStamp
,
endTimeStamp
);
Integer
emergencyCount
=
holoEventMapper
.
selectEmergencyCountWithLaneIds
(
crossId
,
startTimeStamp
,
endTimeStamp
,
laneIds
);
metricsMap
.
put
(
StrategyAndMetricsEnum
.
Metrics
.
EMERGENCY_COUNT
.
getCode
(),
emergencyCount
+
StrategyAndMetricsEnum
.
Metrics
.
EMERGENCY_COUNT
.
getUnit
());
...
...
@@ -984,7 +997,7 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
overallMetricsList
.
add
(
overallMetrics
);
}
// 路口级别三急一速数量
Integer
emergencyCount
=
crossDataHis
tMapper
.
selectCrossEmergencyCount
(
crossId
,
startTimeStamp
,
endTimeStamp
);
Integer
emergencyCount
=
holoEven
tMapper
.
selectCrossEmergencyCount
(
crossId
,
startTimeStamp
,
endTimeStamp
);
SchemeEvaluateSchemeDetailOverallVO
.
OverallMetrics
overallMetrics
=
buildEmergencyCountOverallMetrics
(
emergencyCount
);
overallMetricsList
.
add
(
overallMetrics
);
...
...
signal-optimize-service/src/main/resources/application-local.yaml
View file @
771c0a9a
...
...
@@ -21,6 +21,12 @@ spring:
username
:
root
password
:
Wanji300552
driverClassName
:
com.mysql.cj.jdbc.Driver
holo
:
type
:
com.alibaba.druid.pool.DruidDataSource
url
:
jdbc:mysql://37.12.182.29:3306/holo_roadnet?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'&useSSL=false&useCursorFetch=true
username
:
root
password
:
Wanji300552
driverClassName
:
com.mysql.cj.jdbc.Driver
redis
:
host
:
37.12.182.29
port
:
14728
...
...
signal-optimize-service/src/main/resources/mapper/HoloEventMapper.xml
0 → 100644
View file @
771c0a9a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.opt.dao.mapper.HoloEventMapper"
>
<select
id=
"selectCrossEmergencyCount"
resultType=
"java.lang.Integer"
>
SELECT COUNT(*)
FROM t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endStamp}
AND cross_id = #{crossId}
</select>
<select
id=
"selectEmergencyCountWithLaneIds"
resultType=
"java.lang.Integer"
>
<choose>
<when
test=
"laneIds != null and laneIds.size() > 0"
>
(
SELECT COUNT(*)
FROM t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endStamp}
AND cross_id = #{crossId}
AND lane_id IN
<foreach
collection=
"laneIds"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
)
</when>
<otherwise>
0
</otherwise>
</choose>
</select>
</mapper>
\ No newline at end of file
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossDirInfoMapper.java
View file @
771c0a9a
...
...
@@ -23,7 +23,5 @@ public interface BaseCrossDirInfoMapper {
List
<
String
>
selectLaneIds
(
String
crossId
,
Integer
dirCode
);
Integer
selectDirEmergencyCount
(
String
crossId
,
List
<
String
>
laneIds
,
int
startTimeStamp
,
int
endTimeStamp
);
List
<
BaseCrossDirInfoPO
>
selectByInOutType
(
Integer
code
);
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossTurnInfoMapper.java
View file @
771c0a9a
...
...
@@ -12,5 +12,4 @@ public interface BaseCrossTurnInfoMapper {
List
<
String
>
selectLaneIds
(
String
crossId
,
Integer
dirCode
,
Integer
intTurnCode
);
Integer
selectTurnEmergencyCount
(
String
crossId
,
List
<
String
>
laneIds
,
int
startTimeStamp
,
int
endTimeStamp
);
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDataHistMapper.java
View file @
771c0a9a
...
...
@@ -27,8 +27,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
Double
selectMaxSaturation
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Integer
selectCrossEmergencyCount
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
CrossDataHistPO
>
selectByCrossIdsAndTimestamp
(
List
<
String
>
crossIdList
,
int
startTimeStamp
,
int
endTimeStamp
);
List
<
CrossDataHistPO
>
selectByStartEnd
(
int
startStamp
,
int
endStamp
);
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
View file @
771c0a9a
...
...
@@ -48,7 +48,7 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
@Param
(
"code"
)
Integer
code
,
@Param
(
"startTimeStamp"
)
int
startTimeStamp
,
@Param
(
"endTimeStamp"
)
int
endTimeStamp
);
List
<
CrossDirDataHistPOExt
>
selectByMetrics
(
String
crossId
,
int
dirInt
,
int
startTimeStamp
,
int
endTimeStamp
,
List
<
String
>
laneIds
);
List
<
CrossDirDataHistPOExt
>
selectByMetrics
(
String
crossId
,
int
dirInt
,
int
startTimeStamp
,
int
endTimeStamp
);
List
<
CrossDirDataHistPO
>
selectByCrossIdsDirsAndTimestamp
(
List
<
String
>
crossIdList
,
List
<
Integer
>
dirCodeList
,
int
startTimeStamp
,
int
endTimeStamp
);
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossTurnDataHistMapper.java
View file @
771c0a9a
...
...
@@ -25,7 +25,7 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
,
int
dir
,
String
turn
);
List
<
CrossTurnDataHistPOExt
>
selectByMetrics
(
String
crossId
,
int
dirInt
,
String
turnType
,
int
startTimeStamp
,
int
endTimeStamp
,
List
<
String
>
laneIds
);
List
<
CrossTurnDataHistPOExt
>
selectByMetrics
(
String
crossId
,
int
dirInt
,
String
turnType
,
int
startTimeStamp
,
int
endTimeStamp
);
List
<
CrossTurnDataHistPO
>
selectByCrossIdAndDir
(
String
crossId
,
Integer
dir
,
long
endTimeStamp
,
long
startTimeStamp
);
}
wj-databus/src/main/resources/mapper/BaseCrossDirInfoMapper.xml
View file @
771c0a9a
...
...
@@ -38,28 +38,6 @@
where cross_id = #{crossId} and dir = #{dirCode} and type = 2
</select>
<select
id=
"selectDirEmergencyCount"
resultType=
"java.lang.Integer"
>
<choose>
<when
test=
"laneIds != null and laneIds.size() > 0"
>
(
SELECT COUNT(*)
FROM holo_roadnet_jinan.t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startTimeStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endTimeStamp}
AND cross_id = #{crossId}
AND lane_id IN
<foreach
collection=
"laneIds"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
)
</when>
<otherwise>
0
</otherwise>
</choose>
</select>
<select
id=
"selectByInOutType"
resultType=
"net.wanji.databus.dao.entity.BaseCrossDirInfoPO"
>
select
<include
refid=
"baseColumnList"
></include>
from t_base_cross_dir_info
...
...
wj-databus/src/main/resources/mapper/BaseCrossTurnInfoMapper.xml
View file @
771c0a9a
...
...
@@ -18,28 +18,4 @@
where cross_id = #{crossId} and dir = #{dirCode} and turn = #{intTurnCode}
</select>
<select
id=
"selectTurnEmergencyCount"
resultType=
"java.lang.Integer"
>
<choose>
<when
test=
"laneIds != null and laneIds.size() > 0"
>
(
SELECT COUNT(*)
FROM holo_roadnet_jinan.t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startTimeStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endTimeStamp}
AND cross_id = #{crossId}
AND lane_id IN
<foreach
collection=
"laneIds"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
)
</when>
<otherwise>
0
</otherwise>
</choose>
</select>
</mapper>
wj-databus/src/main/resources/mapper/CrossDataHistMapper.xml
View file @
771c0a9a
...
...
@@ -103,15 +103,6 @@
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
</select>
<select
id=
"selectCrossEmergencyCount"
resultType=
"java.lang.Integer"
>
SELECT COUNT(*)
FROM holo_roadnet_jinan.t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endStamp}
AND cross_id = #{crossId}
</select>
<select
id=
"selectByCrossIdsAndTimestamp"
resultType=
"net.wanji.databus.po.CrossDataHistPO"
>
select
<include
refid=
"Base_Column_List"
></include>
from t_cross_data_hist
...
...
wj-databus/src/main/resources/mapper/CrossDirDataHistMapper.xml
View file @
771c0a9a
...
...
@@ -162,27 +162,7 @@
</select>
<select
id=
"selectByMetrics"
resultType=
"net.wanji.databus.po.CrossDirDataHistPOExt"
>
SELECT
<include
refid=
"Base_Column_List"
/>
,
<choose>
<when
test=
"laneIds != null and laneIds.size() > 0"
>
(
SELECT COUNT(*)
FROM holo_roadnet_jinan.t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startTimeStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endTimeStamp}
AND cross_id = #{crossId}
AND lane_id IN
<foreach
collection=
"laneIds"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
)
</when>
<otherwise>
0
</otherwise>
</choose>
AS emergencyCount
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_cross_dir_data_hist
WHERE cross_id = #{crossId}
AND in_out_type = 1
...
...
wj-databus/src/main/resources/mapper/CrossTurnDataHistMapper.xml
View file @
771c0a9a
...
...
@@ -88,27 +88,7 @@
</select>
<select
id=
"selectByMetrics"
resultType=
"net.wanji.databus.po.CrossTurnDataHistPOExt"
>
SELECT
<include
refid=
"Base_Column_List"
/>
,
<choose>
<when
test=
"laneIds != null and laneIds.size() > 0"
>
(
SELECT COUNT(*)
FROM holo_roadnet_jinan.t_event_info
WHERE type IN ('33', '34', '35', '6')
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ >= ]]>
#{startTimeStamp}
AND UNIX_TIMESTAMP(start_time)
<![CDATA[ <= ]]>
#{endTimeStamp}
AND cross_id = #{crossId}
AND lane_id IN
<foreach
collection=
"laneIds"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
)
</when>
<otherwise>
0
</otherwise>
</choose>
AS emergencyCount
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_cross_turn_data_hist
WHERE cross_id = #{crossId}
AND turn_type = #{turnType}
...
...
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