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
a9b2d08c
Commit
a9b2d08c
authored
Jan 22, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 添加web数据下发到utc数据库
parent
53feba75
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
298 additions
and
104 deletions
+298
-104
JacksonConfig.java
...ice/src/main/java/net/wanji/utc/config/JacksonConfig.java
+78
-0
ControlCommandController.java
...va/net/wanji/utc/controller/ControlCommandController.java
+8
-0
ControlCommandStrategyService.java
...ji/utc/service/control/ControlCommandStrategyService.java
+3
-0
ControlCommandStrategyServiceImpl.java
...rvice/control/impl/ControlCommandStrategyServiceImpl.java
+209
-104
No files found.
signal-utc-service/src/main/java/net/wanji/utc/config/JacksonConfig.java
0 → 100644
View file @
a9b2d08c
package
net
.
wanji
.
utc
.
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-utc-service/src/main/java/net/wanji/utc/controller/ControlCommandController.java
View file @
a9b2d08c
...
...
@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.annotation.aspect.AspectLog
;
import
net.wanji.common.enums.BaseEnum
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.vo.*
;
import
net.wanji.utc.service.control.ControlCommandStrategyService
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -212,4 +213,11 @@ public class ControlCommandController {
public
JsonViewObject
tempScheme
(
@RequestParam
String
crossCode
,
@RequestParam
Integer
schemeNo
)
throws
Exception
{
return
controlCommandStrategyService
.
tempScheme
(
crossCode
,
schemeNo
);
}
@AspectLog
(
description
=
"下发数据到UTC"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
UPDATE
)
@ApiOperation
(
value
=
"下发数据到UTC"
,
notes
=
"下发数据到UTC"
)
@PostMapping
(
"/saveToUtc"
)
public
JsonViewObject
saveToUtc
(
@RequestBody
@Validated
SaveToUtcPO
saveToUtcPO
)
throws
Exception
{
return
controlCommandStrategyService
.
saveToUtc
(
saveToUtcPO
);
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/control/ControlCommandStrategyService.java
View file @
a9b2d08c
package
net
.
wanji
.
utc
.
service
.
control
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.vo.*
;
import
java.util.Date
;
...
...
@@ -96,4 +97,6 @@ public interface ControlCommandStrategyService {
JsonViewObject
timing
(
String
crossCode
,
Date
date
)
throws
Exception
;
JsonViewObject
tempScheme
(
String
crossCode
,
Integer
schemeNo
)
throws
Exception
;
JsonViewObject
saveToUtc
(
SaveToUtcPO
saveToUtcPO
)
throws
Exception
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/control/impl/ControlCommandStrategyServiceImpl.java
View file @
a9b2d08c
package
net
.
wanji
.
utc
.
service
.
control
.
impl
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.po.BaseCrossLightsPO
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.vo.*
;
import
net.wanji.utc.cache.CrossInfoCache
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
...
...
@@ -13,8 +16,10 @@ import net.wanji.utc.po.hk.request.DelBaseConfigPO;
import
net.wanji.utc.service.control.ControlCommandService
;
import
net.wanji.utc.service.control.ControlCommandStrategyService
;
import
net.wanji.utc.util.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.text.ParseException
;
...
...
@@ -30,6 +35,7 @@ import java.util.Objects;
*/
@Service
@RequiredArgsConstructor
@Slf4j
public
class
ControlCommandStrategyServiceImpl
implements
ControlCommandStrategyService
{
@Resource
(
name
=
"hkControlCommandService"
)
...
...
@@ -44,11 +50,13 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
private
final
CrossPlanMapper
crossPlanMapper
;
private
final
CrossSchedulesMapper
crossSchedulesMapper
;
private
final
CrossInfoCache
crossInfoCache
;
private
final
CrossLightsMapper
crossLightsMapper
;
private
final
CrossPhaseLightsMapper
crossPhaseLightsMapper
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JsonViewObject
schemeSendStrategy
(
SchemeSendVO
schemeSendVO
)
throws
Exception
{
schemeSendDataInsert
(
schemeSendVO
);
JsonViewObject
jsonViewObject
;
String
manufacturerIdCode
=
crossInfoCache
.
getManufacturerCodeByCrossId
(
schemeSendVO
.
getCrossCode
());
if
(
StringUtils
.
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
(),
manufacturerIdCode
))
{
...
...
@@ -56,58 +64,63 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
else
{
jsonViewObject
=
wanJiControlCommandService
.
schemeSend
(
schemeSendVO
);
}
schemeSendDataInsert
(
schemeSendVO
);
return
jsonViewObject
;
}
private
void
schemeSendDataInsert
(
SchemeSendVO
schemeSendVO
)
{
// 入库操作
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setSchemeNo
(
pattern
.
getPatternNo
());
crossSchemePO
.
setName
(
pattern
.
getPatternName
());
crossSchemePO
.
setCrossId
(
schemeSendVO
.
getCrossCode
());
crossSchemePO
.
setCycle
(
Integer
.
parseInt
(
pattern
.
getCycle
()));
crossSchemePO
.
setCoordPhase
(
Integer
.
parseInt
(
pattern
.
getCoordPhase
()));
crossSchemePO
.
setOffset
(
Integer
.
parseInt
(
pattern
.
getOffset
()));
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePOList
.
add
(
crossSchemePO
);
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
schemeSendDataInsert
(
SchemeSendVO
schemeSendVO
)
throws
Exception
{
try
{
// 入库操作
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setSchemeNo
(
pattern
.
getPatternNo
());
crossSchemePO
.
setName
(
pattern
.
getPatternName
());
crossSchemePO
.
setCrossId
(
schemeSendVO
.
getCrossCode
());
crossSchemePO
.
setCycle
(
Integer
.
parseInt
(
pattern
.
getCycle
()));
crossSchemePO
.
setCoordPhase
(
Integer
.
parseInt
(
pattern
.
getCoordPhase
()));
crossSchemePO
.
setOffset
(
Integer
.
parseInt
(
pattern
.
getOffset
()));
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePOList
.
add
(
crossSchemePO
);
pattern
.
getRings
().
forEach
(
ring
->
{
List
<
CrossPhasePO
>
crossPhasePOList
=
new
ArrayList
<>();
ring
.
getPhaseList
().
forEach
(
phase
->
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
crossPhasePO
.
setPhaseNo
(
phase
.
getPhaseNo
());
crossPhasePO
.
setName
(
phase
.
getPhaseName
());
crossPhasePO
.
setSort
(
Integer
.
parseInt
(
phase
.
getSort
()));
crossPhasePO
.
setCrossId
(
schemeSendVO
.
getCrossCode
());
crossPhasePO
.
setPlanId
(
Integer
.
parseInt
(
pattern
.
getPatternNo
()));
crossPhasePO
.
setRingNo
(
Integer
.
parseInt
(
ring
.
getRingNo
()));
crossPhasePO
.
setControlMode
(
Integer
.
parseInt
(
phase
.
getControlMode
()));
crossPhasePO
.
setPhaseTime
(
Integer
.
parseInt
(
phase
.
getPhaseTime
()));
crossPhasePO
.
setGreenTime
(
Integer
.
parseInt
(
phase
.
getGreenTime
()));
crossPhasePO
.
setGreenFlashTime
(
Integer
.
parseInt
(
phase
.
getGreenFlashTime
()));
crossPhasePO
.
setPedFlashTime
(
Integer
.
parseInt
(
phase
.
getPedFlashTime
()));
crossPhasePO
.
setYellowTime
(
Integer
.
parseInt
(
phase
.
getYellowTime
()));
crossPhasePO
.
setRedTime
(
Integer
.
parseInt
(
phase
.
getRedTime
()));
crossPhasePO
.
setMinGreenTime
(
Integer
.
parseInt
(
phase
.
getMinGreenTime
()));
crossPhasePO
.
setMaxGreenTime
(
Integer
.
parseInt
(
phase
.
getMaxGreenTime
()));
crossPhasePOList
.
add
(
crossPhasePO
);
pattern
.
getRings
().
forEach
(
ring
->
{
List
<
CrossPhasePO
>
crossPhasePOList
=
new
ArrayList
<>();
ring
.
getPhaseList
().
forEach
(
phase
->
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
crossPhasePO
.
setPhaseNo
(
phase
.
getPhaseNo
());
crossPhasePO
.
setName
(
phase
.
getPhaseName
());
crossPhasePO
.
setSort
(
Integer
.
parseInt
(
phase
.
getSort
()));
crossPhasePO
.
setCrossId
(
schemeSendVO
.
getCrossCode
());
crossPhasePO
.
setPlanId
(
Integer
.
parseInt
(
pattern
.
getPatternNo
()));
crossPhasePO
.
setRingNo
(
Integer
.
parseInt
(
ring
.
getRingNo
()));
crossPhasePO
.
setControlMode
(
Integer
.
parseInt
(
phase
.
getControlMode
()));
crossPhasePO
.
setPhaseTime
(
Integer
.
parseInt
(
phase
.
getPhaseTime
()));
crossPhasePO
.
setGreenTime
(
Integer
.
parseInt
(
phase
.
getGreenTime
()));
crossPhasePO
.
setGreenFlashTime
(
Integer
.
parseInt
(
phase
.
getGreenFlashTime
()));
crossPhasePO
.
setPedFlashTime
(
Integer
.
parseInt
(
phase
.
getPedFlashTime
()));
crossPhasePO
.
setYellowTime
(
Integer
.
parseInt
(
phase
.
getYellowTime
()));
crossPhasePO
.
setRedTime
(
Integer
.
parseInt
(
phase
.
getRedTime
()));
crossPhasePO
.
setMinGreenTime
(
Integer
.
parseInt
(
phase
.
getMinGreenTime
()));
crossPhasePO
.
setMaxGreenTime
(
Integer
.
parseInt
(
phase
.
getMaxGreenTime
()));
crossPhasePOList
.
add
(
crossPhasePO
);
});
// 入库路口相位表
crossPhaseMapper
.
insertBatch
(
crossPhasePOList
);
});
// 入库路口相位表
crossPhaseMapper
.
insertBatch
(
crossPhasePOList
);
});
});
// 入库信号方案表
crossSchemeMapper
.
insertBatch
(
crossSchemePOList
);
});
// 入库信号方案表
crossSchemeMapper
.
insertBatch
(
crossSchemePOList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"下发方案相位数据到utc数据库失败"
,
e
);
throw
new
Exception
(
"下发方案相位数据到utc数据库失败"
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JsonViewObject
planSendStrategy
(
PlanSendVO
planSendVO
)
throws
Exception
{
planSendDataInsert
(
planSendVO
);
JsonViewObject
jsonViewObject
;
String
manufacturerIdCode
=
crossInfoCache
.
getManufacturerCodeByCrossId
(
planSendVO
.
getCrossCode
());
if
(
StringUtils
.
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
(),
manufacturerIdCode
))
{
...
...
@@ -115,40 +128,45 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
else
{
jsonViewObject
=
wanJiControlCommandService
.
planSend
(
planSendVO
);
}
planSendDataInsert
(
planSendVO
);
return
jsonViewObject
;
}
private
void
planSendDataInsert
(
PlanSendVO
planSendVO
)
{
List
<
CrossPlanPO
>
crossPlanPOList
=
new
ArrayList
<>();
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
CrossPlanPO
crossPlanPO
=
new
CrossPlanPO
();
crossPlanPO
.
setPlanNo
(
plan
.
getPlanNo
());
crossPlanPO
.
setName
(
plan
.
getPlanDescribe
());
crossPlanPO
.
setCrossId
(
planSendVO
.
getCrossCode
());
crossPlanPOList
.
add
(
crossPlanPO
);
List
<
CrossSectionPO
>
crossSectionPOList
=
new
ArrayList
<>();
plan
.
getSectionList
().
forEach
(
section
->
{
CrossSectionPO
crossSectionPO
=
new
CrossSectionPO
();
crossSectionPO
.
setSectionNo
(
section
.
getSectionNo
());
crossSectionPO
.
setStartTime
(
section
.
getBeginTime
());
crossSectionPO
.
setEndTime
(
section
.
getEndTime
());
crossSectionPO
.
setCrossId
(
planSendVO
.
getCrossCode
());
crossSectionPO
.
setPlanId
(
Integer
.
parseInt
(
plan
.
getPlanNo
()));
crossSectionPO
.
setControlMode
(
Integer
.
parseInt
(
section
.
getControlMode
()));
crossSectionPO
.
setSchemeId
(
Integer
.
parseInt
(
section
.
getPatternNo
()));
crossSectionPOList
.
add
(
crossSectionPO
);
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
planSendDataInsert
(
PlanSendVO
planSendVO
)
throws
Exception
{
try
{
List
<
CrossPlanPO
>
crossPlanPOList
=
new
ArrayList
<>();
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
CrossPlanPO
crossPlanPO
=
new
CrossPlanPO
();
crossPlanPO
.
setPlanNo
(
plan
.
getPlanNo
());
crossPlanPO
.
setName
(
plan
.
getPlanDescribe
());
crossPlanPO
.
setCrossId
(
planSendVO
.
getCrossCode
());
crossPlanPOList
.
add
(
crossPlanPO
);
List
<
CrossSectionPO
>
crossSectionPOList
=
new
ArrayList
<>();
plan
.
getSectionList
().
forEach
(
section
->
{
CrossSectionPO
crossSectionPO
=
new
CrossSectionPO
();
crossSectionPO
.
setSectionNo
(
section
.
getSectionNo
());
crossSectionPO
.
setStartTime
(
section
.
getBeginTime
());
crossSectionPO
.
setEndTime
(
section
.
getEndTime
());
crossSectionPO
.
setCrossId
(
planSendVO
.
getCrossCode
());
crossSectionPO
.
setPlanId
(
Integer
.
parseInt
(
plan
.
getPlanNo
()));
crossSectionPO
.
setControlMode
(
Integer
.
parseInt
(
section
.
getControlMode
()));
crossSectionPO
.
setSchemeId
(
Integer
.
parseInt
(
section
.
getPatternNo
()));
crossSectionPOList
.
add
(
crossSectionPO
);
});
// 入库路口时段表
crossSectionMapper
.
insertBatch
(
crossSectionPOList
);
});
// 入库路口时段表
crossSectionMapper
.
insertBatch
(
crossSectionPOList
);
});
// 入库路口计划表
crossPlanMapper
.
insertBatch
(
crossPlanPOList
);
// 入库路口计划表
crossPlanMapper
.
insertBatch
(
crossPlanPOList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"下发时段日计划数据到UTC数据库失败"
,
e
);
throw
new
Exception
(
"下发时段日计划数据到UTC数据库失败"
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
JsonViewObject
scheduleSendStrategy
(
ScheduleSendVO
scheduleSendVO
)
throws
Exception
{
scheduleSendDataInsert
(
scheduleSendVO
);
JsonViewObject
jsonViewObject
;
String
manufacturerIdCode
=
crossInfoCache
.
getManufacturerCodeByCrossId
(
scheduleSendVO
.
getCrossCode
());
if
(
StringUtils
.
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
(),
manufacturerIdCode
))
{
...
...
@@ -156,46 +174,51 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
else
{
jsonViewObject
=
wanJiControlCommandService
.
scheduleSend
(
scheduleSendVO
);
}
scheduleSendDataInsert
(
scheduleSendVO
);
return
jsonViewObject
;
}
private
void
scheduleSendDataInsert
(
ScheduleSendVO
scheduleSendVO
)
{
// 1、入库操作
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateStyle
.
YYYY_MM_DD
.
getValue
());
ArrayList
<
CrossSchedulesPO
>
crossSchedulesPOS
=
new
ArrayList
<>();
scheduleSendVO
.
getSchedules
().
forEach
(
schedule
->
{
schedule
.
getWeeks
().
forEach
(
week
->
{
CrossSchedulesPO
schedulesPO
=
new
CrossSchedulesPO
();
if
(
week
.
getWeekNum
()
>=
6
)
{
schedulesPO
.
setName
(
"周末"
);
}
else
{
schedulesPO
.
setName
(
"工作日"
);
}
schedulesPO
.
setCrossId
(
scheduleSendVO
.
getCrossCode
());
schedulesPO
.
setScheduleNo
(
Integer
.
valueOf
(
schedule
.
getScheduleNo
()));
schedulesPO
.
setPlanId
(
week
.
getPlanNo
());
schedulesPO
.
setWeek
(
week
.
getWeekNum
());
schedulesPO
.
setSpecialDate
(
null
);
crossSchedulesPOS
.
add
(
schedulesPO
);
});
schedule
.
getSpecialDays
().
forEach
(
specialDay
->
{
CrossSchedulesPO
schedulesPO
=
new
CrossSchedulesPO
();
schedulesPO
.
setScheduleNo
(
Integer
.
valueOf
(
schedule
.
getScheduleNo
()));
schedulesPO
.
setName
(
"特殊日期"
);
schedulesPO
.
setCrossId
(
scheduleSendVO
.
getCrossCode
());
schedulesPO
.
setPlanId
(
specialDay
.
getPlanNo
());
schedulesPO
.
setWeek
(
null
);
try
{
schedulesPO
.
setSpecialDate
(
sdf
.
parse
(
specialDay
.
getDateStr
()));
}
catch
(
ParseException
e
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
scheduleSendDataInsert
(
ScheduleSendVO
scheduleSendVO
)
throws
Exception
{
try
{
// 1、入库操作
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateStyle
.
YYYY_MM_DD
.
getValue
());
ArrayList
<
CrossSchedulesPO
>
crossSchedulesPOS
=
new
ArrayList
<>();
scheduleSendVO
.
getSchedules
().
forEach
(
schedule
->
{
schedule
.
getWeeks
().
forEach
(
week
->
{
CrossSchedulesPO
schedulesPO
=
new
CrossSchedulesPO
();
if
(
week
.
getWeekNum
()
>=
6
)
{
schedulesPO
.
setName
(
"周末"
);
}
else
{
schedulesPO
.
setName
(
"工作日"
);
}
schedulesPO
.
setCrossId
(
scheduleSendVO
.
getCrossCode
());
schedulesPO
.
setScheduleNo
(
Integer
.
valueOf
(
schedule
.
getScheduleNo
()));
schedulesPO
.
setPlanId
(
week
.
getPlanNo
());
schedulesPO
.
setWeek
(
week
.
getWeekNum
());
schedulesPO
.
setSpecialDate
(
null
);
}
crossSchedulesPOS
.
add
(
schedulesPO
);
crossSchedulesPOS
.
add
(
schedulesPO
);
});
schedule
.
getSpecialDays
().
forEach
(
specialDay
->
{
CrossSchedulesPO
schedulesPO
=
new
CrossSchedulesPO
();
schedulesPO
.
setScheduleNo
(
Integer
.
valueOf
(
schedule
.
getScheduleNo
()));
schedulesPO
.
setName
(
"特殊日期"
);
schedulesPO
.
setCrossId
(
scheduleSendVO
.
getCrossCode
());
schedulesPO
.
setPlanId
(
specialDay
.
getPlanNo
());
schedulesPO
.
setWeek
(
null
);
try
{
schedulesPO
.
setSpecialDate
(
sdf
.
parse
(
specialDay
.
getDateStr
()));
}
catch
(
ParseException
e
)
{
schedulesPO
.
setSpecialDate
(
null
);
}
crossSchedulesPOS
.
add
(
schedulesPO
);
});
});
});
// 入库时间表
crossSchedulesMapper
.
insertBatch
(
crossSchedulesPOS
);
// 入库时间表
crossSchedulesMapper
.
insertBatch
(
crossSchedulesPOS
);
}
catch
(
Exception
e
)
{
log
.
error
(
"下发调度数据到utc数据库失败"
,
e
);
throw
new
Exception
(
"下发调度数据到utc数据库失败"
);
}
}
@Override
...
...
@@ -312,4 +335,86 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
return
jsonViewObject
;
}
@Override
@Transactional
public
JsonViewObject
saveToUtc
(
SaveToUtcPO
saveToUtcPO
)
throws
Exception
{
try
{
if
(
Objects
.
nonNull
(
saveToUtcPO
))
{
List
<
BaseCrossLightsPO
>
lightsPOS
=
saveToUtcPO
.
getLightsPOS
();
CrossSchedulesPO
crossSchedulesPO
=
saveToUtcPO
.
getSchedulesPOS
().
get
(
0
);
String
crossId
=
crossSchedulesPO
.
getCrossId
();
if
(!
CollectionUtils
.
isEmpty
(
lightsPOS
))
{
crossLightsMapper
.
deleteByCrossId
(
crossId
);
for
(
BaseCrossLightsPO
lightsPO
:
lightsPOS
)
{
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
BeanUtils
.
copyProperties
(
lightsPO
,
crossLightsPO
);
crossLightsPO
.
setName
(
"灯组"
.
concat
(
lightsPO
.
getLightsNo
()));
crossLightsPO
.
setType
(
1
);
if
(
Objects
.
equals
(
lightsPO
.
getType
(),
1
))
{
crossLightsPO
.
setType
(
2
);
// 1箭头 2圆饼
}
else
if
(
Objects
.
equals
(
lightsPO
.
getType
(),
2
))
{
crossLightsPO
.
setTurn
(
1
);
// 1箭头 2圆饼
}
else
if
(
Objects
.
equals
(
lightsPO
.
getType
(),
3
))
{
crossLightsPO
.
setTurn
(
2
);
// 1箭头 2圆饼
}
else
if
(
Objects
.
equals
(
lightsPO
.
getType
(),
4
))
{
crossLightsPO
.
setTurn
(
3
);
// 1箭头 2圆饼
}
else
if
(
Objects
.
equals
(
lightsPO
.
getType
(),
20
))
{
crossLightsPO
.
setType
(
3
);
// 1箭头 2圆饼
crossLightsPO
.
setTurn
(
20
);
}
crossLightsMapper
.
insertOne
(
crossLightsPO
);
}
}
List
<
CrossPhasePO
>
phasePOS
=
saveToUtcPO
.
getPhasePOS
();
crossPhaseMapper
.
deleteByCrossId
(
crossId
);
if
(!
CollectionUtils
.
isEmpty
(
phasePOS
))
{
for
(
CrossPhasePO
phasePO
:
phasePOS
)
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
BeanUtils
.
copyProperties
(
phasePO
,
crossPhasePO
);
crossPhasePO
.
setName
(
"相位"
.
concat
(
phasePO
.
getPhaseNo
()));
crossPhasePO
.
setGroupNo
(
1
);
crossPhasePO
.
setRingNo
(
1
);
crossPhaseMapper
.
insertOne
(
crossPhasePO
);
}
}
List
<
CrossPhaseLightsPO
>
phaseLightsPOS
=
saveToUtcPO
.
getPhaseLightsPOS
();
crossPhaseLightsMapper
.
deleteByCrossId
(
crossId
);
crossPhaseLightsMapper
.
insertBatch
(
phaseLightsPOS
);
List
<
BaseCrossSchemePO
>
schemePOS
=
saveToUtcPO
.
getSchemePOS
();
if
(!
CollectionUtils
.
isEmpty
(
schemePOS
))
{
for
(
BaseCrossSchemePO
schemePO
:
schemePOS
)
{
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
BeanUtils
.
copyProperties
(
schemePO
,
crossSchemePO
);
crossSchemeMapper
.
insertOne
(
crossSchemePO
);
}
}
List
<
CrossSectionPO
>
sectionPOS
=
saveToUtcPO
.
getSectionPOS
();
crossSectionMapper
.
deleteOne
(
crossId
,
null
,
null
);
if
(!
CollectionUtils
.
isEmpty
(
sectionPOS
))
{
for
(
CrossSectionPO
sectionPO
:
sectionPOS
)
{
CrossSectionPO
crossSectionPO
=
new
CrossSectionPO
();
BeanUtils
.
copyProperties
(
sectionPO
,
crossSectionPO
);
crossSectionMapper
.
insertOne
(
crossSectionPO
);
}
}
List
<
BaseCrossPlanPO
>
planPOS
=
saveToUtcPO
.
getPlanPOS
();
if
(!
CollectionUtils
.
isEmpty
(
planPOS
))
{
for
(
BaseCrossPlanPO
planPO
:
planPOS
)
{
CrossPlanPO
crossPlanPO
=
new
CrossPlanPO
();
BeanUtils
.
copyProperties
(
planPO
,
crossPlanPO
);
crossPlanMapper
.
deleteOne
(
planPO
.
getCrossId
(),
Integer
.
valueOf
(
crossPlanPO
.
getPlanNo
()));
crossPlanMapper
.
insertOne
(
crossPlanPO
);
}
}
List
<
CrossSchedulesPO
>
schedulesPOS
=
saveToUtcPO
.
getSchedulesPOS
();
crossSchedulesMapper
.
deleteByCrossId
(
crossId
);
crossSchedulesMapper
.
insertBatch
(
schedulesPOS
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"下发数据到utc数据库失败:"
,
e
);
throw
new
Exception
(
e
);
}
return
JsonViewObject
.
newInstance
().
success
(
"数据下发到Utc数据库成功"
);
}
}
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