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
8ebfab8f
Commit
8ebfab8f
authored
Mar 26, 2025
by
zhouleilei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、解决海信信号机同步特殊日期问题;2、修改查询环图逻辑
parent
edffcbec
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
36 deletions
+104
-36
StaticInfoServiceImpl.java
...wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
+55
-28
ScheduleUtil.java
...c/main/java/net/wanji/common/utils/tool/ScheduleUtil.java
+23
-4
CrossSchedulesPO.java
...n/java/net/wanji/databus/dao/entity/CrossSchedulesPO.java
+1
-0
BaseCrossSchemeMapper.xml
...tabus/src/main/resources/mapper/BaseCrossSchemeMapper.xml
+25
-4
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
View file @
8ebfab8f
...
@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.utils.tool.DateUtil
;
import
net.wanji.common.utils.tool.ScheduleUtil
;
import
net.wanji.common.utils.tool.ScheduleUtil
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.*
;
...
@@ -14,10 +16,7 @@ import net.wanji.databus.dao.mapper.CrossInfoMapper;
...
@@ -14,10 +16,7 @@ import net.wanji.databus.dao.mapper.CrossInfoMapper;
import
net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper
;
import
net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper
;
import
net.wanji.databus.dao.mapper.ManufacturerInfoMapper
;
import
net.wanji.databus.dao.mapper.ManufacturerInfoMapper
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.CoordinationStatus
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.CrossInfoPOExt
;
import
net.wanji.databus.po.CrossNowSchemePO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
...
@@ -26,7 +25,6 @@ import net.wanji.utc.hisense.common.constants.HttpConstants;
...
@@ -26,7 +25,6 @@ import net.wanji.utc.hisense.common.constants.HttpConstants;
import
net.wanji.utc.hisense.mapper.*
;
import
net.wanji.utc.hisense.mapper.*
;
import
net.wanji.utc.hisense.pojo.dto.RingPhaseDTO
;
import
net.wanji.utc.hisense.pojo.dto.RingPhaseDTO
;
import
net.wanji.utc.hisense.pojo.dto.StagePhaseDTO
;
import
net.wanji.utc.hisense.pojo.dto.StagePhaseDTO
;
import
net.wanji.databus.po.CrossSchemeRings
;
import
net.wanji.utc.hisense.pojo.view.*
;
import
net.wanji.utc.hisense.pojo.view.*
;
import
net.wanji.utc.hisense.service.StaticInfoService
;
import
net.wanji.utc.hisense.service.StaticInfoService
;
import
net.wanji.utc.hisense.util.CommonUtils
;
import
net.wanji.utc.hisense.util.CommonUtils
;
...
@@ -665,6 +663,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
...
@@ -665,6 +663,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
LambdaQueryWrapper
<
VNtcipTimeBaseScheduleView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
VNtcipTimeBaseScheduleView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
VNtcipTimeBaseScheduleView:
:
getCIntsID
,
code
);
queryWrapper
.
eq
(
VNtcipTimeBaseScheduleView:
:
getCIntsID
,
code
);
List
<
VNtcipTimeBaseScheduleView
>
vNtcipTimeBaseScheduleViews
=
vNtcipTimeBaseScheduleMapper
.
selectList
(
queryWrapper
);
List
<
VNtcipTimeBaseScheduleView
>
vNtcipTimeBaseScheduleViews
=
vNtcipTimeBaseScheduleMapper
.
selectList
(
queryWrapper
);
int
year
=
DateUtil
.
getYear
(
new
Date
());
if
(!
CollectionUtils
.
isEmpty
(
vNtcipTimeBaseScheduleViews
))
{
if
(!
CollectionUtils
.
isEmpty
(
vNtcipTimeBaseScheduleViews
))
{
for
(
VNtcipTimeBaseScheduleView
vNtcipTimeBaseScheduleView
:
vNtcipTimeBaseScheduleViews
)
{
for
(
VNtcipTimeBaseScheduleView
vNtcipTimeBaseScheduleView
:
vNtcipTimeBaseScheduleViews
)
{
if
(
Objects
.
nonNull
(
vNtcipTimeBaseScheduleView
))
{
if
(
Objects
.
nonNull
(
vNtcipTimeBaseScheduleView
))
{
...
@@ -683,32 +683,59 @@ public class StaticInfoServiceImpl implements StaticInfoService {
...
@@ -683,32 +683,59 @@ public class StaticInfoServiceImpl implements StaticInfoService {
String
monthsStr
=
ScheduleUtil
.
getSchedule
(
hisenseMonth
.
longValue
(),
1
);
String
monthsStr
=
ScheduleUtil
.
getSchedule
(
hisenseMonth
.
longValue
(),
1
);
String
daysStr
=
ScheduleUtil
.
getSchedule
(
hisenseDays
,
2
);
String
daysStr
=
ScheduleUtil
.
getSchedule
(
hisenseDays
,
2
);
String
weekStr
=
ScheduleUtil
.
getSchedule
(
hisenseWeek
.
longValue
(),
3
);
String
weekStr
=
ScheduleUtil
.
getSchedule
(
hisenseWeek
.
longValue
(),
3
);
if
(
StringUtils
.
isNotBlank
(
weekStr
))
{
if
(
StringUtils
.
isBlank
(
monthsStr
)){
String
[]
weekSplit
=
weekStr
.
split
(
","
);
//如果没有月份数据,则为无效数据
for
(
String
oneWeek
:
weekSplit
)
{
continue
;
CrossSchedulesPO
crossSchedulesPOWeek
=
new
CrossSchedulesPO
();
}
crossSchedulesPOWeek
.
setCrossId
(
crossId
);
//根据海信的视图数据,判断是否是特殊日期,如果 hisenseWeek 为0时,则为特殊日期
crossSchedulesPOWeek
.
setScheduleNo
(
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
if
(
hisenseWeek
==
0
){
crossSchedulesPOWeek
.
setName
(
"调度"
+
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
if
(
StringUtils
.
isNotBlank
(
daysStr
)){
crossSchedulesPOWeek
.
setWeek
(
Integer
.
valueOf
(
oneWeek
));
String
[]
days
=
daysStr
.
split
(
","
);
crossSchedulesPOWeek
.
setMonths
(
monthsStr
);
for
(
String
day
:
days
)
{
crossSchedulesPOWeek
.
setDays
(
daysStr
);
CrossSchedulesPO
crossSchedulesPOWeek
=
new
CrossSchedulesPO
();
crossSchedulesPOWeek
.
setPlanId
(
hisensePlanId
);
crossSchedulesPOWeek
.
setCrossId
(
crossId
);
results
.
add
(
crossSchedulesPOWeek
);
crossSchedulesPOWeek
.
setScheduleNo
(
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
crossSchedulesPOWeek
.
setName
(
"调度"
+
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
crossSchedulesPOWeek
.
setWeek
(
0
);
crossSchedulesPOWeek
.
setMonths
(
monthsStr
);
crossSchedulesPOWeek
.
setDays
(
daysStr
);
String
date
=
year
+
"-"
+
monthsStr
+
"-"
+
day
;
Date
parse
=
DateUtil
.
parse
(
date
,
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_DAY
);
crossSchedulesPOWeek
.
setSpecialDate
(
parse
);
crossSchedulesPOWeek
.
setPlanId
(
hisensePlanId
);
results
.
add
(
crossSchedulesPOWeek
);
}
}
}
}
else
{
// 不执行周调度
}
else
{
CrossSchedulesPO
crossSchedulesPOMonthDays
=
new
CrossSchedulesPO
();
if
(
StringUtils
.
isNotBlank
(
weekStr
))
{
crossSchedulesPOMonthDays
.
setCrossId
(
crossId
);
String
[]
weekSplit
=
weekStr
.
split
(
","
);
crossSchedulesPOMonthDays
.
setScheduleNo
(
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
for
(
String
oneWeek
:
weekSplit
)
{
crossSchedulesPOMonthDays
.
setName
(
"调度"
+
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
CrossSchedulesPO
crossSchedulesPOWeek
=
new
CrossSchedulesPO
();
crossSchedulesPOWeek
.
setCrossId
(
crossId
);
crossSchedulesPOWeek
.
setScheduleNo
(
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
crossSchedulesPOWeek
.
setName
(
"调度"
+
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
crossSchedulesPOWeek
.
setWeek
(
Integer
.
valueOf
(
oneWeek
));
crossSchedulesPOWeek
.
setMonths
(
monthsStr
);
crossSchedulesPOWeek
.
setDays
(
daysStr
);
crossSchedulesPOWeek
.
setPlanId
(
hisensePlanId
);
results
.
add
(
crossSchedulesPOWeek
);
}
}
else
{
// 不执行周调度
CrossSchedulesPO
crossSchedulesPOMonthDays
=
new
CrossSchedulesPO
();
crossSchedulesPOMonthDays
.
setCrossId
(
crossId
);
crossSchedulesPOMonthDays
.
setScheduleNo
(
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
crossSchedulesPOMonthDays
.
setName
(
"调度"
+
vNtcipTimeBaseScheduleView
.
getNTimeBaseScheduleNumber
());
// crossSchedulesPOMonthDays.setWeek(0);
// crossSchedulesPOMonthDays.setWeek(0);
// crossSchedulesPOMonthDays.setPlanId(hisensePlanId);
// crossSchedulesPOMonthDays.setPlanId(hisensePlanId);
crossSchedulesPOMonthDays
.
setWeek
(
null
);
crossSchedulesPOMonthDays
.
setWeek
(
null
);
crossSchedulesPOMonthDays
.
setPlanId
(
0
);
crossSchedulesPOMonthDays
.
setPlanId
(
0
);
crossSchedulesPOMonthDays
.
setMonths
(
monthsStr
);
crossSchedulesPOMonthDays
.
setMonths
(
monthsStr
);
crossSchedulesPOMonthDays
.
setDays
(
daysStr
);
crossSchedulesPOMonthDays
.
setDays
(
daysStr
);
results
.
add
(
crossSchedulesPOMonthDays
);
results
.
add
(
crossSchedulesPOMonthDays
);
}
}
}
}
}
}
}
...
...
wj-common/src/main/java/net/wanji/common/utils/tool/ScheduleUtil.java
View file @
8ebfab8f
package
net
.
wanji
.
common
.
utils
.
tool
;
package
net
.
wanji
.
common
.
utils
.
tool
;
import
net.wanji.common.framework.Constants
;
import
java.text.ParseException
;
import
java.util.Date
;
/**
/**
* @Author: zhouleilei
* @Author: zhouleilei
* @date: 2024/11/09 15:15
* @date: 2024/11/09 15:15
...
@@ -105,9 +110,23 @@ public class ScheduleUtil {
...
@@ -105,9 +110,23 @@ public class ScheduleUtil {
return
inteterSum
;
return
inteterSum
;
}
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
throws
ParseException
{
System
.
out
.
println
(
getSchedule
(
512L
,
1
));
//月
System
.
out
.
println
(
getSchedule
(
4294967295L
,
2
));
String
months
=
getSchedule
(
4L
,
1
);
System
.
out
.
println
(
getSchedule
(
4L
,
3
));
System
.
out
.
println
(
months
);
//日
String
days
=
getSchedule
(
30L
,
2
);
System
.
out
.
println
(
days
);
//星期
System
.
out
.
println
(
getSchedule
(
0L
,
3
));
int
year
=
DateUtil
.
getYear
(
new
Date
());
String
[]
split
=
days
.
split
(
","
);
for
(
String
day
:
split
)
{
String
date
=
year
+
"-"
+
months
+
"-"
+
day
;
Date
parse
=
DateUtil
.
parse
(
date
,
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_DAY
);
System
.
out
.
println
(
parse
);
}
}
}
}
}
wj-databus/src/main/java/net/wanji/databus/dao/entity/CrossSchedulesPO.java
View file @
8ebfab8f
...
@@ -39,6 +39,7 @@ public class CrossSchedulesPO {
...
@@ -39,6 +39,7 @@ public class CrossSchedulesPO {
private
String
weeks
;
private
String
weeks
;
/** 特殊日期 */
/** 特殊日期 */
@ApiModelProperty
(
value
=
"特殊日期"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"特殊日期"
,
notes
=
""
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
specialDate
;
private
Date
specialDate
;
/** 创建时间 */
/** 创建时间 */
@ApiModelProperty
(
value
=
"创建时间"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"创建时间"
,
notes
=
""
)
...
...
wj-databus/src/main/resources/mapper/BaseCrossSchemeMapper.xml
View file @
8ebfab8f
...
@@ -238,10 +238,20 @@
...
@@ -238,10 +238,20 @@
AND section.scheme_id = scheme.id
AND section.scheme_id = scheme.id
WHERE
WHERE
schedules.cross_id = #{crossId}
schedules.cross_id = #{crossId}
AND schedules.`week` = #{week}
AND (
DATE_FORMAT(schedules.special_date, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
OR
(
schedules.week = #{week}
AND (
DATE_FORMAT(schedules.special_date, '%Y-%m-%d') != DATE_FORMAT(NOW(), '%Y-%m-%d')
OR schedules.special_date IS NULL
)
)
)
AND DATE_FORMAT( NOW(), '%H:%i' ) BETWEEN DATE_FORMAT( CAST( section.start_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( NOW(), '%H:%i' ) BETWEEN DATE_FORMAT( CAST( section.start_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
ORDER BY schedules.special_date, DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' ) DESC LIMIT 1
ORDER BY schedules.special_date, DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
,schedules.special_date
DESC LIMIT 1
</select>
</select>
<select
id=
"selectSchemeByParams"
resultType=
"net.wanji.databus.dao.entity.BaseCrossSchemePO"
>
<select
id=
"selectSchemeByParams"
resultType=
"net.wanji.databus.dao.entity.BaseCrossSchemePO"
>
...
@@ -255,10 +265,21 @@
...
@@ -255,10 +265,21 @@
AND section.scheme_id = scheme.id
AND section.scheme_id = scheme.id
WHERE
WHERE
schedules.cross_id = #{crossId}
schedules.cross_id = #{crossId}
AND schedules.`week` = #{week}
AND (
DATE_FORMAT(schedules.special_date, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
OR
(
schedules.week = #{week}
AND (
DATE_FORMAT(schedules.special_date, '%Y-%m-%d') != DATE_FORMAT(NOW(), '%Y-%m-%d')
OR schedules.special_date IS NULL
)
)
)
AND DATE_FORMAT( #{queryTime}, '%H:%i' ) BETWEEN DATE_FORMAT( CAST( section.start_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( #{queryTime}, '%H:%i' ) BETWEEN DATE_FORMAT( CAST( section.start_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
AND DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
ORDER BY schedules.special_date, DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' ) DESC LIMIT 1
ORDER BY schedules.special_date, DATE_FORMAT( CAST( section.end_time AS TIME ), '%H:%i' )
,schedules.special_date
DESC LIMIT 1
</select>
</select>
...
...
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