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
jinan
traffic-signal-platform
Commits
4d4bb296
Commit
4d4bb296
authored
Mar 18, 2025
by
黄伟铭
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增添加路口及干线area_id的方法
parent
6849ad46
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
179 additions
and
2 deletions
+179
-2
AnalysisProblemCrossDayMapper.java
...o/mapper/judgeanalysis/AnalysisProblemCrossDayMapper.java
+32
-0
CrossPoint.java
...n/java/net/wanji/opt/entity/judgeanalysis/CrossPoint.java
+18
-0
AnalysisProblemCrossDayService.java
...rvicev2/judgeanalysis/AnalysisProblemCrossDayService.java
+6
-0
AnalysisProblemGreenDayService.java
...rvicev2/judgeanalysis/AnalysisProblemGreenDayService.java
+6
-0
AnalysisProblemCrossDayServiceImpl.java
...udgeanalysis/impl/AnalysisProblemCrossDayServiceImpl.java
+40
-1
AnalysisProblemGreenDayServiceImpl.java
...udgeanalysis/impl/AnalysisProblemGreenDayServiceImpl.java
+39
-1
AnalysisProblemCrossDayMapper.xml
...es/mapper/judgeanalysis/AnalysisProblemCrossDayMapper.xml
+38
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/judgeanalysis/AnalysisProblemCrossDayMapper.java
View file @
4d4bb296
...
...
@@ -2,6 +2,8 @@ package net.wanji.opt.dao.mapper.judgeanalysis;
import
net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay
;
import
java.util.List
;
import
net.wanji.opt.entity.judgeanalysis.CrossPoint
;
import
org.apache.ibatis.annotations.Param
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
...
...
@@ -41,6 +43,36 @@ public interface AnalysisProblemCrossDayMapper extends BaseMapper<AnalysisProble
* @param analysisProblemCrossDay
*/
Integer
addAnalysisProblemCrossDay
(
AnalysisProblemCrossDay
analysisProblemCrossDay
);
/**
* 根据主键id更新表t_base_cross_info信息
* @param areaId,id
*/
Integer
updateCrossAreaIdByid
(
@Param
(
"areaId"
)
String
areaId
,
@Param
(
"id"
)
String
id
);
/**
* 根据主键id更新表t_base_cross_info信息
* @param areaId,id
*/
Integer
updateGreenAreaIdByid
(
@Param
(
"areaId"
)
String
areaId
,
@Param
(
"id"
)
String
id
);
/**
* 查询表t_base_cross_info信息
* @param
*/
List
<
CrossPoint
>
findCrossPoint
();
/**
* 查询表t_base_cross_info信息
* @param
*/
List
<
CrossPoint
>
findGreenPoint
();
/**
* 查询表t_base_area_info信息
* @param
*/
List
<
CrossPoint
>
findAreaPoint
();
}
signal-optimize-service/src/main/java/net/wanji/opt/entity/judgeanalysis/CrossPoint.java
0 → 100644
View file @
4d4bb296
package
net
.
wanji
.
opt
.
entity
.
judgeanalysis
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author huangwm
* @date 2025/03/18
*/
@Data
@ApiModel
(
value
=
"CrossPoint"
,
description
=
""
)
public
class
CrossPoint
{
@ApiModelProperty
(
value
=
"编号"
)
private
String
id
;
@ApiModelProperty
(
value
=
"坐标"
)
private
String
point
;
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/AnalysisProblemCrossDayService.java
View file @
4d4bb296
...
...
@@ -50,4 +50,10 @@ public interface AnalysisProblemCrossDayService extends IService<AnalysisProblem
* @return
*/
void
removes
(
List
<
Long
>
ids
);
/**
* 更新路口区域id
* @return
*/
void
updateCrossAreaIdByCondition
();
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/AnalysisProblemGreenDayService.java
View file @
4d4bb296
...
...
@@ -50,4 +50,10 @@ public interface AnalysisProblemGreenDayService extends IService<AnalysisProblem
* @return
*/
void
removes
(
List
<
Long
>
ids
);
/**
* 更新干线区域id
* @return
*/
void
updateGreenAreaIdByCondition
();
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/impl/AnalysisProblemCrossDayServiceImpl.java
View file @
4d4bb296
...
...
@@ -2,6 +2,7 @@ package net.wanji.opt.servicev2.judgeanalysis.impl;
import
net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay
;
import
net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemCrossDayMapper
;
import
net.wanji.opt.entity.judgeanalysis.CrossPoint
;
import
net.wanji.opt.servicev2.judgeanalysis.AnalysisProblemCrossDayService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -11,6 +12,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.StringUtils
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
org.locationtech.jts.geom.Geometry
;
/**
* <p>
...
...
@@ -80,4 +82,41 @@ import java.util.List;
removeByIds
(
ids
);
}
}
/**
* 路口区域id数据添加
* @return
*/
@Override
public
void
updateCrossAreaIdByCondition
()
{
//判断路口的areaId是否存在
List
<
CrossPoint
>
crossPoints
=
analysisProblemCrossDayMapper
.
findCrossPoint
();
if
(
crossPoints
.
size
()>
0
)
{
//获取区域id的坐标范围
List
<
CrossPoint
>
areaPont
=
analysisProblemCrossDayMapper
.
findAreaPoint
();
//循环判断是否存在区域内
for
(
CrossPoint
crossPoint:
crossPoints
){
int
i
=
0
;
for
(
CrossPoint
areaPoint:
areaPont
){
String
a
=
crossPoint
.
getPoint
().
replaceAll
(
" "
,
","
);
Geometry
geo
=
net
.
wanji
.
common
.
gts
.
GeomsConvertUtil
.
createPoint
(
a
);
Geometry
geo1
=
net
.
wanji
.
common
.
gts
.
GeomsConvertUtil
.
genGeometry
(
areaPoint
.
getPoint
());
if
(
geo
.
within
(
geo1
)){
//如果匹配则更新id
analysisProblemCrossDayMapper
.
updateCrossAreaIdByid
(
areaPoint
.
getId
(),
crossPoint
.
getId
());
i
=
1
;
}
}
if
(
i
==
0
){
//未匹配则把区域id设置为0
analysisProblemCrossDayMapper
.
updateCrossAreaIdByid
(
"0"
,
crossPoint
.
getId
());
}
}
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/servicev2/judgeanalysis/impl/AnalysisProblemGreenDayServiceImpl.java
View file @
4d4bb296
package
net
.
wanji
.
opt
.
servicev2
.
judgeanalysis
.
impl
;
import
net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemCrossDayMapper
;
import
net.wanji.opt.entity.judgeanalysis.AnalysisProblemGreenDay
;
import
net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemGreenDayMapper
;
import
net.wanji.opt.entity.judgeanalysis.CrossPoint
;
import
net.wanji.opt.servicev2.judgeanalysis.AnalysisProblemGreenDayService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
...
...
@@ -26,6 +29,9 @@ import java.util.List;
@Resource
private
AnalysisProblemGreenDayMapper
analysisProblemGreenDayMapper
;
@Resource
private
AnalysisProblemCrossDayMapper
analysisProblemCrossDayMapper
;
/**
* 绿波问题分析详情
...
...
@@ -80,4 +86,36 @@ import java.util.List;
removeByIds
(
ids
);
}
}
/**
* 路口区域id数据添加
* @return
*/
@Override
public
void
updateGreenAreaIdByCondition
()
{
//判断路口的areaId是否存在
List
<
CrossPoint
>
greenPoints
=
analysisProblemCrossDayMapper
.
findGreenPoint
();
if
(
greenPoints
.
size
()>
0
)
{
//获取区域id的坐标范围
List
<
CrossPoint
>
areaPont
=
analysisProblemCrossDayMapper
.
findAreaPoint
();
//循环判断是否存在区域内
for
(
CrossPoint
greenPoint:
greenPoints
){
int
i
=
0
;
for
(
CrossPoint
areaPoint:
areaPont
){
Geometry
geo
=
net
.
wanji
.
common
.
gts
.
GeomsConvertUtil
.
genGeometry
(
greenPoint
.
getPoint
());
Geometry
geo1
=
net
.
wanji
.
common
.
gts
.
GeomsConvertUtil
.
genGeometry
(
areaPoint
.
getPoint
());
if
(
geo
.
within
(
geo1
)){
//如果匹配则更新id
analysisProblemCrossDayMapper
.
updateGreenAreaIdByid
(
areaPoint
.
getId
(),
greenPoint
.
getId
());
i
=
1
;
}
}
if
(
i
==
0
){
//未匹配则把区域id设置为0
analysisProblemCrossDayMapper
.
updateGreenAreaIdByid
(
"0"
,
greenPoint
.
getId
());
}
}
}
}
}
signal-optimize-service/src/main/resources/mapper/judgeanalysis/AnalysisProblemCrossDayMapper.xml
View file @
4d4bb296
...
...
@@ -94,6 +94,12 @@
<result
column=
"insert_time"
property=
"insertTime"
/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap
id=
"CrossPointMap"
type=
"net.wanji.opt.entity.judgeanalysis.CrossPoint"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"point"
property=
"point"
/>
</resultMap>
<!-- 查询表t_analysis_problem_cross_day所有信息 -->
<select
id=
"findAllAnalysisProblemCrossDay"
resultMap=
"AnalysisProblemCrossDayMap"
>
SELECT
...
...
@@ -163,4 +169,36 @@
,#{insertTime}
)
</insert>
<!-- 查找未更新区域id的路口数据 -->
<select
id=
"findCrossPoint"
resultMap=
"CrossPointMap"
>
select a.id,SUBSTR(a.location , 7 , LENGTH(a.location) - 7) as point from t_base_cross_info a where a.area_id is null
</select>
<!-- 查找未更新区域id的干线数据 -->
<select
id=
"findGreenPoint"
resultMap=
"CrossPointMap"
>
select a.id,a.wkt as point from t_greenwave_info a where a.area_id is null
</select>
<!-- 获取区域坐标的范围 -->
<select
id=
"findAreaPoint"
resultMap=
"CrossPointMap"
>
select a.id , a.polylines as point from t_base_area_info a where a.type in (2,3) order by a.id desc
</select>
<!-- 根据主键id更新表t_base_cross_info的area_id信息 -->
<update
id=
"updateCrossAreaIdByid"
parameterType=
"String"
>
UPDATE t_base_cross_info
set area_id = #{areaId}
WHERE
id=#{id}
</update>
<!-- 根据主键id更新表t_base_cross_info的area_id信息 -->
<update
id=
"updateGreenAreaIdByid"
parameterType=
"String"
>
UPDATE t_greenwave_info
set area_id = #{areaId}
WHERE
id=#{id}
</update>
</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