电子看板-杆塔数据接口

This commit is contained in:
cwchen 2025-04-25 11:12:52 +08:00
parent 649f812dfa
commit 7e0ddef04d
4 changed files with 108 additions and 5 deletions

View File

@ -69,4 +69,13 @@ public interface DigitalSignageDao {
* @date 2025/4/25 9:11
*/
List<DigitalSignageVo.TowerInfoVo> getTowersInfo(QueryParamDto dto);
/**
* 查询交叉跨越信息
* @param dto
* @return List<TowerInfoVo>
* @author cwchen
* @date 2025/4/25 10:35
*/
List<DigitalSignageVo.SpanInfoVo> getSpanInfoVos(QueryParamDto dto);
}

View File

@ -1,6 +1,7 @@
package com.bonus.digitalSignage.backstage.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.Date;
@ -147,6 +148,7 @@ public class DigitalSignageVo {
@Data
public static class TowerInfoVo{
private Long id;
/**杆塔名称*/
private String towerName;
/**百度经度*/
@ -176,5 +178,41 @@ public class DigitalSignageVo {
private Date time7;
/**是否存在跨越 1.存在 0.不存在*/
private int existSpan;
/**杆塔完成进度 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成*/
private int towerProgress;
}
@Data
public static class SpanInfoVo{
private Long id;
private String spanTowerName;
private TowerInfoVo towerInfoVo;
private String lonAndLat;
/**
* 上层线路
*/
private String upperLine;
/**
* 下层线路
*/
private String lowerLine;
/**
* 交叉角度
*/
private String intersectionAngle;
/**
* 垂直距离m
*/
private String verticalDistance;
/**
* 安全裕度°
*/
private String safetyMargin;
}
}

View File

@ -96,10 +96,17 @@ public class DigitalSignageServiceImpl implements DigitalSignageService {
try {
// 查询索道运输信息
List<DigitalSignageVo.CablewaTransVo> cablewaTransVos = Optional.ofNullable(dao.getCablewaTrans(dto)).orElseGet(ArrayList::new);
// 查询交叉跨越信息
// 查询杆塔数据
List<DigitalSignageVo.TowerInfoVo> towerInfoVos = Optional.ofNullable(dao.getTowersInfo(dto)).orElseGet(ArrayList::new);
// 查询交叉跨越信息
List<DigitalSignageVo.SpanInfoVo> spanInfoVo = Optional.ofNullable(dao.getSpanInfoVos(dto)).orElseGet(ArrayList::new);
for (DigitalSignageVo.SpanInfoVo vo : spanInfoVo) {
Optional<DigitalSignageVo.TowerInfoVo> first = towerInfoVos.stream().filter(towerInfoVo -> towerInfoVo.getId().equals(vo.getId())).findFirst();
vo.setTowerInfoVo(first.get());
}
map.put("cablewaTransVos", cablewaTransVos);
map.put("towerInfoVos", towerInfoVos);
map.put("spanInfoVos", spanInfoVo);
} catch (Exception e) {
log.error(e.toString(),e);
}

View File

@ -99,14 +99,63 @@
<!--查询杆塔数据-->
<select id="getTowersInfo"
resultType="com.bonus.digitalSignage.backstage.entity.vo.DigitalSignageVo$TowerInfoVo">
SELECT tt.tower_name AS towerName,
SELECT tt.id,
tt.tower_name AS towerName,
tt.baidu_lon AS baiduLon,
tt.baidu_lat AS baiduLat
tt.baidu_lat AS baiduLat,
A.time1,
A.time2,
A.time3,
A.time4,
A.time5,
A.time6,
A.time7,
IF(B.tower_id IS NOT NULL OR B.tower_id IS NOT NULL, 1, 0) AS existSpan,
tt.tower_progress AS towerProgress
FROM tb_tower tt
LEFT JOIN (
SELECT ttp.tower_id
FROM tb_tower_progress ttp
SELECT tower_id,next_tower_id
FROM tb_three_span tts
WHERE tts.span_type = '1'
GROUP BY tower_id,next_tower_id
) B ON (tt.id = B.tower_id) OR (tt.id = B.next_tower_id)
LEFT JOIN (
SELECT
ttp.tower_id,
MAX(CASE WHEN progress_type = 1 THEN create_time END) AS time1,
MAX(CASE WHEN progress_type = 2 THEN create_time END) AS time2,
MAX(CASE WHEN progress_type = 3 THEN create_time END) AS time3,
MAX(CASE WHEN progress_type = 4 THEN create_time END) AS time4,
MAX(CASE WHEN progress_type = 5 THEN create_time END) AS time5,
MAX(CASE WHEN progress_type = 6 THEN create_time END) AS time6,
MAX(CASE WHEN progress_type = 7 THEN create_time END) AS time7
FROM
tb_tower_progress ttp
GROUP BY
ttp.tower_id
) A ON tt.id = A.tower_id
WHERE tt.pro_id = #{id}
ORDER BY tt.sort
</select>
<!--查询交叉跨越信息-->
<select id="getSpanInfoVos"
resultType="com.bonus.digitalSignage.backstage.entity.vo.DigitalSignageVo$SpanInfoVo">
SELECT CONCAT(tt.tower_name,'-',tt2.tower_name) AS spanTowerName,
tts.upper_line AS upperLine,
tts.lower_line AS lowerLine,
tts.intersection_angle AS intersectionAngle,
tts.vertical_distance AS verticalDistance,
tts.safety_margin AS safetyMargin,
A.lonAndLat AS lonAndLat,
tts.tower_id AS id
FROM tb_three_span tts
LEFT JOIN tb_tower tt ON tts.tower_id = tt.id
LEFT JOIN tb_tower tt2 ON tts.next_tower_id = tt2.id
LEFT JOIN (
SELECT three_span_id,GROUP_CONCAT(baidu_lon,'@',baidu_lat) AS lonAndLat
FROM tb_span_tower
GROUP BY three_span_id
) A ON tts.id = A.three_span_id
WHERE tts.pro_id = #{id} AND tts.span_type = '1'
</select>
</mapper>