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
1bd048da
Commit
1bd048da
authored
Dec 13, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 方案同步优化
parent
ffaaa9be
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
74 additions
and
2 deletions
+74
-2
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+74
-2
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
1bd048da
...
@@ -3,6 +3,7 @@ package net.wanji.web.service.impl;
...
@@ -3,6 +3,7 @@ package net.wanji.web.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -15,11 +16,14 @@ import net.wanji.databus.dao.entity.*;
...
@@ -15,11 +16,14 @@ import net.wanji.databus.dao.entity.*;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.BaseCrossLightsPO
;
import
net.wanji.databus.po.BaseCrossLightsPO
;
import
net.wanji.databus.po.CrossBaseLaneInfoPO
;
import
net.wanji.databus.po.CrossLaneLightsPO
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.vo.*
;
import
net.wanji.databus.vo.*
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.web.common.enums.CrossDirChangeEnum
;
import
net.wanji.web.common.enums.CrossDirChangeEnum
;
import
net.wanji.web.dto.*
;
import
net.wanji.web.dto.*
;
import
net.wanji.web.mapper.scheme.CrossDirInfoMapper
;
import
net.wanji.web.po.RingPhasePO
;
import
net.wanji.web.po.RingPhasePO
;
import
net.wanji.web.service.FeignProxyService
;
import
net.wanji.web.service.FeignProxyService
;
import
net.wanji.web.service.PlanSendService
;
import
net.wanji.web.service.PlanSendService
;
...
@@ -37,6 +41,7 @@ import javax.validation.constraints.NotNull;
...
@@ -37,6 +41,7 @@ import javax.validation.constraints.NotNull;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
/**
* @author Kent HAN
* @author Kent HAN
...
@@ -59,6 +64,8 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -59,6 +64,8 @@ public class PlanSendServiceImpl implements PlanSendService {
private
final
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
;
private
final
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
;
private
final
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
;
private
final
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
;
private
final
CrossDirInfoMapper
crossDirInfoMapper
;
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
hourMinuteSdf
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
hourMinuteSdf
=
new
SimpleDateFormat
(
"HH:mm"
);
...
@@ -71,7 +78,8 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -71,7 +78,8 @@ public class PlanSendServiceImpl implements PlanSendService {
BaseCrossLightsMapper
baseCrossLightsMapper
,
BaseCrossPhaseLightsMapper
baseCrossPhaseLightsMapper
,
BaseCrossLightsMapper
baseCrossLightsMapper
,
BaseCrossPhaseLightsMapper
baseCrossPhaseLightsMapper
,
RunningPlanServiceImpl
runningPlanServiceImpl
,
SchemeConfigServiceImpl
schemeConfigServiceImpl
,
RunningPlanServiceImpl
runningPlanServiceImpl
,
SchemeConfigServiceImpl
schemeConfigServiceImpl
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
,
BaseCrossSchedulesMapper
baseCrossSchedulesMapper
,
BaseCrossLaneLightsMapper
baseCrossLaneLightsMapper
,
BaseCrossSectionMapper
baseCrossSectionMapper
,
FeignProxyService
feignProxyService
)
{
BaseCrossSectionMapper
baseCrossSectionMapper
,
FeignProxyService
feignProxyService
,
CrossBaseLaneInfoMapper
crossBaseLaneInfoMapper
,
CrossDirInfoMapper
crossDirInfoMapper
)
{
this
.
utcFeignClients
=
utcFeignClients
;
this
.
utcFeignClients
=
utcFeignClients
;
this
.
baseCrossSchedulesPlanMapper
=
baseCrossSchedulesPlanMapper
;
this
.
baseCrossSchedulesPlanMapper
=
baseCrossSchedulesPlanMapper
;
this
.
baseCrossPlanMapper
=
baseCrossPlanMapper
;
this
.
baseCrossPlanMapper
=
baseCrossPlanMapper
;
...
@@ -85,6 +93,8 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -85,6 +93,8 @@ public class PlanSendServiceImpl implements PlanSendService {
this
.
baseCrossLaneLightsMapper
=
baseCrossLaneLightsMapper
;
this
.
baseCrossLaneLightsMapper
=
baseCrossLaneLightsMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
feignProxyService
=
feignProxyService
;
this
.
feignProxyService
=
feignProxyService
;
this
.
crossBaseLaneInfoMapper
=
crossBaseLaneInfoMapper
;
this
.
crossDirInfoMapper
=
crossDirInfoMapper
;
}
}
/**
/**
...
@@ -416,6 +426,8 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -416,6 +426,8 @@ public class PlanSendServiceImpl implements PlanSendService {
List
<
CrossLightsPO
>
crossLightsList
=
schemePhaseLightsVO
.
getCrossLightsList
();
List
<
CrossLightsPO
>
crossLightsList
=
schemePhaseLightsVO
.
getCrossLightsList
();
// 清理数据库
// 清理数据库
baseCrossLightsMapper
.
deleteByCrossId
(
crossId
);
baseCrossLightsMapper
.
deleteByCrossId
(
crossId
);
// 灯组号去重
// 灯组号去重
List
<
BaseCrossLightsPO
>
baseCrossLightsPOS
=
new
ArrayList
<>(
crossLightsList
.
size
());
List
<
BaseCrossLightsPO
>
baseCrossLightsPOS
=
new
ArrayList
<>(
crossLightsList
.
size
());
for
(
CrossLightsPO
crossLightsPO
:
crossLightsList
)
{
for
(
CrossLightsPO
crossLightsPO
:
crossLightsList
)
{
...
@@ -430,8 +442,68 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -430,8 +442,68 @@ public class PlanSendServiceImpl implements PlanSendService {
baseCrossLightsMapper
.
insertBatch
(
crossLightsSet
);
baseCrossLightsMapper
.
insertBatch
(
crossLightsSet
);
}
}
baseCrossPhaseLightsMapper
.
deleteByCrossId
(
crossId
);
// 新增灯组关联车道逻辑
LambdaQueryWrapper
<
CrossBaseLaneInfoPO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
CrossBaseLaneInfoPO:
:
getCrossId
,
crossId
);
queryWrapper
.
eq
(
CrossBaseLaneInfoPO:
:
getType
,
2
);
List
<
CrossBaseLaneInfoPO
>
crossBaseLaneInfoPOS
=
crossBaseLaneInfoMapper
.
selectList
(
queryWrapper
);
// 车道灯组关系列表
List
<
CrossLaneLightsPO
>
crossLaneLightsPOS
=
new
ArrayList
<>();
List
<
BaseCrossLightsPO
>
insertedList
=
baseCrossLightsMapper
.
selectByCrossId
(
crossId
);
for
(
BaseCrossLightsPO
baseCrossLightsPO
:
insertedList
)
{
Integer
dir
=
baseCrossLightsPO
.
getDir
();
Integer
turn
=
baseCrossLightsPO
.
getTurn
();
Integer
type
=
baseCrossLightsPO
.
getType
();
Integer
lightId
=
baseCrossLightsPO
.
getId
();
// 设置灯组车道关联关系
// 圆饼灯获取方向所有车道
if
(
Objects
.
equals
(
1
,
type
))
{
List
<
String
>
lane2List
=
crossBaseLaneInfoPOS
.
stream
().
filter
(
item
->
Objects
.
equals
(
dir
,
item
.
getDir
()))
.
map
(
CrossBaseLaneInfoPO:
:
getId
).
collect
(
Collectors
.
toList
());
for
(
String
laneId
:
lane2List
)
{
CrossLaneLightsPO
crossLaneLightsPO
=
new
CrossLaneLightsPO
();
crossLaneLightsPO
.
setLightsId
(
lightId
);
crossLaneLightsPO
.
setLaneId
(
laneId
);
crossLaneLightsPO
.
setCrossId
(
crossId
);
crossLaneLightsPOS
.
add
(
crossLaneLightsPO
);
}
}
else
{
Integer
currentTurn
=
type
-
1
;
List
<
CrossBaseLaneInfoPO
>
lane1List
=
crossBaseLaneInfoPOS
.
stream
().
filter
(
item
->
Objects
.
equals
(
dir
,
item
.
getDir
())).
collect
(
Collectors
.
toList
());
for
(
CrossBaseLaneInfoPO
laneInfoPO
:
lane1List
)
{
if
(
Objects
.
equals
(
currentTurn
,
laneInfoPO
.
getTurn
())
&&
!
Objects
.
equals
(
20
,
currentTurn
))
{
CrossLaneLightsPO
crossLaneLightsPO
=
new
CrossLaneLightsPO
();
crossLaneLightsPO
.
setLightsId
(
lightId
);
crossLaneLightsPO
.
setLaneId
(
laneInfoPO
.
getId
());
crossLaneLightsPO
.
setCrossId
(
crossId
);
crossLaneLightsPOS
.
add
(
crossLaneLightsPO
);
}
}
}
}
baseCrossLaneLightsMapper
.
deleteByCrossId
(
crossId
);
baseCrossLaneLightsMapper
.
deleteByCrossId
(
crossId
);
baseCrossLaneLightsMapper
.
insertBatch
(
crossLaneLightsPOS
);
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOS
=
new
ArrayList
<>();
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
crossPhasePO
.
setCrossId
(
crossId
);
List
<
CrossPhasePO
>
crossPhasePOS
=
baseCrossPhaseMapper
.
listCrossPhasePO
(
crossPhasePO
);
// 灯组
//insertedList.stream()
// 相位
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
schemePhaseLightsVO
.
getCrossPhaseLightsPOList
();
if
(!
CollectionUtils
.
isEmpty
(
crossPhaseLightsPOList
)
&&
!
CollectionUtils
.
isEmpty
(
crossPhasePOS
))
{
for
(
CrossPhaseLightsPO
crossPhaseLightsPO
:
crossPhaseLightsPOList
)
{
Integer
lightsId
=
crossPhaseLightsPO
.
getLightsId
();
Integer
phaseId
=
crossPhaseLightsPO
.
getPhaseId
();
}
}
baseCrossPhaseLightsMapper
.
insertBatch
(
crossPhaseLightsPOS
);
syncSchedules
(
crossId
,
schemePhaseLightsVO
);
syncSchedules
(
crossId
,
schemePhaseLightsVO
);
}
}
...
...
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