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
fcdee888
Commit
fcdee888
authored
Feb 24, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 问题路口列表,返回关联路口信息
parent
8120535d
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
129 additions
and
13 deletions
+129
-13
CrossDirInfoMapper.java
...ain/java/net/wanji/opt/dao/mapper/CrossDirInfoMapper.java
+16
-0
CrossInfoMapper.java
...c/main/java/net/wanji/opt/dao/mapper/CrossInfoMapper.java
+2
-0
CrossDirInfoPO.java
...e/src/main/java/net/wanji/opt/po/base/CrossDirInfoPO.java
+23
-11
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+54
-1
AbnormalCrossListVO.java
...e/src/main/java/net/wanji/opt/vo/AbnormalCrossListVO.java
+4
-0
CrossDirInfoMapper.xml
...-service/src/main/resources/mapper/CrossDirInfoMapper.xml
+11
-0
CrossInfoMapper.xml
...ize-service/src/main/resources/mapper/CrossInfoMapper.xml
+7
-0
RidInfoEntity.java
...main/java/net/wanji/databus/dao/entity/RidInfoEntity.java
+3
-1
RidInfoMapper.java
...main/java/net/wanji/databus/dao/mapper/RidInfoMapper.java
+2
-0
RidInfoMapper.xml
wj-databus/src/main/resources/mapper/RidInfoMapper.xml
+7
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/CrossDirInfoMapper.java
0 → 100644
View file @
fcdee888
package
net
.
wanji
.
opt
.
dao
.
mapper
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @author hanbing
* @date 2023/1/12 13:24
* @desc CrossInfoMapper
*/
@Repository
public
interface
CrossDirInfoMapper
{
List
<
Integer
>
selectInDirsByCrossId
(
String
endCrossId
);
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/CrossInfoMapper.java
View file @
fcdee888
...
@@ -22,4 +22,6 @@ public interface CrossInfoMapper {
...
@@ -22,4 +22,6 @@ public interface CrossInfoMapper {
List
<
CrossInfoPO
>
listCrossInfo
(
CrossQuery
query
);
List
<
CrossInfoPO
>
listCrossInfo
(
CrossQuery
query
);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
crossIdList
);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
crossIdList
);
CrossInfoPO
selectById
(
String
crossId
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/po/base/CrossDirInfoPO.java
View file @
fcdee888
...
@@ -3,6 +3,8 @@ package net.wanji.opt.po.base;
...
@@ -3,6 +3,8 @@ package net.wanji.opt.po.base;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
/**
/**
* @author hfx
* @author hfx
* @date 2023/1/12 13:35
* @date 2023/1/12 13:35
...
@@ -11,19 +13,29 @@ import lombok.Data;
...
@@ -11,19 +13,29 @@ import lombok.Data;
@Data
@Data
public
class
CrossDirInfoPO
{
public
class
CrossDirInfoPO
{
@ApiModelProperty
(
name
=
"路口方向ID"
,
notes
=
""
)
/** 路口方向ID(路口ID_方向_进出口_主辅路序号) */
private
String
crossDirId
;
@ApiModelProperty
(
name
=
"路口方向ID(路口ID_方向_进出口_主辅路序号)"
,
notes
=
""
)
private
String
id
;
/** 路口方向类型:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty
(
name
=
"路口方向类型:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"路口方向类型:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
private
Integer
dirType
;
private
Integer
dirType
;
/** 进出口类型:1进口;2出口 */
@ApiModelProperty
(
name
=
"进出口类型:1进口;2出口"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"进出口类型:1进口;2出口"
,
notes
=
""
)
private
Integer
inOutType
;
private
Integer
inOutType
;
/** 路口ID */
@ApiModelProperty
(
name
=
"路段长度"
,
notes
=
""
)
private
Double
length
;
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
private
String
crossId
;
/** 路段长度 */
@ApiModelProperty
(
name
=
"路段长度"
,
notes
=
""
)
private
Double
length
;
/** 是否有行人过街:0否;1是 */
@ApiModelProperty
(
name
=
"是否有行人过街:0否;1是"
,
notes
=
""
)
private
Integer
isPedestrian
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
fcdee888
...
@@ -4,9 +4,13 @@ import cn.hutool.core.collection.CollectionUtil;
...
@@ -4,9 +4,13 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDirDataHistMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDirDataHistMapper
;
...
@@ -36,6 +40,7 @@ import java.util.ArrayList;
...
@@ -36,6 +40,7 @@ import java.util.ArrayList;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -50,19 +55,23 @@ public class TrendServiceImpl implements TrendService {
...
@@ -50,19 +55,23 @@ public class TrendServiceImpl implements TrendService {
private
final
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
;
private
final
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
private
final
EventAlarmMapper
eventAlarmMapper
;
private
final
EventAlarmMapper
eventAlarmMapper
;
private
final
RidInfoMapper
ridInfoMapper
;
private
final
CrossDirInfoMapper
crossDirInfoMapper
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
public
TrendServiceImpl
(
GreenwaveInfoMapper
greenwaveInfoMapper
,
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
)
{
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
,
RidInfoMapper
ridInfoMapper
,
CrossDirInfoMapper
crossDirInfoMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossTurnDataRealtimeMapper
=
crossTurnDataRealtimeMapper
;
this
.
crossTurnDataRealtimeMapper
=
crossTurnDataRealtimeMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
this
.
eventAlarmMapper
=
eventAlarmMapper
;
this
.
eventAlarmMapper
=
eventAlarmMapper
;
this
.
ridInfoMapper
=
ridInfoMapper
;
this
.
crossDirInfoMapper
=
crossDirInfoMapper
;
}
}
@Override
@Override
...
@@ -127,6 +136,23 @@ public class TrendServiceImpl implements TrendService {
...
@@ -127,6 +136,23 @@ public class TrendServiceImpl implements TrendService {
location
.
add
(
lonLat
[
0
]);
location
.
add
(
lonLat
[
0
]);
location
.
add
(
lonLat
[
1
]);
location
.
add
(
lonLat
[
1
]);
abnormalCrossListVO
.
setLocation
(
location
);
abnormalCrossListVO
.
setLocation
(
location
);
// 关联路口信息
Integer
realtimeStatus
=
abnormalCrossListVO
.
getRealtimeStatus
();
String
endCrossId
=
abnormalCrossListVO
.
getId
();
if
(
Objects
.
equals
(
realtimeStatus
,
CrossStatusEnum
.
SPILLOVER
.
getCode
()))
{
// 溢出只返回溢出方向的关联路口
String
spilloverDirs
=
abnormalCrossListVO
.
getSpilloverDirs
();
String
[]
split
=
spilloverDirs
.
split
(
","
);
List
<
Integer
>
spilloverDirList
=
new
ArrayList
<>();
for
(
String
s
:
split
)
{
spilloverDirList
.
add
(
Integer
.
parseInt
(
s
));
}
buildRidData
(
abnormalCrossListVO
,
endCrossId
,
spilloverDirList
);
}
else
if
(
Objects
.
equals
(
realtimeStatus
,
CrossStatusEnum
.
CONGESTION
.
getCode
())){
// 拥堵返回所有方向关联路口
List
<
Integer
>
inDirs
=
crossDirInfoMapper
.
selectInDirsByCrossId
(
endCrossId
);
buildRidData
(
abnormalCrossListVO
,
endCrossId
,
inDirs
);
}
}
}
abnormalCrossVO
.
setAbnormalCrossList
(
abnormalCrossListVOList
);
abnormalCrossVO
.
setAbnormalCrossList
(
abnormalCrossListVOList
);
// 构造统计信息
// 构造统计信息
...
@@ -137,6 +163,33 @@ public class TrendServiceImpl implements TrendService {
...
@@ -137,6 +163,33 @@ public class TrendServiceImpl implements TrendService {
return
abnormalCrossVO
;
return
abnormalCrossVO
;
}
}
private
void
buildRidData
(
AbnormalCrossListVO
abnormalCrossListVO
,
String
endCrossId
,
List
<
Integer
>
spilloverDirList
)
{
List
<
List
<
Double
>>
ridLocationList
=
new
ArrayList
<>();
List
<
String
>
ridWktList
=
new
ArrayList
<>();
for
(
Integer
spilloverDir
:
spilloverDirList
)
{
RidInfoEntity
ridInfo
=
ridInfoMapper
.
selectByEndInDir
(
endCrossId
,
spilloverDir
);
if
(
ridInfo
!=
null
)
{
// 关联路口坐标
String
startCrossId
=
ridInfo
.
getStartCrossId
();
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectById
(
startCrossId
);
if
(
crossInfoPO
!=
null
)
{
String
startLocationStr
=
crossInfoPO
.
getLocation
();
double
[]
startLonLat
=
CrossUtil
.
getLonLat
(
startLocationStr
);
List
<
Double
>
startLocation
=
new
ArrayList
<>();
startLocation
.
add
(
startLonLat
[
0
]);
startLocation
.
add
(
startLonLat
[
1
]);
ridLocationList
.
add
(
startLocation
);
}
// 关联路口wkt
String
wkt
=
ridInfo
.
getWkt
();
ridWktList
.
add
(
wkt
);
}
}
abnormalCrossListVO
.
setRidLocationList
(
ridLocationList
);
abnormalCrossListVO
.
setRidWktList
(
ridWktList
);
}
@Override
@Override
public
AbnormalCrossDetailVO
abnormalCrossDetail
(
CrossIdDTO
crossIdDTO
)
{
public
AbnormalCrossDetailVO
abnormalCrossDetail
(
CrossIdDTO
crossIdDTO
)
{
String
crossId
=
crossIdDTO
.
getCrossId
();
String
crossId
=
crossIdDTO
.
getCrossId
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/AbnormalCrossListVO.java
View file @
fcdee888
...
@@ -36,6 +36,10 @@ public class AbnormalCrossListVO {
...
@@ -36,6 +36,10 @@ public class AbnormalCrossListVO {
private
String
locationStr
;
private
String
locationStr
;
@ApiModelProperty
(
value
=
"路口坐标"
)
@ApiModelProperty
(
value
=
"路口坐标"
)
private
List
<
Double
>
location
;
private
List
<
Double
>
location
;
@ApiModelProperty
(
value
=
"关联路口坐标列表"
)
private
List
<
List
<
Double
>>
ridLocationList
;
@ApiModelProperty
(
value
=
"关联路口wkt列表"
)
private
List
<
String
>
ridWktList
;
@JsonIgnore
@JsonIgnore
// 是否失衡:0否;1是
// 是否失衡:0否;1是
private
Integer
isUnbalance
;
private
Integer
isUnbalance
;
...
...
signal-optimize-service/src/main/resources/mapper/CrossDirInfoMapper.xml
0 → 100644
View file @
fcdee888
<?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.CrossDirInfoMapper"
>
<select
id=
"selectInDirsByCrossId"
resultType=
"java.lang.Integer"
>
SELECT dir_type
FROM t_base_cross_dir_info
WHERE cross_id = #{crossId}
</select>
</mapper>
signal-optimize-service/src/main/resources/mapper/CrossInfoMapper.xml
View file @
fcdee888
...
@@ -51,4 +51,11 @@
...
@@ -51,4 +51,11 @@
</foreach>
</foreach>
</select>
</select>
<select
id=
"selectById"
resultType=
"net.wanji.opt.po.base.CrossInfoPO"
>
select
id,name,type,level,area_code,is_signal,is_start,is_send,location
from t_base_cross_info
where id = #{crossId}
</select>
</mapper>
</mapper>
wj-databus/src/main/java/net/wanji/databus/dao/entity/RidInfoEntity.java
View file @
fcdee888
...
@@ -116,6 +116,8 @@ public class RidInfoEntity {
...
@@ -116,6 +116,8 @@ public class RidInfoEntity {
*/
*/
@ApiModelProperty
(
name
=
"路段类型:1路段;3匝道;4隧道;5桥梁;6高架;99其他"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"路段类型:1路段;3匝道;4隧道;5桥梁;6高架;99其他"
,
notes
=
""
)
private
Integer
type
;
private
Integer
type
;
@ApiModelProperty
(
name
=
"主辅标志:1主路;2辅路;99其他 (参见主辅标志字典)"
,
notes
=
""
)
private
Integer
mainFlag
;
/**
/**
* RID;空间对象
* RID;空间对象
*/
*/
...
@@ -125,7 +127,7 @@ public class RidInfoEntity {
...
@@ -125,7 +127,7 @@ public class RidInfoEntity {
* 信控路段编号
* 信控路段编号
*/
*/
@ApiModelProperty
(
name
=
"信控路段编号"
,
notes
=
""
)
@ApiModelProperty
(
name
=
"信控路段编号"
,
notes
=
""
)
private
String
sc
Ri
d
;
private
String
sc
I
d
;
/**
/**
* 信控路段名称
* 信控路段名称
*/
*/
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/RidInfoMapper.java
View file @
fcdee888
...
@@ -23,4 +23,6 @@ public interface RidInfoMapper {
...
@@ -23,4 +23,6 @@ public interface RidInfoMapper {
List
<
RidInfoEntity
>
selectOne
(
@Param
(
"startCrossid"
)
String
startCrossid
,
List
<
RidInfoEntity
>
selectOne
(
@Param
(
"startCrossid"
)
String
startCrossid
,
@Param
(
"endCrossid"
)
String
endCrossid
);
@Param
(
"endCrossid"
)
String
endCrossid
);
RidInfoEntity
selectByEndInDir
(
String
endCrossId
,
int
spilloverDirInt
);
}
}
wj-databus/src/main/resources/mapper/RidInfoMapper.xml
View file @
fcdee888
...
@@ -68,4 +68,11 @@
...
@@ -68,4 +68,11 @@
</if>
</if>
</where>
</where>
</select>
</select>
<select
id=
"selectByEndInDir"
resultType=
"net.wanji.databus.dao.entity.RidInfoEntity"
>
SELECT id,name,road_id,road_name,road_dir_id,start_cross_id,end_cross_id,out_dir,in_dir,start_angle,end_angle,
direction,sort,trend,level,area_code,length,width,is_oneway,type,wkt,sc_id,sc_name,sc_sort,gmt_create,gmt_modified
FROM t_base_rid_info
WHERE end_cross_id = #{endCrossId} and in_dir = #{spilloverDirInt}
</select>
</mapper>
</mapper>
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