From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 07 四月 2025 15:18:51 +0800 Subject: [PATCH] 整理版本 --- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java | 129 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 129 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java new file mode 100644 index 0000000..c0cb3fc --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java @@ -0,0 +1,129 @@ +package com.dy.pipIrrProject.network; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.dy.pipIrrGlobal.daoPr.PrNetworkCoordinatesMapper; +import com.dy.pipIrrGlobal.daoPr.PrWaterNetworkMapper; +import com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates; +import com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork; +import com.dy.pipIrrGlobal.voPr.VoNetwork; +import com.dy.pipIrrGlobal.voPr.VoNetworkCoordinates; +import com.dy.pipIrrProject.network.dto.Network; +import com.dy.pipIrrProject.result.ProjectResultCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * @author ZhuBaoMin + * @date 2024-08-27 17:08 + * @LastEditTime 2024-08-27 17:08 + * @Description + */ + +@Slf4j +@Service +@RequiredArgsConstructor +public class NetworkSv { + private final PrWaterNetworkMapper prWaterNetworkMapper; + private final PrNetworkCoordinatesMapper prNetworkCoordinatesMapper; + + /** + * 娣诲姞绠$綉 + * @param po + * @return + */ + public Long addNetwork(PrWaterNetwork po) { + prWaterNetworkMapper.insert(po); + return po.getId(); + } + + /** + * 娣诲姞绠$綉鍧愭爣 + * @param po + * @return + */ + public Long addNetworkCoordinate(PrNetworkCoordinates po) { + prNetworkCoordinatesMapper.insert(po); + return po.getId(); + }; + + /** + * 娣诲姞绠$綉 + * @param po + * @return + */ + public String addNetworks(Network po) { + String result = ""; + PrWaterNetwork prWaterNetwork = null; + Long networkId = null; + + prWaterNetworkMapper.clearNetworks(); + prNetworkCoordinatesMapper.clearCoordinates(); + + JSONArray networks = po.getData(); + for (int i = 0; i < networks.size(); i++) { + // 鍙栧嚭涓�绗旂粯鐢� + JSONObject polyline = networks.getJSONObject(i); + // 娣诲姞璇ョ瑪缁樼敾 + prWaterNetwork = new PrWaterNetwork(); + prWaterNetwork.setNetworkType(po.getType()); + networkId = addNetwork(prWaterNetwork); + + // 鍙栧嚭涓�绗旂粯鐢讳腑鐨勫潗鏍囩偣 + JSONArray coordinates = polyline.getJSONArray("coordinates"); + for (int j = 0; j < coordinates.size(); j++) { + JSONObject point = coordinates.getJSONObject(j); + + PrNetworkCoordinates prNetworkCoordinates = new PrNetworkCoordinates(); + prNetworkCoordinates.setNetworkId(networkId); + prNetworkCoordinates.setLat(point.getBigDecimal("lat")); + prNetworkCoordinates.setLng(point.getBigDecimal("lng")); + + Long coordinateId = Optional.ofNullable(addNetworkCoordinate(prNetworkCoordinates)).orElse(0L); + if (coordinateId.equals(0)) { + //return BaseResponseUtils.buildErrorMsg(ProjectResultCode.SAVA_NETWORK_ERROR.getMessage()); + result = ProjectResultCode.SAVA_NETWORK_ERROR.getMessage(); + } + } + } + return result; + } + + /** + * 鑾峰彇鍏ㄩ儴绠$綉 + * @return + */ + public List<VoNetwork> getNetworks() { + JSONArray array_result = new JSONArray(); + JSONArray array_networks = null; + + List<VoNetwork> list_networks = prWaterNetworkMapper.getAllNewworks(); + if(list_networks != null && list_networks.size() > 0) { + array_networks = (JSONArray) JSON.toJSON(list_networks); + for (int i = 0; i < array_networks.size(); i++) { + JSONObject job_network = array_networks.getJSONObject(i); + + List<VoNetworkCoordinates> list_networkCoordinates = prNetworkCoordinatesMapper.getCoordinatesByNetworkId(job_network.getLong("networkId")); + if(list_networkCoordinates == null) { + list_networkCoordinates = new ArrayList<>(); + } + + JSONObject job_points = new JSONObject(); + job_points.put("type", "Polyline"); + job_points.put("coordinates", (JSONArray) JSON.toJSON(list_networkCoordinates)); + job_network.put("data", job_points); + array_result.add(job_network); + } + return array_result.toList(VoNetwork.class); + + }else { + return new ArrayList<>(); + } + } +} -- Gitblit v1.8.0