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
539d5509
Commit
539d5509
authored
Apr 05, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化后绿灯时长计算
parent
26c52ebc
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
15 deletions
+20
-15
CrossPhaseInfoCache.java
...rc/main/java/net/wanji/opt/cache/CrossPhaseInfoCache.java
+1
-1
CrossPhaseMapper.java
.../main/java/net/wanji/opt/dao/mapper/CrossPhaseMapper.java
+1
-1
CrossPhaseServiceImpl.java
...ava/net/wanji/opt/service/impl/CrossPhaseServiceImpl.java
+2
-1
DiagnoServiceImpl.java
...in/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
+15
-12
Constants.java
...n/src/main/java/net/wanji/common/framework/Constants.java
+1
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/cache/CrossPhaseInfoCache.java
View file @
539d5509
...
@@ -65,7 +65,7 @@ public class CrossPhaseInfoCache implements CommandLineRunner {
...
@@ -65,7 +65,7 @@ public class CrossPhaseInfoCache implements CommandLineRunner {
}
}
public
void
init
()
{
public
void
init
()
{
List
<
CrossPhasePO
>
crossPhasePOS
=
crossPhaseMapper
.
listCrossPhase
(
Constants
.
SystemParam
.
NULL
,
Constants
.
SystemParam
.
NULL
);
List
<
CrossPhasePO
>
crossPhasePOS
=
crossPhaseMapper
.
listCrossPhase
(
Constants
.
SystemParam
.
NULL
,
Constants
.
SystemParam
.
NULL
_INT
);
if
(!
CollectionUtils
.
isEmpty
(
crossPhasePOS
))
{
if
(!
CollectionUtils
.
isEmpty
(
crossPhasePOS
))
{
crossPhaseInfoMap
=
crossPhasePOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossPhasePO:
:
getCrossId
));
crossPhaseInfoMap
=
crossPhasePOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossPhasePO:
:
getCrossId
));
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/CrossPhaseMapper.java
View file @
539d5509
...
@@ -18,5 +18,5 @@ public interface CrossPhaseMapper {
...
@@ -18,5 +18,5 @@ public interface CrossPhaseMapper {
* 查询相位基础信息列表
* 查询相位基础信息列表
* @return
* @return
*/
*/
List
<
CrossPhasePO
>
listCrossPhase
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
String
schemeId
);
List
<
CrossPhasePO
>
listCrossPhase
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossPhaseServiceImpl.java
View file @
539d5509
package
net
.
wanji
.
opt
.
service
.
impl
;
package
net
.
wanji
.
opt
.
service
.
impl
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.opt.dao.mapper.CrossPhaseLightsMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseLightsMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
...
@@ -40,7 +41,7 @@ public class CrossPhaseServiceImpl implements CrossPhaseService {
...
@@ -40,7 +41,7 @@ public class CrossPhaseServiceImpl implements CrossPhaseService {
public
List
<
CrossPhaseDTO
>
listCrossPhase
()
{
public
List
<
CrossPhaseDTO
>
listCrossPhase
()
{
// 获取相位信息
// 获取相位信息
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
""
,
""
);
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
""
,
Constants
.
SystemParam
.
NULL_INT
);
return
BeanListUtils
.
populateList
(
crossPhasePOList
,
new
ArrayList
<>(),
CrossPhaseDTO
.
class
);
return
BeanListUtils
.
populateList
(
crossPhasePOList
,
new
ArrayList
<>(),
CrossPhaseDTO
.
class
);
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
View file @
539d5509
...
@@ -213,15 +213,15 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -213,15 +213,15 @@ public class DiagnoServiceImpl implements DiagnoService {
CrossSchemeOptLogPO
crossSchemeOptLogPO
=
maxList
.
get
(
0
);
CrossSchemeOptLogPO
crossSchemeOptLogPO
=
maxList
.
get
(
0
);
String
optType
=
crossSchemeOptLogPO
.
getOptType
();
String
optType
=
crossSchemeOptLogPO
.
getOptType
();
schemeOptVO
.
setOptType
(
Integer
.
parseInt
(
optType
));
schemeOptVO
.
setOptType
(
Integer
.
parseInt
(
optType
));
Integer
scheme
Id
=
crossSchemeOptLogPO
.
getSchemeId
();
Integer
scheme
No
=
crossSchemeOptLogPO
.
getSchemeId
();
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectBy
Id
(
schemeId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectBy
CrossIdAndSchemeNo
(
crossId
,
schemeNo
.
toString
()
);
if
(
crossSchemePO
!=
null
)
{
if
(
crossSchemePO
!=
null
)
{
schemeOptVO
.
setCycle
(
crossSchemePO
.
getCycle
());
schemeOptVO
.
setCycle
(
crossSchemePO
.
getCycle
());
schemeOptVO
.
setSchemeId
(
crossSchemePO
.
getId
());
schemeOptVO
.
setSchemeId
(
crossSchemePO
.
getId
());
schemeOptVO
.
setOffset
(
crossSchemeOptLogPO
.
getOffset
());
schemeOptVO
.
setOffset
(
crossSchemeOptLogPO
.
getOffset
());
}
}
// 构造调整时间列表
// 构造调整时间列表
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
buildPhaseOptTimeList
(
collect
,
schemeId
);
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
buildPhaseOptTimeList
(
collect
,
scheme
No
,
cross
Id
);
schemeOptVO
.
setPhaseOptTimeList
(
phaseOptTimeList
);
schemeOptVO
.
setPhaseOptTimeList
(
phaseOptTimeList
);
}
else
{
}
else
{
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
...
@@ -328,7 +328,7 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -328,7 +328,7 @@ public class DiagnoServiceImpl implements DiagnoService {
Map
<
String
,
Integer
>
phaseOffsetTimeMap
)
{
Map
<
String
,
Integer
>
phaseOffsetTimeMap
)
{
List
<
SchemeSendVO
.
Pattern
.
Ring
>
rings
=
new
ArrayList
<>();
List
<
SchemeSendVO
.
Pattern
.
Ring
>
rings
=
new
ArrayList
<>();
// 根据路口ID和方案ID查询相位集合,根据ringNo分组,特殊控制ringNo为0
// 根据路口ID和方案ID查询相位集合,根据ringNo分组,特殊控制ringNo为0
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
sendCrossId
,
schemeId
.
toString
()
);
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
sendCrossId
,
schemeId
);
Map
<
Integer
,
List
<
CrossPhasePO
>>
collectMap
=
crossPhasePOList
.
stream
()
Map
<
Integer
,
List
<
CrossPhasePO
>>
collectMap
=
crossPhasePOList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
CrossPhasePO:
:
getRingNo
));
.
collect
(
Collectors
.
groupingBy
(
CrossPhasePO:
:
getRingNo
));
for
(
Map
.
Entry
<
Integer
,
List
<
CrossPhasePO
>>
entry
:
collectMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Integer
,
List
<
CrossPhasePO
>>
entry
:
collectMap
.
entrySet
())
{
...
@@ -650,7 +650,7 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -650,7 +650,7 @@ public class DiagnoServiceImpl implements DiagnoService {
}
}
private
Integer
getNewGreenTime
(
String
crossId
,
Integer
schemeId
,
String
phaseNo
)
{
private
Integer
getNewGreenTime
(
String
crossId
,
Integer
schemeId
,
String
phaseNo
)
{
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
crossId
,
String
.
valueOf
(
schemeId
)
);
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
crossId
,
schemeId
);
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
String
newPhaseNo
=
crossPhasePO
.
getPhaseNo
();
String
newPhaseNo
=
crossPhasePO
.
getPhaseNo
();
if
(
Objects
.
equals
(
phaseNo
,
newPhaseNo
))
{
if
(
Objects
.
equals
(
phaseNo
,
newPhaseNo
))
{
...
@@ -661,26 +661,29 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -661,26 +661,29 @@ public class DiagnoServiceImpl implements DiagnoService {
}
}
private
List
<
SchemeOptVO
.
PhaseOptTime
>
buildPhaseOptTimeList
(
private
List
<
SchemeOptVO
.
PhaseOptTime
>
buildPhaseOptTimeList
(
Collection
<
CrossSchemeOptLogPO
>
crossSchemeOptLogPOList
,
Integer
schemeId
)
{
Collection
<
CrossSchemeOptLogPO
>
crossSchemeOptLogPOList
,
Integer
scheme
No
,
String
cross
Id
)
{
// 初始化列表
// 初始化列表
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
initPhaseOptTimeList
(
scheme
Id
,
phaseOptTimeList
);
initPhaseOptTimeList
(
scheme
No
,
phaseOptTimeList
,
crossId
);
for
(
CrossSchemeOptLogPO
crossSchemeOptLogPO
:
crossSchemeOptLogPOList
)
{
for
(
CrossSchemeOptLogPO
crossSchemeOptLogPO
:
crossSchemeOptLogPOList
)
{
for
(
SchemeOptVO
.
PhaseOptTime
phaseOptTime
:
phaseOptTimeList
)
{
for
(
SchemeOptVO
.
PhaseOptTime
phaseOptTime
:
phaseOptTimeList
)
{
String
phaseNo1
=
crossSchemeOptLogPO
.
getPhaseNo
();
String
phaseNo1
=
crossSchemeOptLogPO
.
getPhaseNo
();
String
phaseNo2
=
phaseOptTime
.
getPhaseNo
();
String
phaseNo2
=
phaseOptTime
.
getPhaseNo
();
if
(
Objects
.
equals
(
phaseNo1
,
phaseNo2
))
{
if
(
Objects
.
equals
(
phaseNo1
,
phaseNo2
))
{
phaseOptTime
.
setOriGreenTime
(
crossSchemeOptLogPO
.
getOriGreenTime
());
int
optTime
=
crossSchemeOptLogPO
.
getOptTime
();
phaseOptTime
.
setOptGreenTime
(
crossSchemeOptLogPO
.
getOptGreenTime
());
int
oriGreenTime
=
crossSchemeOptLogPO
.
getOriGreenTime
();
phaseOptTime
.
setOptTime
(
crossSchemeOptLogPO
.
getOptTime
());
phaseOptTime
.
setOriGreenTime
(
oriGreenTime
);
phaseOptTime
.
setOptGreenTime
(
oriGreenTime
+
optTime
);
phaseOptTime
.
setOptTime
(
optTime
);
}
}
}
}
}
}
return
phaseOptTimeList
;
return
phaseOptTimeList
;
}
}
private
void
initPhaseOptTimeList
(
Integer
schemeId
,
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
)
{
private
void
initPhaseOptTimeList
(
Integer
schemeNo
,
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
,
String
crossId
)
{
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
null
,
schemeId
.
toString
());
Integer
schemeId
=
crossSchemeMapper
.
selectIdByCrossIdAndSchemeNo
(
crossId
,
schemeNo
.
toString
());
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
crossId
,
schemeId
);
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
SchemeOptVO
.
PhaseOptTime
phaseOptTime
=
new
SchemeOptVO
.
PhaseOptTime
();
SchemeOptVO
.
PhaseOptTime
phaseOptTime
=
new
SchemeOptVO
.
PhaseOptTime
();
phaseOptTime
.
setPhaseNo
(
crossPhasePO
.
getPhaseNo
());
phaseOptTime
.
setPhaseNo
(
crossPhasePO
.
getPhaseNo
());
...
...
wj-common/src/main/java/net/wanji/common/framework/Constants.java
View file @
539d5509
...
@@ -453,6 +453,7 @@ public final class Constants {
...
@@ -453,6 +453,7 @@ public final class Constants {
* null
* null
*/
*/
public
static
final
String
NULL
=
null
;
public
static
final
String
NULL
=
null
;
public
static
final
Integer
NULL_INT
=
null
;
/**
/**
* 否
* 否
...
...
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