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