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
f78ab402
Commit
f78ab402
authored
Mar 14, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 信号评价,路口流量根据时长加总
parent
8758a221
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
57 additions
and
21 deletions
+57
-21
EvaluateController.java
...ain/java/net/wanji/opt/controller/EvaluateController.java
+2
-3
EvaluateService.java
.../src/main/java/net/wanji/opt/service/EvaluateService.java
+1
-2
DiagnoServiceImpl.java
...in/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
+17
-5
EvaluateServiceImpl.java
.../java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
+25
-9
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+2
-1
CrossInfoMapper.java
...in/java/net/wanji/databus/dao/mapper/CrossInfoMapper.java
+1
-1
CrossInfoMapper.xml
wj-databus/src/main/resources/mapper/CrossInfoMapper.xml
+9
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/EvaluateController.java
View file @
f78ab402
...
...
@@ -4,7 +4,6 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.service.EvaluateService
;
...
...
@@ -40,8 +39,8 @@ public class EvaluateController {
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
EvaluateCrossDetailVO
.
class
),
})
public
JsonViewObject
evaluateCrossDetail
(
@RequestBody
CrossId
DTO
crossId
DTO
)
{
EvaluateCrossDetailVO
evaluateCrossDetailVO
=
evaluateService
.
evaluateCrossDetail
(
crossIdDTO
);
public
JsonViewObject
evaluateCrossDetail
(
@RequestBody
CrossId
AndMinutesDTO
crossIdAndMinutes
DTO
)
{
EvaluateCrossDetailVO
evaluateCrossDetailVO
=
evaluateService
.
evaluateCrossDetail
(
crossId
AndMinutes
DTO
);
return
JsonViewObject
.
newInstance
().
success
(
evaluateCrossDetailVO
);
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/EvaluateService.java
View file @
f78ab402
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.vo.EvaluateCrossDetailVO
;
import
net.wanji.opt.vo.EvaluateMetricsVO
;
...
...
@@ -12,7 +11,7 @@ import net.wanji.opt.vo.EvaluateMetricsVO;
*/
public
interface
EvaluateService
{
EvaluateCrossDetailVO
evaluateCrossDetail
(
CrossId
DTO
crossId
DTO
);
EvaluateCrossDetailVO
evaluateCrossDetail
(
CrossId
AndMinutesDTO
crossIdAndMinutes
DTO
);
EvaluateMetricsVO
evaluateMetrics
(
CrossIdAndMinutesDTO
crossIdAndMinutesDTO
);
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
View file @
f78ab402
...
...
@@ -10,11 +10,15 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.
CrossInfoPO
;
import
net.wanji.databus.po.
TBaseCrossInfo
;
import
net.wanji.databus.vo.SchemeSendVO
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
...
...
@@ -40,7 +44,15 @@ import net.wanji.opt.vo.SchemeOptSendVO;
import
net.wanji.opt.vo.SchemeOptVO
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.TreeSet
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -118,7 +130,7 @@ public class DiagnoServiceImpl implements DiagnoService {
// 关联路口坐标
String
startCrossId
=
ridInfo
.
getStartCrossId
();
crossIdAndLocationVO
.
setId
(
startCrossId
);
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectById
(
startCrossId
);
TBaseCrossInfo
crossInfoPO
=
crossInfoMapper
.
selectByPrimaryKey
(
startCrossId
);
if
(
crossInfoPO
!=
null
)
{
crossIdAndLocationVO
.
setName
(
crossInfoPO
.
getName
());
String
startLocationStr
=
crossInfoPO
.
getLocation
();
...
...
@@ -328,7 +340,7 @@ public class DiagnoServiceImpl implements DiagnoService {
String
crossId
=
crossIdAndDirDTO
.
getCrossId
();
OptEffectVO
optEffectVO
=
new
OptEffectVO
();
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectById
(
crossId
);
TBaseCrossInfo
crossInfoPO
=
crossInfoMapper
.
selectByPrimaryKey
(
crossId
);
optEffectVO
.
setCrossName
(
crossInfoPO
.
getName
());
List
<
CrossSchemeOptLogPO
>
maxList
=
crossSchemeOptLogMapper
.
selectMaxByCrossId
(
crossId
);
if
(
maxList
!=
null
)
{
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
View file @
f78ab402
...
...
@@ -6,17 +6,18 @@ import cn.hutool.core.util.ObjectUtil;
import
com.google.gson.Gson
;
import
com.google.gson.GsonBuilder
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.enums.CrossInOutEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.bo.CrossDirDataHistAvgBO
;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
net.wanji.databus.po.
CrossInfoPO
;
import
net.wanji.databus.po.
TBaseCrossInfo
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.dto.OptDataExtend
;
...
...
@@ -45,30 +46,33 @@ public class EvaluateServiceImpl implements EvaluateService {
private
final
CrossDataRealtimeMapper
crossDataRealtimeMapper
;
private
final
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
;
private
final
CrossDirDataHistMapper
crossDirDataHistMapper
;
private
final
CrossDataHistMapper
crossDataHistMapper
;
private
Gson
gson
=
new
GsonBuilder
().
setDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
create
();
public
EvaluateServiceImpl
(
CrossInfoMapper
crossInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
)
{
CrossDirDataHistMapper
crossDirDataHistMapper
,
CrossDataHistMapper
crossDataHistMapper
)
{
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossSchemeOptLogMapper
=
crossSchemeOptLogMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
crossDirDataRealtimeMapper
=
crossDirDataRealtimeMapper
;
this
.
crossDirDataHistMapper
=
crossDirDataHistMapper
;
this
.
crossDataHistMapper
=
crossDataHistMapper
;
}
@Override
public
EvaluateCrossDetailVO
evaluateCrossDetail
(
CrossId
DTO
crossId
DTO
)
{
public
EvaluateCrossDetailVO
evaluateCrossDetail
(
CrossId
AndMinutesDTO
crossIdAndMinutes
DTO
)
{
EvaluateCrossDetailVO
evaluateCrossDetailVO
=
new
EvaluateCrossDetailVO
();
String
crossId
=
crossIdDTO
.
getCrossId
();
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectById
(
crossId
);
String
crossId
=
crossId
AndMinutes
DTO
.
getCrossId
();
TBaseCrossInfo
crossInfoPO
=
crossInfoMapper
.
selectByPrimaryKey
(
crossId
);
String
crossName
=
crossInfoPO
.
getName
();
evaluateCrossDetailVO
.
setCrossName
(
crossName
);
fillOptData
(
evaluateCrossDetailVO
,
crossId
);
fillRealtimeData
(
evaluateCrossDetailVO
,
crossId
);
Integer
minutes
=
crossIdAndMinutesDTO
.
getMinutes
();
fillRealtimeData
(
evaluateCrossDetailVO
,
crossId
,
minutes
);
return
evaluateCrossDetailVO
;
}
...
...
@@ -228,7 +232,7 @@ public class EvaluateServiceImpl implements EvaluateService {
return
dirObjMapRealtime
;
}
private
void
fillRealtimeData
(
EvaluateCrossDetailVO
evaluateCrossDetailVO
,
String
crossId
)
{
private
void
fillRealtimeData
(
EvaluateCrossDetailVO
evaluateCrossDetailVO
,
String
crossId
,
Integer
minutes
)
{
CrossDataRealtimePO
crossDataRealtimePO
=
crossDataRealtimeMapper
.
selectByCrossId
(
crossId
);
evaluateCrossDetailVO
.
setSceneStartTime
(
crossDataRealtimePO
.
getStartTime
());
evaluateCrossDetailVO
.
setDuration
(
crossDataRealtimePO
.
getDuration
());
...
...
@@ -236,7 +240,19 @@ public class EvaluateServiceImpl implements EvaluateService {
Double
sturation
=
crossDataRealtimePO
.
getSturation
();
String
serviceLevel
=
CrossUtil
.
getServiceLevel
(
sturation
);
evaluateCrossDetailVO
.
setServiceLevel
(
serviceLevel
);
evaluateCrossDetailVO
.
setFlow
(
crossDataRealtimePO
.
getFlow
());
// 计算路口流量
// 获取当前时间之前某分钟的10位时间戳
long
currentSeconds
=
DateUtil
.
currentSeconds
();
// todo 测试用 固定当前时间为1676082800
currentSeconds
=
1676082800
;
long
preSeconds
=
currentSeconds
-
minutes
*
60
;
List
<
CrossDataHistPO
>
crossDataHistPOS
=
crossDataHistMapper
.
selectByCrossIdAndTimestamp
(
crossId
,
preSeconds
);
if
(
CollectionUtil
.
isNotEmpty
(
crossDataHistPOS
))
{
int
sum
=
crossDataHistPOS
.
stream
()
.
mapToInt
(
CrossDataHistPO:
:
getFlow
)
.
sum
();
evaluateCrossDetailVO
.
setFlow
(
sum
);
}
evaluateCrossDetailVO
.
setLength
(
crossDataRealtimePO
.
getQueueLength
());
evaluateCrossDetailVO
.
setStopTimes
(
crossDataRealtimePO
.
getStopTimes
());
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
f78ab402
...
...
@@ -14,6 +14,7 @@ import net.wanji.databus.po.CrossDataRealtimePO;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.CrossTurnDataRealtimePO
;
import
net.wanji.databus.po.TBaseCrossInfo
;
import
net.wanji.databus.vo.AbnormalCrossListVO
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.EventAlarmMapper
;
...
...
@@ -180,7 +181,7 @@ public class TrendServiceImpl implements TrendService {
if
(
ridInfo
!=
null
)
{
// 关联路口坐标
String
startCrossId
=
ridInfo
.
getStartCrossId
();
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectById
(
startCrossId
);
TBaseCrossInfo
crossInfoPO
=
crossInfoMapper
.
selectByPrimaryKey
(
startCrossId
);
if
(
crossInfoPO
!=
null
)
{
String
startLocationStr
=
crossInfoPO
.
getLocation
();
double
[]
startLonLat
=
CrossUtil
.
getLonLat
(
startLocationStr
);
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossInfoMapper.java
View file @
f78ab402
...
...
@@ -24,7 +24,7 @@ public interface CrossInfoMapper extends BaseMapper<TBaseCrossInfo> {
*/
// List<CrossInfoPO> listCrossInfo(CrossQuery query);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
crossIdList
);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
ids
);
CrossInfoPO
selectById
(
String
crossId
);
...
...
wj-databus/src/main/resources/mapper/CrossInfoMapper.xml
View file @
f78ab402
...
...
@@ -248,4 +248,13 @@
where c.is_signal = 1
and d.type = 1
</select>
<select
id=
"selectByCrossIds"
resultType=
"net.wanji.databus.po.CrossInfoPO"
>
select
<include
refid=
"baseColumn"
/>
from t_base_cross_info
where id in
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</select>
</mapper>
\ 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