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
jinan
traffic-signal-platform
Commits
539d5509
You need to sign in or sign up before continuing.
Commit
539d5509
authored
Apr 05, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化后绿灯时长计算
parent
26c52ebc
Changes
5
Show 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