| 
					
				 | 
			
			
				@@ -38,6 +38,8 @@ import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.validation.constraints.NotNull; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.InputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Comparator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,10 +183,13 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setRailwayName(baseRailwayManagement.getRailwayName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String mils = AppendUtils.stringAppend(o.getInstallMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setInstallMiles(mils); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                o.setInstallMileBD(new BigDecimal(o.getInstallMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String end = AppendUtils.stringAppend(o.getEndMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setEndMiles(end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                o.setEndMileBD(new BigDecimal(o.getEndMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String begin = AppendUtils.stringAppend(o.getBeginMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setBeginMiles(begin); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                o.setBeginMileBD(new BigDecimal(o.getBeginMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setLineDirStr(o.getLineDir() == 1 ? "上行" : "下行"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setMilesRange(begin + "-" + end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 o.setLongitudeAndLatitude(o.getInstallLongitude() + "," + o.getInstallLongitude()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -263,23 +268,32 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return error("设备动态管理表该相机编码已存在,不能重复添加"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getBeginMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控范围开始里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double begin = Double.parseDouble(baseCameraManagement.getBeginMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setBeginMile((int) (begin * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getBeginMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getBeginMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控范围开始里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal begin = baseCameraManagement.getBeginMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // BigDecimal begin = BigDecimal.parseDouble(baseCameraManagement.getBeginMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setBeginMile(begin.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getInstallMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控相机安装里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setInstallMile((int) (install * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getInstallMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控相机安装里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal install = baseCameraManagement.getInstallMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setInstallMile(install.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getEndMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控范围结束里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double end = Double.parseDouble(baseCameraManagement.getEndMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setEndMile((int) (end * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getInstallMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控范围结束里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal end = baseCameraManagement.getInstallMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // double end = Double.parseDouble(baseCameraManagement.getEndMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setEndMile(end.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (baseCameraManagement.getBeginMile() > baseCameraManagement.getEndMile()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return error("监控范围开始里程位置不能大于监控范围结束里程位置"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -323,23 +337,32 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!ObjectUtils.isEmpty(cameraManagement) && !cameraManagement.getId().equals(baseCameraManagement.getId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return error("相机编码已存在,不能进行修改操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getBeginMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控范围开始里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double begin = Double.parseDouble(baseCameraManagement.getBeginMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setBeginMile((int) (begin * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getBeginMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getBeginMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控范围开始里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal begin = baseCameraManagement.getBeginMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // BigDecimal begin = BigDecimal.parseDouble(baseCameraManagement.getBeginMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setBeginMile(begin.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getInstallMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控相机安装里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setInstallMile((int) (install * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getInstallMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控相机安装里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal install = baseCameraManagement.getInstallMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // double install = Double.parseDouble(baseCameraManagement.getInstallMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setInstallMile(install.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!baseCameraManagement.getEndMile().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return error("监控范围结束里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            double end = Double.parseDouble(baseCameraManagement.getEndMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setEndMile((int) (end * 1000)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMileBD())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!baseCameraManagement.getInstallMileBD().toString().matches(PATTERN)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return error("监控范围结束里程位置填写格式不正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal end = baseCameraManagement.getInstallMileBD().setScale(3, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // double end = Double.parseDouble(baseCameraManagement.getEndMile().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                baseCameraManagement.setEndMile(end.multiply(new BigDecimal("1000")).intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (baseCameraManagement.getBeginMile() > baseCameraManagement.getEndMile()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return error("监控范围开始里程位置不能大于监控范围结束里程位置"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -381,13 +404,13 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         baseCameraManagement.setBeginMiles(begin); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!StringUtils.isEmptySunhh(baseCameraManagement.getInstallMile())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setInstallMile(baseCameraManagement.getInstallMile()/1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseCameraManagement.setInstallMileBD(new BigDecimal(baseCameraManagement.getInstallMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!StringUtils.isEmptySunhh(baseCameraManagement.getBeginMile())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setBeginMile(baseCameraManagement.getBeginMile()/1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseCameraManagement.setBeginMileBD(new BigDecimal(baseCameraManagement.getBeginMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!StringUtils.isEmptySunhh(baseCameraManagement.getEndMile())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseCameraManagement.setEndMile(baseCameraManagement.getEndMile()/1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseCameraManagement.setEndMileBD(new BigDecimal(baseCameraManagement.getEndMile()).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         baseCameraManagement.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         baseCameraManagement.setMilesRange(begin + "-" + end); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -397,6 +420,7 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * ***********************   弃用   *********************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param cameraCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -530,7 +554,6 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation("视频邀约") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/api/invite/{cameraCode}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = "相机台账管理", businessType = BusinessType.OTHER) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -543,7 +566,7 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return new AjaxResult(200, "ok", CameraUtil.invite(cameraCode, one.getChannel())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation("查询录像") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/api/records/{cameraCode}/{flay}") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -564,7 +587,7 @@ public class BaseCameraManagementController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = "相机台账管理", businessType = BusinessType.OTHER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult apiRecordsList(@RequestBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                      @NotNull(message = "相机编码不能为空") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                             List<String> cameraCodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     List<String> cameraCodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (String cameraCode : cameraCodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>(); 
			 |