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
f2972a92
Commit
f2972a92
authored
Jun 19, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 上载调度日计划转换
parent
6d4faa14
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
123 additions
and
17 deletions
+123
-17
ControlModelEnum.java
...ain/java/net/wanji/com/common/enums/ControlModelEnum.java
+38
-0
StaticInfoController.java
...n/java/net/wanji/com/controller/StaticInfoController.java
+6
-15
DTStaticInfoServiceImpl.java
.../com/service/controller/impl/DTStaticInfoServiceImpl.java
+79
-2
No files found.
signal-utc-dt-service/src/main/java/net/wanji/com/common/enums/ControlModelEnum.java
0 → 100644
View file @
f2972a92
package
net
.
wanji
.
com
.
common
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
/**
* @author duanruiming
* @date 2023/06/19 10:07
*/
@Getter
@AllArgsConstructor
@RequiredArgsConstructor
public
enum
ControlModelEnum
{
FIXED_CYCLE
(
1
,
"21"
,
"定周期"
),
GREEN_WAVE
(
2
,
"13"
,
"绿波协调"
),
YELLOW_CONTROL
(
3
,
"31"
,
"黄闪"
),
RED_CONTROL
(
4
,
"32"
,
"全红"
),
CLOSED_CONTROL
(
5
,
"33"
,
"关灯"
),
SELF_CONTROL
(
6
,
"14"
,
"单点自适应 -> 中心自适应"
),
FULL_INDUCTION
(
7
,
"22"
,
"全感应 -> 本地感应"
),
HALF_INDUCTION
(
8
,
""
,
"半感应"
);
private
Integer
wjControl
;
private
String
dtControlHex
;
private
String
message
;
public
static
Integer
getWjControlMode
(
String
dtControlHex
)
{
for
(
ControlModelEnum
value
:
ControlModelEnum
.
values
())
{
if
(
StringUtils
.
equals
(
dtControlHex
,
value
.
getDtControlHex
()))
{
return
value
.
getWjControl
();
}
}
return
null
;
}
}
signal-utc-dt-service/src/main/java/net/wanji/com/controller/StaticInfoController.java
View file @
f2972a92
...
...
@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.ws.rs.core.MediaType
;
import
java.util.List
;
/**
* 静态信息接口
...
...
@@ -47,8 +48,7 @@ public class StaticInfoController {
})
public
JsonViewObject
schemePhaseLights
(
@RequestBody
@Validated
SchemePhaseLightsDTO
schemePhaseLightsDTO
)
throws
Exception
{
SchemePhaseLightsVO
schemePhaseLightsVO
=
staticInfoService
.
schemePhaseLights
(
schemePhaseLightsDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
schemePhaseLightsVO
);
return
JsonViewObject
.
newInstance
().
success
(
schemePhaseLightsVO
);
}
@AspectLog
(
description
=
"计划数据-计划信息、时段信息"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
...
...
@@ -60,11 +60,8 @@ public class StaticInfoController {
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
PlanSectionVO
.
class
)
})
public
JsonViewObject
planSection
(
@RequestBody
@Validated
PlanSectionDTO
planSectionDTO
)
throws
Exception
{
// 命令调用
staticInfoService
.
planSection
(
planSectionDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
null
);
List
<
PlanSectionVO
>
planSectionVOS
=
staticInfoService
.
planSection
(
planSectionDTO
);
return
JsonViewObject
.
newInstance
().
success
(
planSectionVOS
);
}
@AspectLog
(
description
=
"时间表数据"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
...
...
@@ -76,13 +73,7 @@ public class StaticInfoController {
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
CrossSchedulesPO
.
class
)
})
public
JsonViewObject
crossSchedules
(
@RequestBody
@Validated
CrossSchedulesDTO
crossSchedulesDTO
)
throws
Exception
{
// 命令调用
staticInfoService
.
crossSchedules
(
crossSchedulesDTO
);
// 构造返回值
// List<String> crossIdList = crossSchedulesDTO.getCrossIdList();
// List<CrossSchedulesPO> crossSchedulesPOList = staticInfoService.buildCrossSchedulesResponse(crossIdList);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
null
);
List
<
CrossSchedulesPO
>
crossSchedulesPOS
=
staticInfoService
.
crossSchedules
(
crossSchedulesDTO
);
return
JsonViewObject
.
newInstance
().
success
(
crossSchedulesPOS
);
}
}
signal-utc-dt-service/src/main/java/net/wanji/com/service/controller/impl/DTStaticInfoServiceImpl.java
View file @
f2972a92
...
...
@@ -5,11 +5,14 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.com.cache.CrossInfoCache
;
import
net.wanji.com.common.constants.Constants
;
import
net.wanji.com.common.enums.ControlModelEnum
;
import
net.wanji.com.netty.NettyClient
;
import
net.wanji.com.pojo.dtconvert.*
;
import
net.wanji.com.pojo.netty.MessageResultPojo
;
import
net.wanji.com.service.controller.StaticInfoService
;
import
net.wanji.common.enums.BaseEnum
;
import
net.wanji.common.enums.DateStyle
;
import
net.wanji.common.utils.tool.DateUtil
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dto.CrossInfoDTO
;
import
net.wanji.databus.dto.CrossSchedulesDTO
;
...
...
@@ -22,6 +25,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.time.LocalDate
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -436,7 +440,46 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
String
crossId
=
planSectionDTO
.
getCrossId
();
CrossInfoPO
crossInfoPO
=
crossInfoCache
.
getCrossInfoCache
().
get
(
crossId
);
List
<
DailyPlanInfoPojo
>
dailyPlanInfoPojos
=
getDailyPlanInfo
(
crossInfoPO
);
return
null
;
return
getPlanSectionVos
(
crossId
,
dailyPlanInfoPojos
);
}
private
static
List
<
PlanSectionVO
>
getPlanSectionVos
(
String
crossId
,
List
<
DailyPlanInfoPojo
>
dailyPlanInfoPojos
)
{
List
<
PlanSectionVO
>
planSectionVOS
=
new
ArrayList
<>();
for
(
DailyPlanInfoPojo
dailyPlanInfoPojo
:
dailyPlanInfoPojos
)
{
PlanSectionVO
planSectionVO
=
new
PlanSectionVO
();
Integer
dailyPlanId
=
dailyPlanInfoPojo
.
getDailyPlanId
();
List
<
CrossPlanPO
>
crossPlanPOList
=
new
ArrayList
<>();
CrossPlanPO
crossPlanPO
=
new
CrossPlanPO
();
crossPlanPO
.
setPlanNo
(
String
.
valueOf
(
dailyPlanId
));
crossPlanPO
.
setName
(
StringUtils
.
join
(
"计划"
,
dailyPlanId
));
crossPlanPO
.
setCrossId
(
crossId
);
crossPlanPOList
.
add
(
crossPlanPO
);
planSectionVO
.
setCrossPlanPOList
(
crossPlanPOList
);
List
<
String
>
startTimeChain
=
dailyPlanInfoPojo
.
getStartTimeChain
();
if
(!
CollectionUtils
.
isEmpty
(
startTimeChain
))
{
List
<
CrossSectionPO
>
crossSectionPOList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
startTimeChain
.
size
();
i
++)
{
CrossSectionPO
crossSectionPO
=
new
CrossSectionPO
();
crossSectionPO
.
setSectionNo
(
String
.
valueOf
(
i
+
1
));
crossSectionPO
.
setStartTime
(
startTimeChain
.
get
(
i
));
if
(
i
+
1
<
startTimeChain
.
size
())
{
crossSectionPO
.
setEndTime
(
startTimeChain
.
get
(
i
+
1
));
}
else
{
crossSectionPO
.
setEndTime
(
startTimeChain
.
get
(
0
));
}
crossSectionPO
.
setCrossId
(
crossId
);
crossSectionPO
.
setPlanId
(
dailyPlanId
);
crossSectionPO
.
setSchemeId
(
dailyPlanInfoPojo
.
getSchemeIdChain
().
get
(
i
));
crossSectionPO
.
setControlMode
(
ControlModelEnum
.
getWjControlMode
(
HexUtil
.
toHex
(
dailyPlanInfoPojo
.
getControlModelChain
().
get
(
i
))));
crossSectionPOList
.
add
(
crossSectionPO
);
}
planSectionVO
.
setCrossSectionPOList
(
crossSectionPOList
);
planSectionVOS
.
add
(
planSectionVO
);
}
}
return
planSectionVOS
;
}
private
List
<
DailyPlanInfoPojo
>
getDailyPlanInfo
(
CrossInfoPO
crossInfoPO
)
{
...
...
@@ -523,7 +566,41 @@ public class DTStaticInfoServiceImpl implements StaticInfoService {
String
scheduleHex
=
Constants
.
buildMessage
(
message
);
MessageResultPojo
resultPojo
=
NettyClient
.
sendMessage
(
crossInfoPO
.
getIp
(),
crossInfoPO
.
getPort
(),
scheduleHex
,
scheduleSign
,
300
);
List
<
ScheduleInfoPojo
>
scheduleInfoPojos
=
getSchedulePojos
(
resultPojo
);
return
null
;
return
getCrossSchedulesPOs
(
crossId
,
scheduleInfoPojos
);
}
private
List
<
CrossSchedulesPO
>
getCrossSchedulesPOs
(
String
crossId
,
List
<
ScheduleInfoPojo
>
scheduleInfoPojos
)
throws
Exception
{
List
<
CrossSchedulesPO
>
crossSchedulesPOS
=
new
ArrayList
<>(
scheduleInfoPojos
.
size
());
for
(
ScheduleInfoPojo
scheduleInfoPojo
:
scheduleInfoPojos
)
{
List
<
Integer
>
week
=
scheduleInfoPojo
.
getWeek
();
for
(
Integer
weekday
:
week
)
{
CrossSchedulesPO
crossSchedulesPO
=
new
CrossSchedulesPO
();
crossSchedulesPO
.
setScheduleNo
(
scheduleInfoPojo
.
getScheduleId
());
crossSchedulesPO
.
setName
(
StringUtils
.
join
(
"调度"
,
scheduleInfoPojo
.
getScheduleId
()));
crossSchedulesPO
.
setCrossId
(
crossId
);
crossSchedulesPO
.
setPlanId
(
scheduleInfoPojo
.
getDailyPlanId
());
crossSchedulesPO
.
setWeek
(
weekday
);
crossSchedulesPOS
.
add
(
crossSchedulesPO
);
}
if
(
week
.
size
()
!=
7
)
{
List
<
Integer
>
month
=
scheduleInfoPojo
.
getMonth
();
for
(
Integer
currentMonth
:
month
)
{
LocalDate
currentDate
=
LocalDate
.
now
();
String
currentYear
=
currentDate
.
toString
().
substring
(
0
,
4
);
for
(
Integer
day
:
scheduleInfoPojo
.
getDay
())
{
CrossSchedulesPO
crossSchedulesPO
=
new
CrossSchedulesPO
();
crossSchedulesPO
.
setScheduleNo
(
scheduleInfoPojo
.
getScheduleId
());
crossSchedulesPO
.
setName
(
StringUtils
.
join
(
"调度"
,
scheduleInfoPojo
.
getScheduleId
()));
crossSchedulesPO
.
setCrossId
(
crossId
);
crossSchedulesPO
.
setPlanId
(
scheduleInfoPojo
.
getDailyPlanId
());
Date
date
=
DateUtil
.
parse
(
StringUtils
.
join
(
currentYear
,
"-"
,
currentMonth
,
"-"
,
day
),
DateStyle
.
YYYY_MM_DD
.
getValue
());
crossSchedulesPO
.
setSpecialDate
(
date
);
crossSchedulesPOS
.
add
(
crossSchedulesPO
);
}
}
}
}
return
crossSchedulesPOS
;
}
private
List
<
ScheduleInfoPojo
>
getSchedulePojos
(
MessageResultPojo
resultPojo
)
{
...
...
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