| New file | 
 |  |  | 
 |  |  | 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<>(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | } |