| 
					
				 | 
			
			
				@@ -1,13 +1,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.its.bis.service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.its.app.utils.Elapsed; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.its.bis.api.dto.AgipObeLoc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.its.bis.config.ServerConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.its.bis.config.ThreadPoolInitializer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.its.bis.dto.Location; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.its.bis.dto.NearNodeDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.its.bis.dto.TbLinkDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.its.bis.dto.TbNodeDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.its.bis.process.DbmsDataProcess; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.RequiredArgsConstructor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,7 +14,6 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.PostConstruct; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Slf4j 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -87,34 +82,34 @@ public class BisAgipService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public double getDistance(double lat1, double lon1, double lat2, double lon2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double EARTH_RADIUS = 6371.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double dLat = Math.toRadians(lat2 - lat1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double dLon = Math.toRadians(lon2 - lon1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    public double getDistance(double lat1, double lon1, double lat2, double lon2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double EARTH_RADIUS = 6371.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double dLat = Math.toRadians(lat2 - lat1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double dLon = Math.toRadians(lon2 - lon1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double a = Math.sin(dLat/2)* Math.sin(dLat/2)+ Math.cos(Math.toRadians(lat1))* Math.cos(Math.toRadians(lat2))* Math.sin(dLon/2)* Math.sin(dLon/2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        return (EARTH_RADIUS * c * 1000);    // Distance in m 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double a = Math.sin(dLat/2)* Math.sin(dLat/2)+ Math.cos(Math.toRadians(lat1))* Math.cos(Math.toRadians(lat2))* Math.sin(dLon/2)* Math.sin(dLon/2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return (EARTH_RADIUS * c * 1000);    // Distance in m 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public NearNodeDto getNearNode(Location loc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Elapsed elapsed = new Elapsed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.info("getNearNode: {}", loc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //Location(mDistance=0.0, mInitialBearing=0.0, mFinalBearing=0.0, mLatitude=128.73881251, mLongitude=36.56128759) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double maxDistance = 40; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        NearNodeDto node = NearNodeDto.builder().nodeId(0L).distance(maxDistance).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (Map.Entry<Long, TbNodeDto> e : this.repoService.getEntrySetNode()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TbNodeDto obj = e.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double fDistance = (float) getDistance(loc.getMLatitude(), loc.getMLongitude(), obj.getXCrdn(), obj.getYCrdn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (fDistance < maxDistance) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                maxDistance = fDistance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                node.setNodeId(obj.getNodeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                node.setDistance(fDistance); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.info("getNearNode: {} ms. {} m, {}", elapsed.milliSeconds(), maxDistance, node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    public NearNodeDto getNearNode(Location loc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        Elapsed elapsed = new Elapsed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        log.info("getNearNode: {}", loc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        //Location(mDistance=0.0, mInitialBearing=0.0, mFinalBearing=0.0, mLatitude=128.73881251, mLongitude=36.56128759) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        double maxDistance = 100; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        NearNodeDto node = NearNodeDto.builder().nodeId(0L).distance(maxDistance).build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        for (Map.Entry<Long, TbNodeDto> e : this.repoService.getEntrySetNode()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            TbNodeDto obj = e.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            double fDistance = (float) getDistance(loc.getMLatitude(), loc.getMLongitude(), obj.getXCrdn(), obj.getYCrdn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (fDistance < maxDistance) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                maxDistance = fDistance; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                node.setNodeId(obj.getNodeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                node.setDistance(fDistance); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        log.info("getNearNode: {} ms. {} m, {}", elapsed.milliSeconds(), maxDistance, node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        return node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TbLinkDto getSectInfo(Long fNodeId, Long tNodeId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return this.repoService.getSectMap(fNodeId, tNodeId); 
			 |