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
126685a7
Commit
126685a7
authored
Jun 27, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 路口管理,控制模式下拉框、修改控制模式
parent
6f90b4fb
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
137 additions
and
11 deletions
+137
-11
ControlModeBO.java
...service/src/main/java/net/wanji/web/bo/ControlModeBO.java
+19
-0
CrossManageController.java
.../java/net/wanji/web/controller/CrossManageController.java
+29
-5
CrossManageService.java
...c/main/java/net/wanji/web/service/CrossManageService.java
+6
-0
CrossManageServiceImpl.java
...va/net/wanji/web/service/impl/CrossManageServiceImpl.java
+57
-5
ControlModeVO.java
...service/src/main/java/net/wanji/web/vo/ControlModeVO.java
+16
-0
ControlModeEnum.java
...src/main/java/net/wanji/common/enums/ControlModeEnum.java
+2
-1
BaseCrossSectionMapper.java
.../net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
+2
-0
BaseCrossSectionMapper.xml
...abus/src/main/resources/mapper/BaseCrossSectionMapper.xml
+6
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/bo/ControlModeBO.java
0 → 100644
View file @
126685a7
package
net
.
wanji
.
web
.
bo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author Kent HAN
* @date 2022/11/9 17:21
*/
@Data
@ApiModel
(
value
=
"ControlModeBO"
)
public
class
ControlModeBO
{
@ApiModelProperty
(
value
=
"控制模式:1定周期;2绿波协调;3黄闪;4全红;5关灯;6单点自适应;7全感应;8半感应;9行人过街"
,
notes
=
""
)
private
Integer
controlMode
;
@ApiModelProperty
(
value
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
}
signal-control-service/src/main/java/net/wanji/web/controller/CrossManageController.java
View file @
126685a7
...
...
@@ -7,12 +7,14 @@ import io.swagger.annotations.ApiResponse;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.bo.AreaDetailBO
;
import
net.wanji.web.bo.AddOrUpdateAreaBO
;
import
net.wanji.databus.bo.AreaIdBO
;
import
net.wanji.databus.vo.AreaDetailVO
;
import
net.wanji.web.bo.AddOrUpdateAreaBO
;
import
net.wanji.web.bo.ControlModeBO
;
import
net.wanji.web.bo.PolygonBO
;
import
net.wanji.web.bo.SpecialServiceRouteBO
;
import
net.wanji.web.service.impl.CrossManageServiceImpl
;
import
net.wanji.
databus.vo.AreaDetail
VO
;
import
net.wanji.
web.vo.ControlMode
VO
;
import
net.wanji.web.vo.CrossIdAndNameVO
;
import
net.wanji.web.vo.ListAreaVO
;
import
net.wanji.web.vo.SelectCrossesByStartEndVO
;
...
...
@@ -98,8 +100,10 @@ public class CrossManageController {
return
JsonViewObject
.
newInstance
().
success
(
listAreaVO
);
}
@ApiOperation
(
value
=
"区域详情"
,
notes
=
"区域详情"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/areaDetail"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@ApiOperation
(
value
=
"区域详情"
,
notes
=
"区域详情"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/areaDetail"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AreaDetailVO
.
class
),
})
...
...
@@ -108,6 +112,26 @@ public class CrossManageController {
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
// todo 控制模式列表,修改控制模式
@ApiOperation
(
value
=
"控制模式下拉框"
,
notes
=
"控制模式下拉框"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/controlModeMenu"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ControlModeVO
.
class
),
})
public
JsonViewObject
controlModeMenu
()
{
List
<
ControlModeVO
>
res
=
crossManageService
.
controlModeMenu
();
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
@ApiOperation
(
value
=
"修改控制模式"
,
notes
=
"修改控制模式"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/updateControlMode"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
JsonViewObject
.
class
),
})
public
JsonViewObject
updateControlMode
(
@RequestBody
ControlModeBO
controlModeBO
)
{
crossManageService
.
updateControlMode
(
controlModeBO
);
return
JsonViewObject
.
newInstance
().
success
();
}
}
\ No newline at end of file
signal-control-service/src/main/java/net/wanji/web/service/CrossManageService.java
View file @
126685a7
...
...
@@ -4,9 +4,11 @@ import com.github.pagehelper.PageInfo;
import
net.wanji.databus.bo.AreaDetailBO
;
import
net.wanji.web.bo.AddOrUpdateAreaBO
;
import
net.wanji.databus.bo.AreaIdBO
;
import
net.wanji.web.bo.ControlModeBO
;
import
net.wanji.web.bo.PolygonBO
;
import
net.wanji.web.bo.SpecialServiceRouteBO
;
import
net.wanji.databus.vo.AreaDetailVO
;
import
net.wanji.web.vo.ControlModeVO
;
import
net.wanji.web.vo.CrossIdAndNameVO
;
import
net.wanji.web.vo.ListAreaVO
;
import
net.wanji.web.vo.SelectCrossesByStartEndVO
;
...
...
@@ -30,4 +32,8 @@ public interface CrossManageService {
ListAreaVO
listArea
();
PageInfo
<
AreaDetailVO
>
areaDetail
(
AreaDetailBO
areaDetailBO
);
List
<
ControlModeVO
>
controlModeMenu
();
void
updateControlMode
(
ControlModeBO
controlModeBO
);
}
signal-control-service/src/main/java/net/wanji/web/service/impl/CrossManageServiceImpl.java
View file @
126685a7
...
...
@@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.enums.ControlModeEnum
;
import
net.wanji.common.gts.GeometryUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.bo.AreaDetailBO
;
...
...
@@ -21,15 +22,13 @@ import net.wanji.databus.po.BaseAreaInfoPO;
import
net.wanji.databus.po.BaseCrossInfoPO
;
import
net.wanji.databus.vo.AreaDetailVO
;
import
net.wanji.web.bo.AddOrUpdateAreaBO
;
import
net.wanji.web.bo.ControlModeBO
;
import
net.wanji.web.bo.PolygonBO
;
import
net.wanji.web.bo.SpecialServiceRouteBO
;
import
net.wanji.web.mapper.TBaseAreaCrossMapper
;
import
net.wanji.web.service.CrossManageService
;
import
net.wanji.web.service.scheme.impl.RunningPlanServiceImpl
;
import
net.wanji.web.vo.AreaTreeVO
;
import
net.wanji.web.vo.CrossIdAndNameVO
;
import
net.wanji.web.vo.ListAreaVO
;
import
net.wanji.web.vo.SelectCrossesByStartEndVO
;
import
net.wanji.web.vo.*
;
import
net.wanji.web.vo.specialService.RouteElementVO
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -248,7 +247,7 @@ public class CrossManageServiceImpl implements CrossManageService {
Date
datetime
=
new
Date
();
String
dateStr
=
sdf
.
format
(
datetime
);
String
crossId
=
areaDetailPOExt
.
getCrossId
();
//
根据当前时间查询
计划
//
获取当前
计划
Integer
planId
=
findPlanId
(
datetime
,
dateStr
,
crossId
);
if
(
planId
!=
null
)
{
List
<
CrossSectionPO
>
crossSectionPOList
=
crossSectionMapper
.
selectByCrossAndPlan
(
crossId
,
planId
);
...
...
@@ -280,6 +279,59 @@ public class CrossManageServiceImpl implements CrossManageService {
return
voPageInfo
;
}
@Override
public
List
<
ControlModeVO
>
controlModeMenu
()
{
List
<
ControlModeVO
>
res
=
new
ArrayList
<>();
for
(
ControlModeEnum
value
:
ControlModeEnum
.
values
())
{
Integer
code
=
value
.
getCode
();
String
name
=
value
.
getName
();
ControlModeVO
controlModeVO
=
new
ControlModeVO
();
controlModeVO
.
setControlMode
(
code
);
controlModeVO
.
setControlModeStr
(
name
);
res
.
add
(
controlModeVO
);
}
return
res
;
}
@Override
@Transactional
public
void
updateControlMode
(
ControlModeBO
controlModeBO
)
{
Integer
controlMode
=
controlModeBO
.
getControlMode
();
String
crossId
=
controlModeBO
.
getCrossId
();
// 获取当前时段ID
Integer
sectionId
=
findCurrentSection
(
crossId
);
if
(
sectionId
!=
null
&&
0
!=
sectionId
)
{
crossSectionMapper
.
updateControlMode
(
sectionId
,
controlMode
);
}
}
private
Integer
findCurrentSection
(
String
crossId
)
{
Date
datetime
=
new
Date
();
String
dateStr
=
sdf
.
format
(
datetime
);
// 获取当前计划ID
Integer
planId
=
findPlanId
(
datetime
,
dateStr
,
crossId
);
if
(
planId
!=
null
)
{
List
<
CrossSectionPO
>
crossSectionPOList
=
crossSectionMapper
.
selectByCrossAndPlan
(
crossId
,
planId
);
// 获取当前时间整数字面量
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"HHmm"
);
String
timeString
=
formatter
.
format
(
datetime
);
int
nowTimeInt
=
Integer
.
parseInt
(
timeString
);
for
(
CrossSectionPO
crossSectionPO
:
crossSectionPOList
)
{
String
startTime
=
crossSectionPO
.
getStartTime
();
String
endTime
=
crossSectionPO
.
getEndTime
();
Integer
startTimeInt
=
timeStrToInt
(
startTime
);
Integer
endTimeInt
=
timeStrToInt
(
endTime
);
if
(
nowTimeInt
<=
endTimeInt
&&
nowTimeInt
>=
startTimeInt
)
{
return
crossSectionPO
.
getId
();
}
}
}
return
0
;
}
private
Integer
timeStrToInt
(
String
time
)
{
time
=
time
.
replace
(
":"
,
""
);
int
timeInt
=
Integer
.
parseInt
(
time
);
...
...
signal-control-service/src/main/java/net/wanji/web/vo/ControlModeVO.java
0 → 100644
View file @
126685a7
package
net
.
wanji
.
web
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@NoArgsConstructor
@Data
@ApiModel
(
value
=
"ControlModeVO"
,
description
=
"控制模式下拉框"
)
public
class
ControlModeVO
{
@ApiModelProperty
(
value
=
"控制模式:1定周期;2绿波协调;3黄闪;4全红;5关灯;6单点自适应;7全感应;8半感应;9行人过街"
)
private
Integer
controlMode
;
@ApiModelProperty
(
value
=
"控制模式字符串"
)
private
String
controlModeStr
;
}
wj-common/src/main/java/net/wanji/common/enums/ControlModeEnum.java
View file @
126685a7
...
...
@@ -14,7 +14,8 @@ public enum ControlModeEnum {
OFF_LIGHT
(
5
,
"关灯"
),
SINGLE_POINT_ADAPTATION
(
6
,
"单点自适应"
),
FULL_INDUCTION
(
7
,
"全感应"
),
HALF_INDUCTION
(
8
,
"半感应"
);
HALF_INDUCTION
(
8
,
"半感应"
),
PEDESTRIAN
(
9
,
"行人过街"
);
private
Integer
code
;
private
String
name
;
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossSectionMapper.java
View file @
126685a7
...
...
@@ -24,4 +24,6 @@ public interface BaseCrossSectionMapper {
List
<
CrossSectionPO
>
selectByCrossAndPlan
(
String
crossId
,
Integer
planId
);
CrossSectionPO
selectById
(
Integer
id
);
void
updateControlMode
(
Integer
sectionId
,
Integer
controlMode
);
}
wj-databus/src/main/resources/mapper/BaseCrossSectionMapper.xml
View file @
126685a7
...
...
@@ -25,6 +25,12 @@
values (#{sectionNo}, #{startTime}, #{endTime}, #{crossId}, #{planId}, #{controlMode}, #{schemeId})
</insert>
<update
id=
"updateControlMode"
>
update t_base_cross_section
set control_mode = #{controlMode}
where id = #{sectionId}
</update>
<delete
id=
"deleteByCrossId"
>
DELETE
FROM t_base_cross_section
...
...
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