diff --git a/src/main/java/com/bonus/digitalSignage/backstage/dao/DigitalSignageDao.java b/src/main/java/com/bonus/digitalSignage/backstage/dao/DigitalSignageDao.java index 88b270e..69f29b0 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/dao/DigitalSignageDao.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/dao/DigitalSignageDao.java @@ -88,4 +88,22 @@ public interface DigitalSignageDao { * @date 2025/5/20 10:08 */ List getTowersPosition(QueryParamDto dto); + + /** + * 查询索道口、中转点、索道终点数据 + * @param vo + * @return List + * @author cwchen + * @date 2025/5/20 16:08 + */ + List getCablewaTransPointVos(DigitalSignageVo.CablewaTransVo vo); + + /** + * 基础浇筑-ABCD腿完成情况 + * @param vo + * @return List + * @author cwchen + * @date 2025/5/20 16:46 + */ + List getTowerPourings(DigitalSignageVo.TowerInfoVo vo); } diff --git a/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/DigitalSignageVo.java b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/DigitalSignageVo.java index b0498f5..96642d8 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/DigitalSignageVo.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/DigitalSignageVo.java @@ -1,10 +1,10 @@ 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; +import java.util.List; /** * @className:DigitalSignageVo @@ -19,41 +19,50 @@ public class DigitalSignageVo { @Data public static class TowerProgressNumVo { /** - * 基础开挖 + * 协调完成 */ private int num1; /** - * 开挖完成 + * 基础开挖 */ private int num2; /** - * 浇筑完成 + * 开挖完成 */ private int num3; + /** - * 铁塔组立 + * 基础浇筑 */ private int num4; /** - * 组塔完成 + * 浇筑完成 */ private int num5; /** - * 架线完成 + * 铁塔组立 */ private int num6; /** - * 附件安装 + * 组塔完成 */ private int num7; /** - * 未开始 + * 架线完成 */ private int num8; /** - * 索道运输 + * 附件安装 */ private int num9; + /** + * 未开始 + */ + private int num10; + /** + * 索道运输 + */ + private int num11; } @Data @@ -116,6 +125,8 @@ public class DigitalSignageVo { @Data public static class CablewaTransVo { + + private Long id; /** * 索道所在杆塔位置 */ @@ -144,46 +155,123 @@ public class DigitalSignageVo { * 百度地图-纬度 */ private String baiduLat; + /** + * 索道宽度 + */ + private String cablewayWidth; + + private List cablewaTransPointVoList; + } + + /** + * 索道运输-索道口、中转口、索道终点 + * */ + @Data + public static class CablewaTransPointVo { + + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 排序 + */ + private int sort; + } @Data - public static class TowerInfoVo{ + public static class TowerInfoVo { private Long id; - /**杆塔名称*/ + /** + * 杆塔名称 + */ private String towerName; - /**百度经度*/ + /** + * 百度经度 + */ private String baiduLon; - /**百度纬度*/ + /** + * 百度纬度 + */ private String baiduLat; - /**基础开挖完成日期*/ + /** + * 协调完成-完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time1; - /**基础开挖完成日期*/ + + /** + * 基础开挖-完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time2; - /**基础浇筑完成日期*/ + + /** + * 基础开挖完成-完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time3; - /**铁塔组立完成日期*/ + /** + * 基础浇筑-完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time4; - /**铁塔组立完成日期*/ + /** + * 基础浇筑完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time5; - /**架线施工完成日期*/ + /** + * 铁塔组立完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time6; - /**附件安装日期完成日期*/ + /** + * 铁塔组立完成日期 + */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time7; - /**是否存在跨越 1.存在 0.不存在*/ + /** + * 架线施工完成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date time8; + /** + * 附件安装日期完成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date time9; + + /** + * 是否存在跨越 1.存在 0.不存在 + */ private int existSpan; - /**杆塔完成进度 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成*/ + /** + * 杆塔完成进度 1.协调完成 2.基础开挖 3.基础开挖完成 4.基础浇筑 5.基础浇筑完成 6.铁塔组立 7.铁塔组立完成 8.架线施工完成 9.附件安装完成 + */ private int towerProgress; + + /** + * 基础浇筑-ABCD腿 完成情况 + * */ + private List towerPouringVos; } @Data - public static class SpanInfoVo{ + public static class TowerPouringVo { + /**A腿 B腿 C腿 D腿*/ + private String leg; + /**完成情况 1.完成 0.未完成*/ + private String finishStatus; + } + + @Data + public static class SpanInfoVo { private Long id; diff --git a/src/main/java/com/bonus/digitalSignage/backstage/service/impl/DigitalSignageServiceImpl.java b/src/main/java/com/bonus/digitalSignage/backstage/service/impl/DigitalSignageServiceImpl.java index 8a6aaad..f58ab03 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/service/impl/DigitalSignageServiceImpl.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/service/impl/DigitalSignageServiceImpl.java @@ -8,6 +8,7 @@ import com.bonus.digitalSignage.backstage.entity.vo.TowersInfo; import com.bonus.digitalSignage.backstage.service.DigitalSignageService; import com.bonus.digitalSignage.utils.ServerResponse; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -73,7 +74,7 @@ public class DigitalSignageServiceImpl implements DigitalSignageService { vo = Optional.ofNullable(dao.getTowerProgressNum(dto)).orElseGet(DigitalSignageVo.TowerProgressNumVo::new); // 查询索道运输数量 int num = dao.getRopewayTransNum(dto); - vo.setNum9(num); + vo.setNum11(num); } catch (Exception e) { log.error(e.toString(),e); } @@ -97,8 +98,20 @@ public class DigitalSignageServiceImpl implements DigitalSignageService { try { // 查询索道运输信息 List cablewaTransVos = Optional.ofNullable(dao.getCablewaTrans(dto)).orElseGet(ArrayList::new); + if(CollectionUtils.isEmpty(cablewaTransVos)){ + for (DigitalSignageVo.CablewaTransVo vo : cablewaTransVos) { + List cablewaTransPointVos = Optional.ofNullable(dao.getCablewaTransPointVos(vo)).orElseGet(ArrayList::new); + vo.setCablewaTransPointVoList(cablewaTransPointVos); + } + } // 查询杆塔数据 List towerInfoVos = Optional.ofNullable(dao.getTowersInfo(dto)).orElseGet(ArrayList::new); + for (DigitalSignageVo.TowerInfoVo vo : towerInfoVos) { + if(vo.getTowerProgress() == 3){ + List towerPouringVos = Optional.ofNullable(dao.getTowerPourings(vo)).orElseGet(ArrayList::new); + vo.setTowerPouringVos(towerPouringVos); + } + } // 查询交叉跨越信息 List spanInfoVo = Optional.ofNullable(dao.getSpanInfoVos(dto)).orElseGet(ArrayList::new); for (DigitalSignageVo.SpanInfoVo vo : spanInfoVo) { diff --git a/src/main/resources/mappers/backstage/DigitalSignageMapper.xml b/src/main/resources/mappers/backstage/DigitalSignageMapper.xml index 0a9671c..f779b47 100644 --- a/src/main/resources/mappers/backstage/DigitalSignageMapper.xml +++ b/src/main/resources/mappers/backstage/DigitalSignageMapper.xml @@ -57,7 +57,9 @@ COUNT(IF(tower_progress = 5, 1, NULL)) AS num5, COUNT(IF(tower_progress = 6, 1, NULL)) AS num6, COUNT(IF(tower_progress = 7, 1, NULL)) AS num7, - COUNT(IF(tower_progress = 0, 1, NULL)) AS num8 + COUNT(IF(tower_progress = 8, 1, NULL)) AS num8, + COUNT(IF(tower_progress = 9, 1, NULL)) AS num9, + COUNT(IF(tower_progress = 0, 1, NULL)) AS num10 FROM tb_tower WHERE pro_id = #{id} AND is_actvice = '1' @@ -97,7 +99,9 @@ tct.max_slope AS maxSlope, tt.baidu_lon AS baiduLon, tt.baidu_lat AS baiduLat, - tt.tower_name AS towerName + tt.tower_name AS towerName, + tct.cableway_length AS cablewayWidth, + tct.id FROM tb_cablewa_trans tct LEFT JOIN tb_tower tt ON tct.tower_id = tt.id WHERE tct.pro_id = #{id} AND tct.is_active = '1' @@ -116,6 +120,8 @@ A.time5, A.time6, A.time7, + A.time8, + A.time9, 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 @@ -134,7 +140,9 @@ 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 + MAX(CASE WHEN progress_type = 7 THEN create_time END) AS time7, + MAX(CASE WHEN progress_type = 8 THEN create_time END) AS time8, + MAX(CASE WHEN progress_type = 9 THEN create_time END) AS time9 FROM tb_tower_progress ttp GROUP BY @@ -176,4 +184,21 @@ WHERE tp.id = #{id} AND tp.is_active = '1' ORDER BY tt.sort + + + +