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