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
c5fc8780
Commit
c5fc8780
authored
Jan 13, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信控模块全局日期处理
parent
13585937
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
192 additions
and
6 deletions
+192
-6
JacksonConfig.java
...ice/src/main/java/net/wanji/web/config/JacksonConfig.java
+78
-0
TestController.java
...rc/main/java/net/wanji/web/controller/TestController.java
+32
-0
CrossPhaseLightsMapper.java
...a/net/wanji/web/mapper/scheme/CrossPhaseLightsMapper.java
+2
-0
CrossPhaseMapper.java
...in/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
+3
-0
CrossConfigServiceImpl.java
...wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
+26
-0
SchemeConfigServiceImpl.java
...anji/web/service/scheme/impl/SchemeConfigServiceImpl.java
+23
-6
TestVO.java
...ontrol-service/src/main/java/net/wanji/web/vo/TestVO.java
+14
-0
CrossPhaseLightsMapper.xml
...c/main/resources/mapper/scheme/CrossPhaseLightsMapper.xml
+6
-0
CrossPhaseMapper.xml
...ice/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
+8
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/config/JacksonConfig.java
0 → 100644
View file @
c5fc8780
package
net
.
wanji
.
web
.
config
;
import
cn.hutool.core.date.DatePattern
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.Module
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
;
import
org.springframework.boot.autoconfigure.AutoConfigureBefore
;
import
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Locale
;
import
java.util.TimeZone
;
/**
* 全局日期处理
*
* @author Kent HAN
* @date 2023/1/12 21:49
*/
@Configuration
@AutoConfigureBefore
(
JacksonAutoConfiguration
.
class
)
public
class
JacksonConfig
{
@Bean
public
ObjectMapper
objectMapper
()
{
return
new
ObjectMapper
()
.
setLocale
(
Locale
.
CHINA
)
.
setTimeZone
(
TimeZone
.
getTimeZone
(
ZoneId
.
systemDefault
()))
// 反序列化的格式
.
registerModule
(
javaTimeModule
())
// 序列化的格式
.
setDateFormat
(
new
SimpleDateFormat
(
DatePattern
.
NORM_DATETIME_PATTERN
))
.
setLocale
(
Locale
.
CHINA
)
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
)
.
findAndRegisterModules
();
}
@Bean
public
Module
javaTimeModule
()
{
JavaTimeModule
module
=
new
JavaTimeModule
();
module
.
addSerializer
(
new
LocalDateTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATETIME_PATTERN
)
));
module
.
addSerializer
(
new
LocalTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_TIME_PATTERN
))
);
module
.
addSerializer
(
new
LocalDateSerializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATE_PATTERN
))
);
module
.
addDeserializer
(
LocalDateTime
.
class
,
new
LocalDateTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATETIME_PATTERN
)
));
module
.
addDeserializer
(
LocalDate
.
class
,
new
LocalDateDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_DATE_PATTERN
)
));
module
.
addDeserializer
(
LocalTime
.
class
,
new
LocalTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DatePattern
.
NORM_TIME_PATTERN
)
));
return
module
;
}
}
\ No newline at end of file
signal-control-service/src/main/java/net/wanji/web/controller/TestController.java
0 → 100644
View file @
c5fc8780
package
net
.
wanji
.
web
.
controller
;
import
io.swagger.annotations.Api
;
import
net.wanji.web.vo.TestVO
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Date
;
/**
* @author Kent HAN
* @date 2023/1/12 21:38
*/
@RestController
@Api
(
value
=
"测试"
,
description
=
"测试"
,
tags
=
"测试"
)
@RequestMapping
(
"/test"
)
public
class
TestController
{
@PostMapping
(
"/date"
)
public
void
testDate
(
@RequestBody
TestVO
testVO
)
{
Date
testDate
=
testVO
.
getTestDate
();
System
.
out
.
println
(
testDate
);
}
@GetMapping
(
"/getDate"
)
public
Date
getDate
()
{
Date
date
=
new
Date
();
return
date
;
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossPhaseLightsMapper.java
View file @
c5fc8780
...
@@ -21,4 +21,6 @@ public interface CrossPhaseLightsMapper {
...
@@ -21,4 +21,6 @@ public interface CrossPhaseLightsMapper {
List
<
CrossPhaseLightsPO
>
selectByPhaseId
(
@Param
(
"phaseId"
)
Integer
phaseId
);
List
<
CrossPhaseLightsPO
>
selectByPhaseId
(
@Param
(
"phaseId"
)
Integer
phaseId
);
List
<
CrossPhaseLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
List
<
CrossPhaseLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
void
updateLightsId
(
@Param
(
"oldId"
)
Integer
oldId
,
@Param
(
"newId"
)
Integer
newId
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
View file @
c5fc8780
...
@@ -37,4 +37,7 @@ public interface CrossPhaseMapper {
...
@@ -37,4 +37,7 @@ public interface CrossPhaseMapper {
@Param
(
"groupNumber"
)
Integer
groupNumber
);
@Param
(
"groupNumber"
)
Integer
groupNumber
);
List
<
CrossPhasePO
>
selectByIds
(
@Param
(
"ids"
)
List
<
Integer
>
ids
);
List
<
CrossPhasePO
>
selectByIds
(
@Param
(
"ids"
)
List
<
Integer
>
ids
);
List
<
CrossPhasePO
>
selectByCrossIdAndSchemeId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
);
}
}
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
View file @
c5fc8780
...
@@ -27,6 +27,7 @@ import java.util.HashMap;
...
@@ -27,6 +27,7 @@ import java.util.HashMap;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -154,6 +155,15 @@ public class CrossConfigServiceImpl implements CrossConfigService {
...
@@ -154,6 +155,15 @@ public class CrossConfigServiceImpl implements CrossConfigService {
private
void
handleLightsData
(
SaveLaneInfoDTO
saveLaneInfoDTO
,
List
<
LedConfigListElement
>
ledConfigList
,
private
void
handleLightsData
(
SaveLaneInfoDTO
saveLaneInfoDTO
,
List
<
LedConfigListElement
>
ledConfigList
,
Set
<
String
>
lightCodeSet
)
{
Set
<
String
>
lightCodeSet
)
{
// 保存旧的灯组代码-灯组对象映射关系
Map
<
String
,
CrossLightsPO
>
oldLightsMap
=
new
HashMap
<>();
List
<
CrossLightsPO
>
oldPOList
=
crossLightsMapper
.
selectByCrossId
(
saveLaneInfoDTO
.
getCrossId
());
if
(
oldPOList
!=
null
)
{
for
(
CrossLightsPO
oldPO
:
oldPOList
)
{
oldLightsMap
.
put
(
oldPO
.
getLightsNo
(),
oldPO
);
}
}
String
crossId
=
saveLaneInfoDTO
.
getCrossId
();
String
crossId
=
saveLaneInfoDTO
.
getCrossId
();
List
<
CrossLightsPO
>
crossLightsPOList
=
new
ArrayList
<>();
List
<
CrossLightsPO
>
crossLightsPOList
=
new
ArrayList
<>();
for
(
LedConfigListElement
ledConfigListElement
:
ledConfigList
)
{
for
(
LedConfigListElement
ledConfigListElement
:
ledConfigList
)
{
...
@@ -181,6 +191,22 @@ public class CrossConfigServiceImpl implements CrossConfigService {
...
@@ -181,6 +191,22 @@ public class CrossConfigServiceImpl implements CrossConfigService {
}
}
crossLightsMapper
.
deleteByCrossId
(
crossId
);
crossLightsMapper
.
deleteByCrossId
(
crossId
);
crossLightsMapper
.
insertBatch
(
crossLightsPOList
);
crossLightsMapper
.
insertBatch
(
crossLightsPOList
);
// 对比旧的灯组信息,如没有发生变化,则更新灯组-相位关系表中的灯组ID
for
(
CrossLightsPO
newPO
:
crossLightsPOList
)
{
String
newNumber
=
newPO
.
getLightsNo
();
CrossLightsPO
oldPO
=
oldLightsMap
.
get
(
newNumber
);
if
(
oldPO
!=
null
)
{
if
(
checkIsSame
(
oldPO
,
newPO
))
{
crossPhaseLightsMapper
.
updateLightsId
(
oldPO
.
getId
(),
newPO
.
getId
());
}
}
}
}
private
boolean
checkIsSame
(
CrossLightsPO
oldPO
,
CrossLightsPO
newPO
)
{
return
(
Objects
.
equals
(
oldPO
.
getDir
(),
newPO
.
getDir
())
&&
Objects
.
equals
(
oldPO
.
getType
(),
newPO
.
getType
()));
}
}
private
static
void
setType
(
LedConfigListElement
ledConfigListElement
,
CrossLightsPO
crossLightsPO
)
{
private
static
void
setType
(
LedConfigListElement
ledConfigListElement
,
CrossLightsPO
crossLightsPO
)
{
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/SchemeConfigServiceImpl.java
View file @
c5fc8780
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.exception.LightsModifyException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.dto.CrossIdDTO
;
import
net.wanji.web.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
...
@@ -147,13 +146,32 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
...
@@ -147,13 +146,32 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
List
<
SaveSchemeConfigDTO
.
RingListElement
>
ringList
=
buildRingList
(
crossId
,
schemeId
);
List
<
SaveSchemeConfigDTO
.
RingListElement
>
ringList
=
buildRingList
(
crossId
,
schemeId
);
phaseScheme
.
setRingList
(
ringList
);
phaseScheme
.
setRingList
(
ringList
);
// 构造特殊控制列表
// 构造特殊控制列表
// phaseScheme.setSpecialControlModeList();
List
<
SaveSchemeConfigDTO
.
PhaseListElement
>
specialControlList
=
buildSpecialControlList
(
crossId
,
schemeId
);
phaseScheme
.
setSpecialControlModeList
(
specialControlList
);
phaseSchemeList
.
add
(
phaseScheme
);
phaseSchemeList
.
add
(
phaseScheme
);
}
}
return
phaseSchemeList
;
return
phaseSchemeList
;
}
}
/**
* 构造特殊控制列表
*
* @author Kent HAN
* @date 2023/1/12 17:53
* @param crossId
* @param schemeId
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.PhaseListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
PhaseListElement
>
buildSpecialControlList
(
String
crossId
,
Integer
schemeId
)
{
// List<CrossPhasePO> crossPhasePOList = crossPhaseMapper.selectByCrossIdAndSchemeId(crossId, schemeId);
// for (CrossPhasePO crossPhasePO : crossPhasePOList) {
// Integer controlMode = crossPhasePO.getControlMode();
// if (controlMode == )
// }
return
null
;
}
/**
/**
* 构造环列表
* 构造环列表
*
*
...
@@ -282,11 +300,10 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
...
@@ -282,11 +300,10 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
for
(
CrossPhaseLightsPO
crossPhaseLightsPO
:
crossPhaseLightsPOList
)
{
for
(
CrossPhaseLightsPO
crossPhaseLightsPO
:
crossPhaseLightsPOList
)
{
Integer
lightsId
=
crossPhaseLightsPO
.
getLightsId
();
Integer
lightsId
=
crossPhaseLightsPO
.
getLightsId
();
CrossLightsPO
crossLightsPO
=
crossLightsMapper
.
selectById
(
lightsId
);
CrossLightsPO
crossLightsPO
=
crossLightsMapper
.
selectById
(
lightsId
);
if
(
crossLightsPO
==
null
)
{
if
(
crossLightsPO
!=
null
)
{
throw
new
LightsModifyException
(
"灯组配置已修改,需重新配置方案"
);
Integer
dir
=
crossLightsPO
.
getDir
();
dirSet
.
add
(
dir
);
}
}
Integer
dir
=
crossLightsPO
.
getDir
();
dirSet
.
add
(
dir
);
}
}
for
(
Integer
dir
:
dirSet
)
{
for
(
Integer
dir
:
dirSet
)
{
SaveSchemeConfigDTO
.
DirListElement
dirListElement
=
new
SaveSchemeConfigDTO
.
DirListElement
();
SaveSchemeConfigDTO
.
DirListElement
dirListElement
=
new
SaveSchemeConfigDTO
.
DirListElement
();
...
...
signal-control-service/src/main/java/net/wanji/web/vo/TestVO.java
0 → 100644
View file @
c5fc8780
package
net
.
wanji
.
web
.
vo
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author Kent HAN
* @date 2023/1/12 21:45
*/
@Data
public
class
TestVO
{
private
Date
testDate
;
}
signal-control-service/src/main/resources/mapper/scheme/CrossPhaseLightsMapper.xml
View file @
c5fc8780
...
@@ -20,6 +20,12 @@
...
@@ -20,6 +20,12 @@
</foreach>
</foreach>
</insert>
</insert>
<update
id=
"updateLightsId"
>
update t_base_cross_phase_lights
set lights_id = #{newId}
where lights_id = #{oldId}
</update>
<delete
id=
"deleteByCrossId"
>
<delete
id=
"deleteByCrossId"
>
delete from t_base_cross_phase_lights
delete from t_base_cross_phase_lights
where cross_id = #{crossId}
where cross_id = #{crossId}
...
...
signal-control-service/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
View file @
c5fc8780
...
@@ -80,5 +80,13 @@
...
@@ -80,5 +80,13 @@
</foreach>
</foreach>
</select>
</select>
<select
id=
"selectByCrossIdAndSchemeId"
resultMap=
"BaseResultMap"
>
select
id,phase_no,name,sort,cross_id,plan_id,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time,gmt_create,gmt_modified
from t_base_cross_phase
where cross_id = #{crossId} and plan_id = #{schemeId}
order by sort
</select>
</mapper>
</mapper>
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