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
c2ade2e4
Commit
c2ade2e4
authored
Jun 12, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 信号优化首页,子区详情(除相位序列图)
parent
ab6f6700
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
406 additions
and
35 deletions
+406
-35
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+2
-2
RunningPlanServiceImpl.java
...wanji/web/service/scheme/impl/RunningPlanServiceImpl.java
+2
-2
SceneStrategyIdeaMapper.java
...anji/opt/dao/mapper/strategy/SceneStrategyIdeaMapper.java
+2
-0
StrategyMapper.java
...ava/net/wanji/opt/dao/mapper/strategy/StrategyMapper.java
+2
-0
GreenwaveInfoMapper.java
...a/net/wanji/opt/dao/mapper/trend/GreenwaveInfoMapper.java
+4
-1
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+173
-6
GreenwaveDetailVO.java
...ice/src/main/java/net/wanji/opt/vo/GreenwaveDetailVO.java
+8
-0
GreenwaveListVO.java
...rvice/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
+1
-1
SceneStrategyIdeaMapper.xml
...ain/resources/mapper/strategy/SceneStrategyIdeaMapper.xml
+4
-0
StrategyMapper.xml
...ice/src/main/resources/mapper/strategy/StrategyMapper.xml
+4
-0
GreenwaveInfoMapper.xml
...e/src/main/resources/mapper/trend/GreenwaveInfoMapper.xml
+7
-0
CrossSchedulesPlanPO.java
...va/net/wanji/databus/dao/entity/CrossSchedulesPlanPO.java
+1
-1
CrossSectionPO.java
...ain/java/net/wanji/databus/dao/entity/CrossSectionPO.java
+0
-1
GreenwaveInfoPO.java
...in/java/net/wanji/databus/dao/entity/GreenwaveInfoPO.java
+54
-0
GreenwaveRealtimePO.java
...ava/net/wanji/databus/dao/entity/GreenwaveRealtimePO.java
+52
-0
BaseCrossSchedulesMapper.java
...et/wanji/databus/dao/mapper/BaseCrossSchedulesMapper.java
+2
-0
BaseCrossSectionMapper.java
.../net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
+2
-0
CrossDirDataRealtimeMapper.java
.../wanji/databus/dao/mapper/CrossDirDataRealtimeMapper.java
+2
-0
CrossSchedulesPlanMapper.java
...et/wanji/databus/dao/mapper/CrossSchedulesPlanMapper.java
+7
-2
GreenwaveRealtimeMapper.java
...net/wanji/databus/dao/mapper/GreenwaveRealtimeMapper.java
+13
-0
BaseCrossSchedulesMapper.xml
...us/src/main/resources/mapper/BaseCrossSchedulesMapper.xml
+13
-7
BaseCrossSectionMapper.xml
...abus/src/main/resources/mapper/BaseCrossSectionMapper.xml
+6
-0
CrossDirDataHistMapper.xml
...abus/src/main/resources/mapper/CrossDirDataHistMapper.xml
+4
-4
CrossDirDataRealtimeMapper.xml
.../src/main/resources/mapper/CrossDirDataRealtimeMapper.xml
+9
-3
CrossSchedulesPlanMapper.xml
...us/src/main/resources/mapper/CrossSchedulesPlanMapper.xml
+19
-5
GreenwaveRealtimeMapper.xml
...bus/src/main/resources/mapper/GreenwaveRealtimeMapper.xml
+13
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
c2ade2e4
...
...
@@ -14,9 +14,9 @@ import net.wanji.databus.po.BaseCrossLightsPO;
import
net.wanji.databus.vo.*
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.web.dto.*
;
import
net.wanji.
web.mapper.scheme
.CrossSchedulesPlanMapper
;
import
net.wanji.
databus.dao.mapper
.CrossSchedulesPlanMapper
;
import
net.wanji.databus.dao.entity.BaseCrossSchedulesPO
;
import
net.wanji.
web.po.scheme
.CrossSchedulesPlanPO
;
import
net.wanji.
databus.dao.entity
.CrossSchedulesPlanPO
;
import
net.wanji.web.service.FeignProxyService
;
import
net.wanji.web.service.PlanSendService
;
import
net.wanji.web.service.scheme.impl.RunningPlanServiceImpl
;
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/RunningPlanServiceImpl.java
View file @
c2ade2e4
...
...
@@ -11,8 +11,8 @@ import net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper;
import
net.wanji.databus.dao.mapper.BaseCrossSchemeMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossSectionMapper
;
import
net.wanji.databus.dto.RunningPlanDTO
;
import
net.wanji.
web.mapper.scheme
.CrossSchedulesPlanMapper
;
import
net.wanji.
web.po.scheme
.CrossSchedulesPlanPO
;
import
net.wanji.
databus.dao.mapper
.CrossSchedulesPlanMapper
;
import
net.wanji.
databus.dao.entity
.CrossSchedulesPlanPO
;
import
net.wanji.web.service.scheme.RunningPlanService
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.stereotype.Service
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/strategy/SceneStrategyIdeaMapper.java
View file @
c2ade2e4
...
...
@@ -23,4 +23,6 @@ public interface SceneStrategyIdeaMapper {
void
deleteByStrategyIds
(
List
<
Integer
>
ids
);
SceneStrategyIdeaPO
selectIdBySceneNum
(
Integer
sceneNum
);
List
<
String
>
selectAllNames
();
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/strategy/StrategyMapper.java
View file @
c2ade2e4
...
...
@@ -23,4 +23,6 @@ public interface StrategyMapper {
List
<
StrategyPO
>
selectByStrategyNameAndTarget
(
QueryStrategyDTO
queryStrategyDTO
);
StrategyPO
selectById
(
Integer
strategyId
);
List
<
String
>
selectAllNames
();
}
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/trend/GreenwaveInfoMapper.java
View file @
c2ade2e4
package
net
.
wanji
.
opt
.
dao
.
mapper
.
trend
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -15,5 +16,7 @@ import java.util.List;
public
interface
GreenwaveInfoMapper
{
List
<
GreenwaveListVO
>
listGreenwave
(
Integer
status
,
String
name
,
Integer
type
);
List
<
String
>
selectCrossIdsById
(
String
greenwaveId
);
List
<
String
>
selectCrossIdsById
(
Integer
greenwaveId
);
GreenwaveInfoPO
selectById
(
Integer
id
);
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
c2ade2e4
...
...
@@ -9,32 +9,47 @@ import net.wanji.common.enums.CrossStatusEnum;
import
net.wanji.common.enums.EventAlarmEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.BaseCrossSchedulesPO
;
import
net.wanji.databus.dao.entity.BaseCrossSchemePO
;
import
net.wanji.databus.dao.entity.CrossSchedulesPlanPO
;
import
net.wanji.databus.dao.entity.CrossSectionPO
;
import
net.wanji.databus.dao.entity.GreenwaveCrossPO
;
import
net.wanji.databus.dao.entity.GreenwaveHistPOExt
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.entity.GreenwaveRealtimePO
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.BaseCrossDirInfoMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossInfoMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossSchemeMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossSectionMapper
;
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.CrossSchedulesPlanMapper
;
import
net.wanji.databus.dao.mapper.CrossTurnDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveCrossMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveHistMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveRealtimeMapper
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.databus.po.BaseCrossInfoPO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
net.wanji.databus.po.CrossTurnDataRealtimePO
;
import
net.wanji.databus.po.TBaseCrossInfo
;
import
net.wanji.databus.vo.AbnormalCrossListVO
;
import
net.wanji.opt.bo.GreenwaveIdAndTimeStampBO
;
import
net.wanji.opt.bo.GreenwaveIdBO
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper
;
import
net.wanji.opt.dao.mapper.strategy.StrategyMapper
;
import
net.wanji.opt.dao.mapper.trend.EventAlarmMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.po.strategy.StrategyPO
;
import
net.wanji.opt.po.trend.EventAlarmPO
;
import
net.wanji.opt.service.TrendService
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
...
...
@@ -44,11 +59,10 @@ import net.wanji.opt.vo.EventAlarmVO;
import
net.wanji.opt.vo.GreenWaveCrossMonitorVO
;
import
net.wanji.opt.vo.GreenwaveCrossMetricsVO
;
import
net.wanji.opt.vo.GreenwaveDetailVO
;
import
net.wanji.opt.vo.GreenwaveRunMonitorVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveRunMonitorVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
org.springframework.stereotype.Service
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
...
...
@@ -78,6 +92,12 @@ public class TrendServiceImpl implements TrendService {
private
final
GreenwaveCrossMapper
greenwaveCrossMapper
;
private
final
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
;
private
final
GreenwaveHistMapper
greenwaveHistMapper
;
private
final
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
;
private
final
StrategyMapper
strategyMapper
;
private
final
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
;
private
final
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
@@ -86,7 +106,7 @@ public class TrendServiceImpl implements TrendService {
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
,
CrossDirDataHistMapper
crossDirDataHistMapper
,
EventAlarmMapper
eventAlarmMapper
,
RidInfoMapper
ridInfoMapper
,
BaseCrossDirInfoMapper
baseCrossDirInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
)
{
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
GreenwaveCrossMapper
greenwaveCrossMapper
,
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
,
GreenwaveHistMapper
greenwaveHistMapper
,
GreenwaveRealtimeMapper
greenwaveRealtimeMapper
,
SceneStrategyIdeaMapper
strategyIdeaMapper
,
StrategyMapper
strategyMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
BaseCrossSchemeMapper
crossSchemeMapper
,
BaseCrossSchemeMapper
baseCrossSchemeMapper
)
{
this
.
greenwaveInfoMapper
=
greenwaveInfoMapper
;
this
.
baseCrossInfoMapper
=
baseCrossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
...
...
@@ -99,6 +119,12 @@ public class TrendServiceImpl implements TrendService {
this
.
greenwaveCrossMapper
=
greenwaveCrossMapper
;
this
.
crossDirDataRealtimeMapper
=
crossDirDataRealtimeMapper
;
this
.
greenwaveHistMapper
=
greenwaveHistMapper
;
this
.
greenwaveRealtimeMapper
=
greenwaveRealtimeMapper
;
this
.
strategyMapper
=
strategyMapper
;
this
.
baseCrossSchedulesMapper
=
baseCrossSchedulesMapper
;
this
.
crossSchedulesPlanMapper
=
crossSchedulesPlanMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSchemeMapper
=
baseCrossSchemeMapper
;
}
@Override
...
...
@@ -117,7 +143,7 @@ public class TrendServiceImpl implements TrendService {
// 计算持续时间
buildDuration
(
greenwaveListVO
);
// 构造路口列表
String
greenwaveId
=
greenwaveListVO
.
getId
();
Integer
greenwaveId
=
greenwaveListVO
.
getId
();
List
<
GreenwaveListVO
.
CrossListElement
>
crossList
=
buildCrossList
(
greenwaveId
);
greenwaveListVO
.
setCrossList
(
crossList
);
}
...
...
@@ -354,7 +380,148 @@ public class TrendServiceImpl implements TrendService {
@Override
public
GreenwaveDetailVO
greenwaveDetail
(
GreenwaveIdBO
greenwaveIdBO
)
{
return
null
;
Integer
greenwaveId
=
greenwaveIdBO
.
getGreenwaveId
();
GreenwaveDetailVO
res
=
new
GreenwaveDetailVO
();
GreenwaveRealtimePO
greenwaveRealtimePO
=
greenwaveRealtimeMapper
.
selectById
(
greenwaveId
);
GreenwaveInfoPO
greenwaveInfoPO
=
greenwaveInfoMapper
.
selectById
(
greenwaveId
);
res
.
setName
(
greenwaveInfoPO
.
getName
());
res
.
setStatus
(
greenwaveInfoPO
.
getStatus
());
double
uncoordinatePhaseQueue
=
greenwaveRealtimePO
.
getUncoordinatePhaseQueue
();
res
.
setUncoordinatePhaseQueue
((
int
)
uncoordinatePhaseQueue
);
double
noparkPassRate
=
greenwaveRealtimePO
.
getNoparkPassRate
();
res
.
setNoparkPassRate
((
int
)
(
noparkPassRate
*
100
));
res
.
setTrvalTime
(
greenwaveRealtimePO
.
getTrvalTime
());
List
<
String
>
strategyList
=
strategyMapper
.
selectAllNames
();
res
.
setStrategyList
(
strategyList
);
Integer
strategyId
=
greenwaveInfoPO
.
getStrategyId
();
StrategyPO
strategyPO
=
strategyMapper
.
selectById
(
strategyId
);
res
.
setStrategy
(
strategyPO
.
getStrategyName
());
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
greenwaveCrossList
=
buildGreenwaveCrossList
(
greenwaveId
);
res
.
setGreenwaveCrossList
(
greenwaveCrossList
);
return
res
;
}
private
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
buildGreenwaveCrossList
(
Integer
greenwaveId
)
{
List
<
GreenwaveDetailVO
.
GreenwaveCross
>
res
=
new
ArrayList
<>();
List
<
GreenwaveCrossPO
>
greenwaveCrossList
=
greenwaveCrossMapper
.
selectByGreenwaveId
(
greenwaveId
);
int
size
=
greenwaveCrossList
.
size
();
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
GreenwaveCrossPO
greenwaveCrossPO
=
greenwaveCrossList
.
get
(
i
);
GreenwaveDetailVO
.
GreenwaveCross
greenwaveCross
=
new
GreenwaveDetailVO
.
GreenwaveCross
();
String
crossId
=
greenwaveCrossPO
.
getCrossId
();
greenwaveCross
.
setCrossId
(
crossId
);
BaseCrossInfoPO
baseCrossInfoPO
=
baseCrossInfoMapper
.
selectById
(
crossId
);
greenwaveCross
.
setCrossName
(
baseCrossInfoPO
.
getName
());
// 根据路段获取距离
Integer
distanceToNextCross
=
null
;
if
(
i
<
size
-
1
)
{
// 不是最后一个路口
distanceToNextCross
=
calcDistance
(
greenwaveCrossList
,
i
,
crossId
);
}
greenwaveCross
.
setDistanceToNextCross
(
distanceToNextCross
);
// 查找方向平均速度
Double
speed
=
calcSpeed
(
greenwaveCrossList
,
i
,
crossId
);
greenwaveCross
.
setSpeed
(
speed
);
// 根据当前时间获取方案信息
Date
todayDate
=
new
Date
();
// 获取当前执行的调度
BaseCrossSchedulesPO
baseCrossSchedulesPO
=
baseCrossSchedulesMapper
.
selectExecByCrossId
(
crossId
);
Integer
schedulesId
=
baseCrossSchedulesPO
.
getId
();
// 获取日计划
Integer
planId
=
null
;
// 判断是否是特殊日期
CrossSchedulesPlanPO
crossSchedulesPlanPO
=
crossSchedulesPlanMapper
.
selectBySpecialDate
(
crossId
,
schedulesId
,
todayDate
);
if
(
ObjectUtil
.
isNotEmpty
(
crossSchedulesPlanPO
))
{
planId
=
crossSchedulesPlanPO
.
getPlanId
();
}
else
{
// 判断是星期几
int
weekday
=
convertWeekDay
(
DateUtil
.
dayOfWeek
(
todayDate
));
CrossSchedulesPlanPO
weekdayPlanPO
=
crossSchedulesPlanMapper
.
selectByWeekday
(
crossId
,
schedulesId
,
weekday
);
planId
=
weekdayPlanPO
.
getPlanId
();
}
// 获取当前执行的方案
List
<
CrossSectionPO
>
baseCrossSectionPOList
=
baseCrossSectionMapper
.
selectByCrossAndPlan
(
crossId
,
planId
);
Integer
currentSchemeId
=
findCurrentScheme
(
baseCrossSectionPOList
,
todayDate
);
BaseCrossSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectById
(
currentSchemeId
);
greenwaveCross
.
setOffset
(
baseCrossSchemePO
.
getOffset
());
List
<
GreenwaveDetailVO
.
GreenwavePhase
>
greenwavePhaseList
=
getGreenwavePhaseList
();
greenwaveCross
.
setGreenwavePhaseList
(
greenwavePhaseList
);
res
.
add
(
greenwaveCross
);
}
return
res
;
}
private
List
<
GreenwaveDetailVO
.
GreenwavePhase
>
getGreenwavePhaseList
()
{
List
<
GreenwaveDetailVO
.
GreenwavePhase
>
res
=
new
ArrayList
<>();
return
res
;
}
private
Integer
findCurrentScheme
(
List
<
CrossSectionPO
>
baseCrossSectionPOList
,
Date
todayDate
)
{
Integer
schemeId
=
null
;
for
(
CrossSectionPO
crossSectionPO
:
baseCrossSectionPOList
)
{
String
startTimeRaw
=
crossSectionPO
.
getStartTime
();
String
endTimeRaw
=
crossSectionPO
.
getEndTime
();
String
startTimeStr
=
startTimeRaw
.
replace
(
":"
,
""
);
String
endTimeStr
=
endTimeRaw
.
replace
(
":"
,
""
);
int
startTime
=
Integer
.
parseInt
(
startTimeStr
);
int
endTime
=
Integer
.
parseInt
(
endTimeStr
);
String
todayRaw
=
DateUtil
.
format
(
todayDate
,
"HH:mm"
);
String
todayStr
=
todayRaw
.
replace
(
":"
,
""
);
int
todayTime
=
Integer
.
parseInt
(
todayStr
);
if
(
todayTime
>=
startTime
&&
todayTime
<=
endTime
)
{
schemeId
=
crossSectionPO
.
getSchemeId
();
}
}
return
schemeId
;
}
private
int
convertWeekDay
(
int
i
)
{
if
(
1
==
i
)
{
return
7
;
}
return
i
-
1
;
}
private
Double
calcSpeed
(
List
<
GreenwaveCrossPO
>
greenwaveCrossList
,
int
i
,
String
currentCrossId
)
{
int
size
=
greenwaveCrossList
.
size
();
int
lastCrossIndex
=
size
-
1
;
if
(
i
!=
lastCrossIndex
)
{
// 不是最后一个路口
GreenwaveCrossPO
nextCross
=
greenwaveCrossList
.
get
(
i
+
1
);
String
nextCrossId
=
nextCross
.
getCrossId
();
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
currentCrossId
,
nextCrossId
);
Integer
outDir
=
ridInfoEntity
.
getOutDir
();
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
crossDirDataRealtimeMapper
.
selectByCrossIdAndDirType
(
currentCrossId
,
outDir
);
return
crossDirDataRealtimePO
.
getSpeed
();
}
else
{
GreenwaveCrossPO
preCross
=
greenwaveCrossList
.
get
(
i
-
1
);
String
preCrossId
=
preCross
.
getCrossId
();
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
preCrossId
,
currentCrossId
);
Integer
inDir
=
ridInfoEntity
.
getInDir
();
CrossDirDataRealtimePO
crossDirDataRealtimePO
=
crossDirDataRealtimeMapper
.
selectByInDir
(
currentCrossId
,
inDir
);
return
crossDirDataRealtimePO
.
getSpeed
();
}
}
private
Integer
calcDistance
(
List
<
GreenwaveCrossPO
>
greenwaveCrossList
,
int
i
,
String
currentCrossId
)
{
GreenwaveCrossPO
nextCross
=
greenwaveCrossList
.
get
(
i
+
1
);
String
nextCrossId
=
nextCross
.
getCrossId
();
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
currentCrossId
,
nextCrossId
);
double
length
=
ridInfoEntity
.
getLength
();
return
(
int
)
length
;
}
@Override
...
...
@@ -593,7 +760,7 @@ public class TrendServiceImpl implements TrendService {
}
}
private
List
<
GreenwaveListVO
.
CrossListElement
>
buildCrossList
(
String
greenwaveId
)
{
private
List
<
GreenwaveListVO
.
CrossListElement
>
buildCrossList
(
Integer
greenwaveId
)
{
List
<
GreenwaveListVO
.
CrossListElement
>
crossList
=
new
ArrayList
<>();
List
<
String
>
crossIdList
=
greenwaveInfoMapper
.
selectCrossIdsById
(
greenwaveId
);
if
(
CollectionUtil
.
isNotEmpty
(
crossIdList
))
{
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenwaveDetailVO.java
View file @
c2ade2e4
...
...
@@ -51,5 +51,13 @@ public class GreenwaveDetailVO {
@NoArgsConstructor
@Data
public
static
class
GreenwavePhase
{
@ApiModelProperty
(
value
=
"相位序"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"相位号"
)
private
String
phaseNo
;
@ApiModelProperty
(
value
=
"相位持续时间(秒)"
)
private
Integer
seconds
;
@ApiModelProperty
(
value
=
"是否协调相位 0否 1是"
)
private
Integer
isCoordinate
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenwaveListVO.java
View file @
c2ade2e4
...
...
@@ -14,7 +14,7 @@ import java.util.List;
@ApiModel
(
value
=
"GreenwaveListVO"
,
description
=
"问题子区列表元素"
)
public
class
GreenwaveListVO
{
@ApiModelProperty
(
value
=
"绿波ID"
)
private
String
id
;
private
Integer
id
;
@ApiModelProperty
(
value
=
"子区名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"协调方式:0未开启;1相位差优化;2选择方案"
)
...
...
signal-optimize-service/src/main/resources/mapper/strategy/SceneStrategyIdeaMapper.xml
View file @
c2ade2e4
...
...
@@ -60,5 +60,9 @@
and t1.strategy_id = t2.strategy_id
ORDER BY t1.idea_order desc limit 1
</select>
<select
id=
"selectAllNames"
resultType=
"java.lang.String"
>
SELECT idea_name
FROM t_strategy_idea
</select>
</mapper>
signal-optimize-service/src/main/resources/mapper/strategy/StrategyMapper.xml
View file @
c2ade2e4
...
...
@@ -61,5 +61,9 @@
from t_strategy_strategy
where id = #{strategyId}
</select>
<select
id=
"selectAllNames"
resultType=
"java.lang.String"
>
SELECT strategy_name
FROM t_strategy_strategy
</select>
</mapper>
signal-optimize-service/src/main/resources/mapper/trend/GreenwaveInfoMapper.xml
View file @
c2ade2e4
...
...
@@ -27,4 +27,11 @@
WHERE t2.green_id = #{greenwaveId}
</select>
<select
id=
"selectById"
resultType=
"net.wanji.databus.dao.entity.GreenwaveInfoPO"
>
select
id,strategy_id,name,length,width,dir,start_time,end_time,design_speed,design_cycly,section_id,status,wkt,gmt_create,gmt_modified
from t_greenwave_info
where id = #{id}
</select>
</mapper>
signal-control-service/src/main/java/net/wanji/web/po/scheme
/CrossSchedulesPlanPO.java
→
wj-databus/src/main/java/net/wanji/databus/dao/entity
/CrossSchedulesPlanPO.java
View file @
c2ade2e4
package
net
.
wanji
.
web
.
po
.
scheme
;
package
net
.
wanji
.
databus
.
dao
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
wj-databus/src/main/java/net/wanji/databus/dao/entity/CrossSectionPO.java
View file @
c2ade2e4
...
...
@@ -2,7 +2,6 @@ package net.wanji.databus.dao.entity;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
...
...
wj-databus/src/main/java/net/wanji/databus/dao/entity/GreenwaveInfoPO.java
0 → 100644
View file @
c2ade2e4
package
net
.
wanji
.
databus
.
dao
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
GreenwaveInfoPO
{
/** 绿波ID */
@ApiModelProperty
(
name
=
"绿波ID"
,
notes
=
""
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"策略ID"
,
notes
=
""
)
private
Integer
strategyId
;
/** 绿波名称 */
@ApiModelProperty
(
name
=
"绿波名称"
,
notes
=
""
)
private
String
name
;
/** 绿波路段长度(米) */
@ApiModelProperty
(
name
=
"绿波路段长度(米)"
,
notes
=
""
)
private
Double
length
;
/** 绿波带宽(米) */
@ApiModelProperty
(
name
=
"绿波带宽(米)"
,
notes
=
""
)
private
Double
width
;
/** 协调方向:0正向;1反向;2双向 */
@ApiModelProperty
(
name
=
"协调方向:0正向;1反向;2双向"
,
notes
=
""
)
private
Integer
dir
;
/** 开始时间 */
@ApiModelProperty
(
name
=
"开始时间"
,
notes
=
""
)
private
Date
startTime
;
/** 结束时间 */
@ApiModelProperty
(
name
=
"结束时间"
,
notes
=
""
)
private
Date
endTime
;
/** 设计速度(km/h) */
@ApiModelProperty
(
name
=
"设计速度(km/h)"
,
notes
=
""
)
private
Double
designSpeed
;
/** 设计周期(秒) */
@ApiModelProperty
(
name
=
"设计周期(秒)"
,
notes
=
""
)
private
Double
designCycly
;
/** 时段ID */
@ApiModelProperty
(
name
=
"时段ID"
,
notes
=
""
)
private
Integer
sectionId
;
/** 协调方式:0未开启;1相位差优化;2选择方案 */
@ApiModelProperty
(
name
=
"协调方式:0未开启;1相位差优化;2选择方案"
,
notes
=
""
)
private
Integer
status
;
/** 区域边界 */
@ApiModelProperty
(
name
=
"区域边界"
,
notes
=
""
)
private
String
wkt
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
wj-databus/src/main/java/net/wanji/databus/dao/entity/GreenwaveRealtimePO.java
0 → 100644
View file @
c2ade2e4
package
net
.
wanji
.
databus
.
dao
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
GreenwaveRealtimePO
{
/** 绿波ID */
@ApiModelProperty
(
name
=
"绿波ID"
,
notes
=
""
)
private
Integer
id
;
/** 交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知 */
@ApiModelProperty
(
name
=
"交通状态:1畅通;2缓行;3拥堵;4严重拥堵;5未知"
,
notes
=
""
)
private
Integer
status
;
/** 拥堵类型:1常规;2异常 */
@ApiModelProperty
(
name
=
"拥堵类型:1常规;2异常"
,
notes
=
""
)
private
Integer
type
;
/** 交通指数 */
@ApiModelProperty
(
name
=
"交通指数"
,
notes
=
""
)
private
Double
trafficIndex
;
/** 行程速度(km/h) */
@ApiModelProperty
(
name
=
"行程速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
/** 行程时间(秒) */
@ApiModelProperty
(
name
=
"行程时间(秒)"
,
notes
=
""
)
private
Integer
trvalTime
;
/** 停车次数 */
@ApiModelProperty
(
name
=
"停车次数"
,
notes
=
""
)
private
Double
stopTimes
;
/** 拥堵距离(米) */
@ApiModelProperty
(
name
=
"拥堵距离(米)"
,
notes
=
""
)
private
Double
queueLength
;
/** 拥堵比例 */
@ApiModelProperty
(
name
=
"拥堵比例"
,
notes
=
""
)
private
Double
congRate
;
/** 延误时间(秒) */
@ApiModelProperty
(
name
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
/** 不停车通过率 */
@ApiModelProperty
(
name
=
"不停车通过率"
,
notes
=
""
)
private
Double
noparkPassRate
;
/** 非协调相位二次排队 */
@ApiModelProperty
(
name
=
"非协调相位二次排队"
,
notes
=
""
)
private
Double
uncoordinatePhaseQueue
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossSchedulesMapper.java
View file @
c2ade2e4
...
...
@@ -46,4 +46,6 @@ public interface BaseCrossSchedulesMapper {
void
updateStatus
(
Integer
scheduleId
);
BaseCrossSchedulesPO
selectById
(
Integer
scheduleId
);
BaseCrossSchedulesPO
selectExecByCrossId
(
String
crossId
);
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
View file @
c2ade2e4
...
...
@@ -20,4 +20,6 @@ public interface BaseCrossSectionMapper {
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
List
<
CrossSectionPO
>
listCrossSectionPO
(
@Param
(
"entity"
)
CrossSectionPO
entity
);
List
<
CrossSectionPO
>
selectByCrossAndPlan
(
String
crossId
,
Integer
planId
);
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDirDataRealtimeMapper.java
View file @
c2ade2e4
...
...
@@ -24,4 +24,6 @@ public interface CrossDirDataRealtimeMapper extends BaseMapper<CrossDirDataRealt
Integer
selectStatus
(
String
secondId
,
Integer
inDir
,
int
inOutType
);
List
<
CrossDirDataRealtimePO
>
selectBycrossId
(
String
crossId
);
CrossDirDataRealtimePO
selectByInDir
(
String
currentCrossId
,
Integer
key
);
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme
/CrossSchedulesPlanMapper.java
→
wj-databus/src/main/java/net/wanji/databus/dao/mapper
/CrossSchedulesPlanMapper.java
View file @
c2ade2e4
package
net
.
wanji
.
web
.
mapper
.
scheme
;
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
net.wanji.web.po.scheme.CrossSchedulesPlanPO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
net.wanji.databus.dao.entity.CrossSchedulesPlanPO
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -21,4 +22,8 @@ public interface CrossSchedulesPlanMapper {
List
<
CrossSchedulesPlanPO
>
selectByCrossIdAndSchedulesId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schedulesId"
)
Integer
schedulesId
);
CrossSchedulesPlanPO
selectBySpecialDate
(
String
crossId
,
Integer
schedulesId
,
Date
todayDate
);
CrossSchedulesPlanPO
selectByWeekday
(
String
crossId
,
Integer
schedulesId
,
int
weekday
);
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/GreenwaveRealtimeMapper.java
0 → 100644
View file @
c2ade2e4
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
net.wanji.databus.dao.entity.GreenwaveRealtimePO
;
import
org.springframework.stereotype.Repository
;
/**
* @author Kent HAN
* @date 2022/10/31 11:03
*/
@Repository
public
interface
GreenwaveRealtimeMapper
{
GreenwaveRealtimePO
selectById
(
Integer
id
);
}
wj-databus/src/main/resources/mapper/BaseCrossSchedulesMapper.xml
View file @
c2ade2e4
...
...
@@ -13,6 +13,10 @@
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<sql
id=
"baseColumnList"
>
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
</sql>
<insert
id=
"insertOne"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into t_base_cross_schedules(schedule_no,name,status,cross_id)
values (#{scheduleNo},#{name},#{status},#{crossId})
...
...
@@ -36,22 +40,19 @@
</delete>
<select
id=
"selectByCrossId"
resultMap=
"BaseResultMap"
>
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules
where cross_id = #{crossId}
</select>
<select
id=
"selectByCrossIdAndScheduleNo"
resultType=
"net.wanji.databus.dao.entity.BaseCrossSchedulesPO"
>
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules
where cross_id = #{crossId} and schedule_no = #{scheduleNo}
</select>
<select
id=
"selectById"
resultType=
"net.wanji.databus.dao.entity.BaseCrossSchedulesPO"
>
select
id,schedule_no,name,status,cross_id,gmt_create,gmt_modified
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules
where id = #{scheduleId}
</select>
...
...
@@ -108,5 +109,10 @@
</if>
</select>
<select
id=
"selectExecByCrossId"
resultType=
"net.wanji.databus.dao.entity.BaseCrossSchedulesPO"
>
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules
where cross_id = #{crossId} and status = 1
</select>
</mapper>
</mapper>
\ No newline at end of file
wj-databus/src/main/resources/mapper/BaseCrossSectionMapper.xml
View file @
c2ade2e4
...
...
@@ -51,5 +51,11 @@
</where>
</select>
<select
id=
"selectByCrossAndPlan"
resultType=
"net.wanji.databus.dao.entity.CrossSectionPO"
>
select
<include
refid=
"Base_Column_list"
/>
from t_base_cross_section
where cross_id = #{crossId} and plan_id = #{planId}
</select>
</mapper>
wj-databus/src/main/resources/mapper/CrossDirDataHistMapper.xml
View file @
c2ade2e4
...
...
@@ -78,7 +78,7 @@
<select
id=
"selectNoPark"
resultType=
"net.wanji.databus.po.CrossDirDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type =
1
and dir_type = #{dir}
where cross_id = #{crossId} and in_out_type =
2
and dir_type = #{dir}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
...
...
@@ -86,7 +86,7 @@
<select
id=
"selectPhaseQueue"
resultType=
"net.wanji.databus.po.CrossDirDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type =
1
and dir_type != #{dir}
where cross_id = #{crossId} and in_out_type =
2
and dir_type != #{dir}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
...
...
@@ -94,7 +94,7 @@
<select
id=
"selectNoParkEnd"
resultType=
"net.wanji.databus.po.CrossDirDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type =
2
and dir_type = #{dir}
where cross_id = #{crossId} and in_out_type =
1
and dir_type = #{dir}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
...
...
@@ -102,7 +102,7 @@
<select
id=
"selectPhaseQueueEnd"
resultType=
"net.wanji.databus.po.CrossDirDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_hist
where cross_id = #{crossId} and in_out_type =
2
and dir_type != #{dir}
where cross_id = #{crossId} and in_out_type =
1
and dir_type != #{dir}
and batch_time
<![CDATA[ <= ]]>
#{currentSeconds}
and batch_time
<![CDATA[ >= ]]>
#{preSeconds}
</select>
...
...
wj-databus/src/main/resources/mapper/CrossDirDataRealtimeMapper.xml
View file @
c2ade2e4
...
...
@@ -26,8 +26,8 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,dir_type,in_out_type,cross_id,length,status,traffic_index,start_time,capacity,
duration,flow,speed,queue_length
,
stop_times,delay_time,sturation
,batch_time,gmt_create,gmt_modified,effusion_time
id,dir_type,in_out_type,cross_id,length,status,traffic_index,start_time,capacity,
flow,speed,queue_length,stop_times
,
delay_time,sturation,no_stop_rate,one_stop_rate,two_stop_rate,three_stop_rate
,batch_time,gmt_create,gmt_modified,effusion_time
</sql>
<insert
id=
"insertBatch"
parameterType=
"net.wanji.databus.po.CrossDirDataRealtimePO"
>
...
...
@@ -51,7 +51,7 @@
<select
id=
"selectByCrossIdAndDirType"
resultType=
"net.wanji.databus.po.CrossDirDataRealtimePO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_realtime
where cross_id = #{crossId} and dir_type = #{key} and in_out_type =
1
where cross_id = #{crossId} and dir_type = #{key} and in_out_type =
2
</select>
<select
id=
"selectByCrossIdAndInOutType"
resultType=
"net.wanji.databus.po.CrossDirDataRealtimePO"
>
...
...
@@ -72,4 +72,10 @@
where cross_id = #{crossId}
</select>
<select
id=
"selectByInDir"
resultType=
"net.wanji.databus.po.CrossDirDataRealtimePO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_realtime
where cross_id = #{currentCrossId} and dir_type = #{key} and in_out_type = 1
</select>
</mapper>
\ No newline at end of file
signal-control-service/src/main/resources/mapper/scheme
/CrossSchedulesPlanMapper.xml
→
wj-databus/src/main/resources/mapper
/CrossSchedulesPlanMapper.xml
View file @
c2ade2e4
<?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.
web.mapper.scheme
.CrossSchedulesPlanMapper"
>
<mapper
namespace=
"net.wanji.
databus.dao.mapper
.CrossSchedulesPlanMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
type=
"net.wanji.
web.po.scheme
.CrossSchedulesPlanPO"
id=
"BaseResultMap"
>
<resultMap
type=
"net.wanji.
databus.dao.entity
.CrossSchedulesPlanPO"
id=
"BaseResultMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"crossId"
column=
"cross_id"
/>
<result
property=
"schedulesId"
column=
"schedules_id"
/>
...
...
@@ -13,6 +13,10 @@
<result
property=
"gmtCreate"
column=
"gmt_create"
/>
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<sql
id=
"baseColumnList"
>
id,cross_id,schedules_id,plan_id,week,special_date,gmt_create,gmt_modified
</sql>
<insert
id=
"insertOne"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into t_base_cross_schedules_plan(cross_id,schedules_id,plan_id,week,special_date)
...
...
@@ -24,12 +28,22 @@
WHERE cross_id = #{crossId}
</delete>
<select
id=
"selectByCrossIdAndSchedulesId"
resultType=
"net.wanji.web.po.scheme.CrossSchedulesPlanPO"
>
select
id,cross_id,schedules_id,plan_id,week,special_date,gmt_create,gmt_modified
<select
id=
"selectByCrossIdAndSchedulesId"
resultType=
"net.wanji.databus.dao.entity.CrossSchedulesPlanPO"
>
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId}
</select>
<select
id=
"selectBySpecialDate"
resultType=
"net.wanji.databus.dao.entity.CrossSchedulesPlanPO"
>
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and DATE(special_date) = DATE(#{todayDate});
</select>
<select
id=
"selectByWeekday"
resultType=
"net.wanji.databus.dao.entity.CrossSchedulesPlanPO"
>
select
<include
refid=
"baseColumnList"
/>
from t_base_cross_schedules_plan
where cross_id = #{crossId} and schedules_id = #{schedulesId} and week = #{weekday};
</select>
</mapper>
wj-databus/src/main/resources/mapper/GreenwaveRealtimeMapper.xml
0 → 100644
View file @
c2ade2e4
<?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.databus.dao.mapper.GreenwaveRealtimeMapper"
>
<select
id=
"selectById"
resultType=
"net.wanji.databus.dao.entity.GreenwaveRealtimePO"
>
select
id,status,type,traffic_index,speed,trval_time,stop_times,queue_length,cong_rate,delay_time,nopark_pass_rate,uncoordinate_phase_queue,gmt_create,gmt_modified
from t_greenwave_realtime
where id = #{id}
</select>
</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