diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..3c8655b --- /dev/null +++ b/.drone.yml @@ -0,0 +1,46 @@ +kind: pipeline +type: docker +name: autoDispatchDeploy +steps: + + # 项目打包并发布 + - name: autoDispatchBuild + pull: if-not-exists + image: mcr.microsoft.com/dotnet/sdk:8.0 + commands: + - cd AutoDispathingWork + - dotnet publish -c Release -o ../release + - name: push + image: plugins/docker + pull: if-not-exists + depends_on: [ autoDispatchBuild ] + settings: + dockerfile: ./AutoDispathingWork/Dockerfile + username: + from_secret: local_registry_username + password: + from_secret: local_registry_password + tags: + - latest + registry: 192.168.100.10:5000 + insecure: true + repo: 192.168.100.10:5000/autodispatch/web + - name: deploy + image: appleboy/drone-ssh + depends_on: [ ZhiLiaoWebApiBuild,ZhiLiaoWebApiPush ] + settings: + host: + from_secret: server_host + user: + from_secret: server_username + password: + from_secret: server_password + port: 22 + command_timeout: 2m + script: + - docker stop autodispatch + - docker rm autodispatch + - docker rmi 121.4.75.240:5000/autodispatch/web + - docker pull 121.4.75.240:5000/autodispatch/web + - docker run -d --name autodispatch -p 88:80 121.4.75.240:5000/autodispatch/web + diff --git a/AutoDispatching.sln b/AutoDispatching.sln index 86d75cf..cd1a863 100644 --- a/AutoDispatching.sln +++ b/AutoDispatching.sln @@ -4,6 +4,17 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoDispatching", "AutoDisp EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoDispathingWork", "AutoDispathingWork\AutoDispathingWork.csproj", "{39E15372-E957-4785-ABE7-D160ECC6440C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject1", "TestProject1\TestProject1.csproj", "{0826BC27-E113-40D1-8074-5CEC89B1C934}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{4C15AA6B-6940-4D5F-90F8-56FE0D3886AC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{E543FEBD-A632-490C-96B5-78E91BF2BC82}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "devops", "devops", "{E0EBE80F-EB42-4C22-995B-33A082D963CF}" + ProjectSection(SolutionItems) = preProject + .drone.yml = .drone.yml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -18,5 +29,14 @@ Global {39E15372-E957-4785-ABE7-D160ECC6440C}.Debug|Any CPU.Build.0 = Debug|Any CPU {39E15372-E957-4785-ABE7-D160ECC6440C}.Release|Any CPU.ActiveCfg = Release|Any CPU {39E15372-E957-4785-ABE7-D160ECC6440C}.Release|Any CPU.Build.0 = Release|Any CPU + {0826BC27-E113-40D1-8074-5CEC89B1C934}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0826BC27-E113-40D1-8074-5CEC89B1C934}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0826BC27-E113-40D1-8074-5CEC89B1C934}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0826BC27-E113-40D1-8074-5CEC89B1C934}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {2C965E22-EBA5-4F50-A979-C11AD28B61B2} = {4C15AA6B-6940-4D5F-90F8-56FE0D3886AC} + {39E15372-E957-4785-ABE7-D160ECC6440C} = {4C15AA6B-6940-4D5F-90F8-56FE0D3886AC} + {0826BC27-E113-40D1-8074-5CEC89B1C934} = {E543FEBD-A632-490C-96B5-78E91BF2BC82} EndGlobalSection EndGlobal diff --git a/AutoDispathingWork/CloseWorker.cs b/AutoDispathingWork/CloseWorker.cs index 854fcc1..2f19287 100644 --- a/AutoDispathingWork/CloseWorker.cs +++ b/AutoDispathingWork/CloseWorker.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Options; +using WorkerService1.Domains; using WorkerService1.Dto.Configuration; using WorkerService1.Services; @@ -22,6 +23,9 @@ public class CloseWorker : BackgroundService { while (!stoppingToken.IsCancellationRequested) { + using var scope = _serviceProvider.CreateScope(); + var settingServices = scope.ServiceProvider.GetRequiredService(); + var options = settingServices.GetClientOptions(); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); @@ -29,17 +33,16 @@ public class CloseWorker : BackgroundService try { - await Handle(); + if (options.CloseFileRunning) + await Handle(); } catch (Exception e) { - _logger.LogError("执行控制器发生错误,错误信息:ex{}", e.StackTrace); + $"执行控制器发生错误,错误信息:ex{e.StackTrace}".Error(); } finally { - using var scope = _serviceProvider.CreateScope(); - var options = scope.ServiceProvider.GetRequiredService>(); - await Task.Delay(options.CurrentValue.Delay, stoppingToken); + await Task.Delay(options.Delay, stoppingToken); } } } @@ -57,6 +60,16 @@ public class CloseWorker : BackgroundService { //2.结案操作 var result = await _spiderServices.CloseFile(item.caseNumber, ""); + if (result.IsSuccess) + { + var message = $"结案成功,任务编号:{item.caseNumber},任务地址:{item.address},任务类型:{item.typeCode}"; + message.Info(); + } + else + { + var message = $"结案失败,错误信息:{result.Message}"; + message.Error(); + } } } } diff --git a/AutoDispathingWork/Controllers/UserController.cs b/AutoDispathingWork/Controllers/UserController.cs index a8152ea..f68bc90 100644 --- a/AutoDispathingWork/Controllers/UserController.cs +++ b/AutoDispathingWork/Controllers/UserController.cs @@ -3,6 +3,7 @@ using LiteDB; using Microsoft.AspNetCore.Mvc; using WorkerService1.Domains; using WorkerService1.Dto; +using WorkerService1.Dto.Configuration; using WorkerService1.Dto.QueryRequest; using WorkerService1.Dto.QueryResponse; using WorkerService1.Services; @@ -34,18 +35,16 @@ public class UserController : ControllerBase var polygon = db.GetCollection(); var result = polygon.FindAll().ToList(); var cameras = await spiderServices.GetCameras(); - + var cameraLocation = cameras.Result?.Records.Select(x => (x.name, Location: new Points(x.lon, x.lat))) + .ToList(); foreach (var item in result) { - // item.RangeCameras ??= new List(); - foreach (var x in cameras.Result?.Records.Select(x => - { - var tempGps = GpsUtil.Bd09ToGcj02(x.lon, x.lat); - return (x.name, new Points(tempGps[0], tempGps[1])); - }).ToList()!.Where(x => x.Item2.IsPointInsidePolygon(item))!) + if (cameraLocation == null) continue; + foreach (var (camera, location) in cameraLocation) { + if (!location.IsPointInsidePolygon(item)) continue; item.RangeCameras ??= new List(); - item.RangeCameras?.Add(x.name); + item.RangeCameras?.Add(camera); } } @@ -124,11 +123,12 @@ public class UserController : ControllerBase [HttpPut("/api/Polygon/{polygonId}/UserId/{userId}")] - public SpiderResponse BindPolygonUserId([FromRoute] Guid polygonId, [FromRoute] string userId, - [FromServices] LiteDatabase db) + public async Task> BindPolygonUserId([FromRoute] Guid polygonId, [FromRoute] string userId, + [FromServices] LiteDatabase db, [FromServices] SpiderServices spiderServices) { var polygon = db.GetCollection(); var result = polygon.FindOne(x => x.PolygonId == polygonId); + if (result == null) { return new SpiderResponse() @@ -137,7 +137,20 @@ public class UserController : ControllerBase }; } + var user = await spiderServices.GetUsers(new UserQuery() + { + Condition = + { + Id = userId + } + }); result.UserId = userId; + var currentUser = user.Result?.Records.FirstOrDefault(); + if (currentUser != null) + { + result.UserName = currentUser.UserRealName; + } + polygon.Update(result); return new SpiderResponse() { @@ -195,4 +208,60 @@ public class UserController : ControllerBase { return await spiderServices.GetCameras(); } + + [HttpGet("/api/Setting")] + public SpiderResponse GetClientOptions([FromServices] SettingServices settingServices) + { + return new SpiderResponse() + { + IsSuccess = true, Code = SpiderResponseCode.Success, Message = "获取配置成功", + Result = settingServices.GetClientOptions() + }; + } + + [HttpPost("/api/Setting")] + public SpiderResponse SettingClientOptions([FromBody] ClientOptionsReq options, + [FromServices] SettingServices settingServices) + { + var setting = settingServices.GetClientOptions(); + setting.Delay = options.Delay; + setting.DispatchingRunning = options.DispatchingRunning; + setting.CloseFileRunning = options.CloseFileRunning; + setting.ApiGateway = options.ApiGateway; + if (!string.IsNullOrWhiteSpace(options.UserName)) + setting.UserName = options.UserName; + + if (!string.IsNullOrWhiteSpace(options.Password)) + setting.Password = options.Password; + + var resp = settingServices.SettingClientOptions(setting); + return new SpiderResponse() + { + IsSuccess = true, Code = SpiderResponseCode.Success, Message = "获取配置成功", + Result = settingServices.SettingClientOptions(resp) + }; + } + + [HttpGet("/api/Log")] + public SpiderResponse> GetLog([FromQuery] PageRequest request, [FromServices] LiteDatabase db) + { + var collection = db.GetCollection(); + var logs = collection.Query() + .OrderByDescending(x => x.CreateTime) + .Skip((request.Page - 1) * request.PageSize) + .Limit(request.PageSize) + .ToList(); + var total = collection.Count(); + return new SpiderResponse>() + { + IsSuccess = true, Code = SpiderResponseCode.Success, Message = "获取日志成功", + Result = new PageResponse() + { + Data = logs.ToList(), + Page = request.Page, + PageSize = request.PageSize, + Total = total + } + }; + } } \ No newline at end of file diff --git a/AutoDispathingWork/Dispathing-log.db b/AutoDispathingWork/Dispathing-log.db new file mode 100644 index 0000000..ade5a4e Binary files /dev/null and b/AutoDispathingWork/Dispathing-log.db differ diff --git a/AutoDispathingWork/Dispathing.db b/AutoDispathingWork/Dispathing.db new file mode 100644 index 0000000..7d7c9ab Binary files /dev/null and b/AutoDispathingWork/Dispathing.db differ diff --git a/AutoDispathingWork/Dockerfile b/AutoDispathingWork/Dockerfile index 62f17b6..cb29ecc 100644 --- a/AutoDispathingWork/Dockerfile +++ b/AutoDispathingWork/Dockerfile @@ -1,18 +1,7 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base + +FROM 192.168.100.10:5000/dotnet/aspnet:8.0 AS base WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /src -COPY ["WorkerService1/WorkerService1.csproj", "WorkerService1/"] -RUN dotnet restore "WorkerService1/WorkerService1.csproj" -COPY . . -WORKDIR "/src/WorkerService1" -RUN dotnet build "WorkerService1.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "WorkerService1.csproj" -c Release -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "WorkerService1.dll"] +EXPOSE 80 +EXPOSE 443 +COPY ./release . +ENTRYPOINT ["dotnet", "AutoDispathingWork.dll"] \ No newline at end of file diff --git a/AutoDispathingWork/Domains/LogInfo.cs b/AutoDispathingWork/Domains/LogInfo.cs new file mode 100644 index 0000000..1ded581 --- /dev/null +++ b/AutoDispathingWork/Domains/LogInfo.cs @@ -0,0 +1,70 @@ +using System.Runtime.CompilerServices; +using AutoDispathingWork.Utils; +using LiteDB; + +namespace WorkerService1.Domains; + +public class LogInfo +{ + public LogInfo() + { + } + + public LogInfo(string level, string message, [CallerMemberName] string from = "") + { + Id = Guid.NewGuid(); + CreateTime = DateTime.Now; + Message = message; + Level = level; + From = from; + } + + public Guid Id { get; set; } + public string Message { get; set; } + public string From { get; set; } + public string Level { get; set; } + public DateTime CreateTime { get; set; } +} + +public static class LogInfoExtensions +{ + public static LogInfo Info(this string message, [CallerMemberName] string from = "") + { + var logger = StaticServiceProvider.GetLogger(from); + logger.LogInformation(message); + var db = StaticServiceProvider.GetLogDb(); + var log = new LogInfo("Info", message, from); + db.Insert(log); + return log; + } + + public static LogInfo Error(this string message, [CallerMemberName] string from = "") + { + var logger = StaticServiceProvider.GetLogger(from); + logger.LogError(message); + var db = StaticServiceProvider.GetLogDb(); + var log = new LogInfo("Error", message, from); + db.Insert(log); + return log; + } + + public static LogInfo Warning(this string message, [CallerMemberName] string from = "") + { + var logger = StaticServiceProvider.GetLogger(from); + logger.LogWarning(message); + var db = StaticServiceProvider.GetLogDb(); + var log = new LogInfo("Warning", message, from); + db.Insert(log); + return log; + } + + public static LogInfo Debug(this string message, [CallerMemberName] string from = "") + { + var logger = StaticServiceProvider.GetLogger(from); + logger.LogDebug(message); + var db = StaticServiceProvider.GetLogDb(); + var log = new LogInfo("Debug", message, from); + db.Insert(log); + return log; + } +} \ No newline at end of file diff --git a/AutoDispathingWork/Domains/Polygon.cs b/AutoDispathingWork/Domains/Polygon.cs index ceac86e..153d92a 100644 --- a/AutoDispathingWork/Domains/Polygon.cs +++ b/AutoDispathingWork/Domains/Polygon.cs @@ -5,6 +5,7 @@ public class Polygon public Guid? PolygonId { get; set; } public string Name { get; set; } public string? UserId { get; set; } + public string? UserName { get; set; } public List>? Points { get; set; } public List? RangeCameras { get; set; } = new List(); @@ -21,3 +22,16 @@ public struct Points public double Y { get; set; } } +public struct CameraLocation +{ + public CameraLocation(string name, double x, double y) + { + Name = name; + X = x; + Y = y; + } + public string Name { get; set; } + public double X { get; set; } + public double Y { get; set; } +} + diff --git a/AutoDispathingWork/Dto/Configuration/ClientOptions.cs b/AutoDispathingWork/Dto/Configuration/ClientOptions.cs index 32edbf9..5be1b2c 100644 --- a/AutoDispathingWork/Dto/Configuration/ClientOptions.cs +++ b/AutoDispathingWork/Dto/Configuration/ClientOptions.cs @@ -7,8 +7,11 @@ public class ClientOptions public string ApiGateway { get; set; } = "http://121.4.75.240/"; [JsonPropertyName("username")] public string UserName { get; set; } = "ganquanjiedao"; + [JsonPropertyName("password")] public string Password { get; set; } = "12345678a"; public int Delay { get; set; } = 1000; + public bool DispatchingRunning { get; set; } = false; + public bool CloseFileRunning { get; set; } = false; public string LoginApi { get; set; } = "api/auth/v5/users/login"; public string GetTaskApi { get; set; } = "api/megcity/v1/events/queryByWaterFall"; diff --git a/AutoDispathingWork/Dto/Configuration/ClientOptionsReq.cs b/AutoDispathingWork/Dto/Configuration/ClientOptionsReq.cs new file mode 100644 index 0000000..2439a18 --- /dev/null +++ b/AutoDispathingWork/Dto/Configuration/ClientOptionsReq.cs @@ -0,0 +1,11 @@ +namespace WorkerService1.Dto.Configuration; + +public class ClientOptionsReq +{ + public string ApiGateway { get; set; } = "http://121.4.75.240/"; + public string UserName { get; set; } = "ganquanjiedao"; + public string Password { get; set; } = "12345678a"; + public int Delay { get; set; } + public bool DispatchingRunning { get; set; } = false; + public bool CloseFileRunning { get; set; } = false; +} \ No newline at end of file diff --git a/AutoDispathingWork/Dto/PageRequest.cs b/AutoDispathingWork/Dto/PageRequest.cs index efecf54..39db97f 100644 --- a/AutoDispathingWork/Dto/PageRequest.cs +++ b/AutoDispathingWork/Dto/PageRequest.cs @@ -2,4 +2,7 @@ public class PageRequest { + public int Page { get; set; } + public int PageSize { get; set; } + } \ No newline at end of file diff --git a/AutoDispathingWork/Dto/QueryRequest/DispatchReq.cs b/AutoDispathingWork/Dto/QueryRequest/DispatchReq.cs index f8b7fc5..d4421d9 100644 --- a/AutoDispathingWork/Dto/QueryRequest/DispatchReq.cs +++ b/AutoDispathingWork/Dto/QueryRequest/DispatchReq.cs @@ -10,7 +10,7 @@ public class DispatchReq [JsonPropertyName("target")] public int Target { get; set; } = 2; [JsonPropertyName("handlerId")] - public string HandlerId { get; set; } = "66fa9261-16f6-49aa-a391-5848f40301e0"; + public string? HandlerId { get; set; } = "66fa9261-16f6-49aa-a391-5848f40301e0"; [JsonPropertyName("typeCode")] public string TypeCode { get; set; } = "A2-01-10"; } \ No newline at end of file diff --git a/AutoDispathingWork/Dto/QueryRequest/UserQuery.cs b/AutoDispathingWork/Dto/QueryRequest/UserQuery.cs index 8622290..054ee07 100644 --- a/AutoDispathingWork/Dto/QueryRequest/UserQuery.cs +++ b/AutoDispathingWork/Dto/QueryRequest/UserQuery.cs @@ -20,5 +20,7 @@ public class Condition { [JsonPropertyName("roleIds")] public string[] RoleIds { get; set; } = new string[] { "a2e267c0-d88d-4ecb-a4b5-d904e85dfbb6" }; + [JsonPropertyName("id")] + public string? Id { get; set; } } diff --git a/AutoDispathingWork/Dto/QueryResponse/CameraItem.cs b/AutoDispathingWork/Dto/QueryResponse/CameraItem.cs new file mode 100644 index 0000000..9c68084 --- /dev/null +++ b/AutoDispathingWork/Dto/QueryResponse/CameraItem.cs @@ -0,0 +1,130 @@ +namespace WorkerService1.Dto.QueryResponse; + +public class CameraItem +{ + public CameraItem(bool alarmShortVideo, string bodyAnalyze, bool closed, string deptId, string deptName, + string faceAnalyze, string gaPlatformDeviceId, string gaPlatformId, string gbPlatformDeviceId, string gbPlatformId, + string id, List labelCodes, List labels, double lat, string location, double lon, bool lowQuality, + string managementId, string managementName, int manufacturer, int monitoringType, string motorVehicleAnalyze, + string name, string nonMotorVehicleAnalyze, string numeration, bool optPermissions, List placeIds, + bool policeNet, bool pulled, int rainbowStatus, string roi, List rois, string sncode, int status, + string systemType, int type, bool vlowQuality) + { + this.alarmShortVideo = alarmShortVideo; + this.bodyAnalyze = bodyAnalyze; + this.closed = closed; + this.deptId = deptId; + this.deptName = deptName; + this.faceAnalyze = faceAnalyze; + this.gaPlatformDeviceId = gaPlatformDeviceId; + this.gaPlatformId = gaPlatformId; + this.gbPlatformDeviceId = gbPlatformDeviceId; + this.gbPlatformId = gbPlatformId; + this.id = id; + this.labelCodes = labelCodes; + this.labels = labels; + this.lat = lat; + this.location = location; + this.lon = lon; + this.lowQuality = lowQuality; + this.managementId = managementId; + this.managementName = managementName; + this.manufacturer = manufacturer; + this.monitoringType = monitoringType; + this.motorVehicleAnalyze = motorVehicleAnalyze; + this.name = name; + this.nonMotorVehicleAnalyze = nonMotorVehicleAnalyze; + this.numeration = numeration; + this.optPermissions = optPermissions; + this.placeIds = placeIds; + this.policeNet = policeNet; + this.pulled = pulled; + this.rainbowStatus = rainbowStatus; + this.roi = roi; + this.rois = rois; + this.sncode = sncode; + this.status = status; + this.systemType = systemType; + this.type = type; + this.vlowQuality = vlowQuality; + } + + public bool alarmShortVideo { get; set; } + public string bodyAnalyze { get; set; } + public bool closed { get; set; } + public string deptId { get; set; } + public string deptName { get; set; } + public string faceAnalyze { get; set; } + public string gaPlatformDeviceId { get; set; } + public string gaPlatformId { get; set; } + public string gbPlatformDeviceId { get; set; } + public string gbPlatformId { get; set; } + public string id { get; set; } + public List labelCodes { get; set; } + public List labels { get; set; } + public double lat { get; set; } + public string location { get; set; } + public double lon { get; set; } + public bool lowQuality { get; set; } + public string managementId { get; set; } + public string managementName { get; set; } + public int manufacturer { get; set; } + public int monitoringType { get; set; } + public string motorVehicleAnalyze { get; set; } + public string name { get; set; } + public string nonMotorVehicleAnalyze { get; set; } + public string numeration { get; set; } + public bool optPermissions { get; set; } + public List placeIds { get; set; } + public bool policeNet { get; set; } + public bool pulled { get; set; } + public int rainbowStatus { get; set; } + public string roi { get; set; } + public List rois { get; set; } + public string sncode { get; set; } + public int status { get; set; } + public string systemType { get; set; } + public int type { get; set; } + public bool vlowQuality { get; set; } + + public void Deconstruct(out bool alarmShortVideo, out string bodyAnalyze, out bool closed, out string deptId, out string deptName, out string faceAnalyze, out string gaPlatformDeviceId, out string gaPlatformId, out string gbPlatformDeviceId, out string gbPlatformId, out string id, out List labelCodes, out List labels, out double lat, out string location, out double lon, out bool lowQuality, out string managementId, out string managementName, out int manufacturer, out int monitoringType, out string motorVehicleAnalyze, out string name, out string nonMotorVehicleAnalyze, out string numeration, out bool optPermissions, out List placeIds, out bool policeNet, out bool pulled, out int rainbowStatus, out string roi, out List rois, out string sncode, out int status, out string systemType, out int type, out bool vlowQuality) + { + alarmShortVideo = this.alarmShortVideo; + bodyAnalyze = this.bodyAnalyze; + closed = this.closed; + deptId = this.deptId; + deptName = this.deptName; + faceAnalyze = this.faceAnalyze; + gaPlatformDeviceId = this.gaPlatformDeviceId; + gaPlatformId = this.gaPlatformId; + gbPlatformDeviceId = this.gbPlatformDeviceId; + gbPlatformId = this.gbPlatformId; + id = this.id; + labelCodes = this.labelCodes; + labels = this.labels; + lat = this.lat; + location = this.location; + lon = this.lon; + lowQuality = this.lowQuality; + managementId = this.managementId; + managementName = this.managementName; + manufacturer = this.manufacturer; + monitoringType = this.monitoringType; + motorVehicleAnalyze = this.motorVehicleAnalyze; + name = this.name; + nonMotorVehicleAnalyze = this.nonMotorVehicleAnalyze; + numeration = this.numeration; + optPermissions = this.optPermissions; + placeIds = this.placeIds; + policeNet = this.policeNet; + pulled = this.pulled; + rainbowStatus = this.rainbowStatus; + roi = this.roi; + rois = this.rois; + sncode = this.sncode; + status = this.status; + systemType = this.systemType; + type = this.type; + vlowQuality = this.vlowQuality; + } +} \ No newline at end of file diff --git a/AutoDispathingWork/Dto/QueryResponse/CameraResponse.cs b/AutoDispathingWork/Dto/QueryResponse/CameraResponse.cs index c78952f..e6fc1d9 100644 --- a/AutoDispathingWork/Dto/QueryResponse/CameraResponse.cs +++ b/AutoDispathingWork/Dto/QueryResponse/CameraResponse.cs @@ -43,11 +43,4 @@ public class CameraResponse: KSResponse> // "systemType": "rainbow-device", // "type": 1, // "vlowQuality": false -// } -public record CameraItem(bool alarmShortVideo, string bodyAnalyze, bool closed, string deptId, string deptName, - string faceAnalyze, string gaPlatformDeviceId, string gaPlatformId, string gbPlatformDeviceId, string gbPlatformId, - string id, List labelCodes, List labels, double lat, string location, double lon, bool lowQuality, - string managementId, string managementName, int manufacturer, int monitoringType, string motorVehicleAnalyze, - string name, string nonMotorVehicleAnalyze, string numeration, bool optPermissions, List placeIds, - bool policeNet, bool pulled, int rainbowStatus, string roi, List rois, string sncode, int status, - string systemType, int type, bool vlowQuality); \ No newline at end of file +// } \ No newline at end of file diff --git a/AutoDispathingWork/Dto/QueryResponse/QueryResp.cs b/AutoDispathingWork/Dto/QueryResponse/QueryResp.cs index 5b4ec9a..ecf1f63 100644 --- a/AutoDispathingWork/Dto/QueryResponse/QueryResp.cs +++ b/AutoDispathingWork/Dto/QueryResponse/QueryResp.cs @@ -1,4020 +1,5 @@ namespace WorkerService1.Dto.QueryResponse; -// { -// "code": 0, -// "msg": "SUCCESS", -// "data": { -// "pageNo": 1, -// "pageSize": 50, -// "totalPage": 1, -// "totalRecords": 47, -// "showPage": 1, -// "showRecords": 47, -// "records": [ -// { -// "caseNumber": "2311101000002", -// "typeCode": "A2-05-06", -// "acceptTypeCode": "A2-05-06", -// "createTime": 1699594918000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.19296875, -// "y": 0.625 -// }, -// { -// "x": 0.16796875, -// "y": 0.6888888888888889 -// }, -// { -// "x": 0.1078125, -// "y": 0.8763888888888889 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.011505648493766785, -// "y": 0.6380790286593967 -// }, -// { -// "x": 0.8449338912963867, -// "y": 0.6380790286593967 -// }, -// { -// "x": 0.8449338912963867, -// "y": 0.8220611572265625 -// }, -// { -// "x": 0.011505648493766785, -// "y": 0.8220611572265625 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cfda981690d95&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---23-_fdc86a561ec0_meta", -// "fileUri": "weed://23,fdc86a561ec0_meta", -// "startTime": 1699594618000, -// "endTime": 1699594918000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311101000001", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1699585949000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.498850679397583, -// "y": 0.46954485575358074 -// }, -// { -// "x": 0.5460625171661377, -// "y": 0.46954485575358074 -// }, -// { -// "x": 0.5460625171661377, -// "y": 0.5247744242350261 -// }, -// { -// "x": 0.498850679397583, -// "y": 0.5247744242350261 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cfc8b45e8fdb6&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_fca8f9d19784_meta", -// "fileUri": "weed://21,fca8f9d19784_meta", -// "startTime": 1699585649000, -// "endTime": 1699585949000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311091000005", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699515350000, -// "address": "合阳小区150弄大门口", -// "roi": { -// "point_list": [ -// { -// "x": 0.17265625, -// "y": 0.49583333333333335 -// }, -// { -// "x": 0.146875, -// "y": 0.9972222222222222 -// }, -// { -// "x": 0.915625, -// "y": 0.9986111111111111 -// }, -// { -// "x": 0.91484375, -// "y": 0.7013888888888888 -// }, -// { -// "x": 0.7703125, -// "y": 0.5083333333333333 -// }, -// { -// "x": 0.65625, -// "y": 0.475 -// } -// ], -// "id": "52" -// }, -// "causeArea": [ -// { -// "x": 0.10295295715332031, -// "y": 0.5671126047770182 -// }, -// { -// "x": 0.6314330101013184, -// "y": 0.5671126047770182 -// }, -// { -// "x": 0.6314330101013184, -// "y": 1 -// }, -// { -// "x": 0.10295295715332031, -// "y": 1 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cf63aaf148dd3&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_f6592b474ce1_meta", -// "fileUri": "weed://21,f6592b474ce1_meta", -// "startTime": 1699515050000, -// "endTime": 1699515350000 -// }, -// "deviceId": "14324898752889856", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311091000004", -// "typeCode": "A2-05-06", -// "acceptTypeCode": "A2-05-06", -// "createTime": 1699512759000, -// "address": "宜川路351弄66号东", -// "roi": { -// "point_list": [ -// { -// "x": 0.6, -// "y": 0.6013888888888889 -// }, -// { -// "x": 0.446875, -// "y": 0.6 -// }, -// { -// "x": 0.44296875, -// "y": 0.6875 -// }, -// { -// "x": 0.37578125, -// "y": 0.6986111111111111 -// }, -// { -// "x": 0.365625, -// "y": 0.6375 -// }, -// { -// "x": 0.24375, -// "y": 0.625 -// }, -// { -// "x": 0.1984375, -// "y": 0.7041666666666667 -// }, -// { -// "x": 0.1203125, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.115625, -// "y": 0.9777777777777777 -// }, -// { -// "x": 0.3359375, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.32734375, -// "y": 0.7569444444444444 -// }, -// { -// "x": 0.34296875, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.36953125, -// "y": 0.9847222222222223 -// }, -// { -// "x": 0.52578125, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.52890625, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.54765625, -// "y": 0.7583333333333333 -// }, -// { -// "x": 0.54453125, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.7484375, -// "y": 0.9680555555555556 -// }, -// { -// "x": 0.70859375, -// "y": 0.7277777777777777 -// }, -// { -// "x": 0.6546875, -// "y": 0.7097222222222223 -// }, -// { -// "x": 0.6015625, -// "y": 0.7 -// } -// ], -// "id": "12" -// }, -// "causeArea": [ -// { -// "x": 0.0976642906665802, -// "y": 0.6972967359754775 -// }, -// { -// "x": 0.846740436553955, -// "y": 0.6972967359754775 -// }, -// { -// "x": 0.846740436553955, -// "y": 1 -// }, -// { -// "x": 0.0976642906665802, -// "y": 1 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cf294a1180023&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_f2b303da54f4_meta", -// "fileUri": "weed://21,f2b303da54f4_meta", -// "startTime": 1699512459000, -// "endTime": 1699512759000 -// }, -// "deviceId": "14324854723642368", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311091000003", -// "typeCode": "A2-05-06", -// "acceptTypeCode": "A2-05-06", -// "createTime": 1699511582000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.19296875, -// "y": 0.625 -// }, -// { -// "x": 0.16796875, -// "y": 0.6888888888888889 -// }, -// { -// "x": 0.1078125, -// "y": 0.8763888888888889 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.10563257932662964, -// "y": 0.6900858137342665 -// }, -// { -// "x": 0.8584179878234863, -// "y": 0.6900858137342665 -// }, -// { -// "x": 0.8584179878234863, -// "y": 0.961604732937283 -// }, -// { -// "x": 0.10563257932662964, -// "y": 0.961604732937283 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cf08bdfc1dcc2&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_f0aae95046a3_meta", -// "fileUri": "weed://21,f0aae95046a3_meta", -// "startTime": 1699511282000, -// "endTime": 1699511582000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311091000002", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1699511255000, -// "address": "合阳小区150弄大门口", -// "roi": { -// "point_list": [ -// { -// "x": 0.3375, -// "y": 0.7069444444444445 -// }, -// { -// "x": 0.36171875, -// "y": 0.7097222222222223 -// }, -// { -// "x": 0.39765625, -// "y": 0.6875 -// }, -// { -// "x": 0.52265625, -// "y": 0.6861111111111111 -// }, -// { -// "x": 0.534375, -// "y": 0.6972222222222222 -// }, -// { -// "x": 0.54296875, -// "y": 0.7125 -// }, -// { -// "x": 0.54140625, -// "y": 0.8694444444444445 -// }, -// { -// "x": 0.321875, -// "y": 0.8694444444444445 -// } -// ], -// "id": "26" -// }, -// "causeArea": [ -// { -// "x": 0.42583408355712893, -// "y": 0.625594245062934 -// }, -// { -// "x": 0.4835377216339111, -// "y": 0.625594245062934 -// }, -// { -// "x": 0.4835377216339111, -// "y": 0.7151383293999566 -// }, -// { -// "x": 0.42583408355712893, -// "y": 0.7151383293999566 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cefb50bf1d53d&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_efc8155351fa_meta", -// "fileUri": "weed://21,efc8155351fa_meta", -// "startTime": 1699511075000, -// "endTime": 1699511255000 -// }, -// "deviceId": "14324898752889856", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311091000001", -// "typeCode": "A2-05-06", -// "acceptTypeCode": "A2-05-06", -// "createTime": 1699498053000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.19296875, -// "y": 0.625 -// }, -// { -// "x": 0.16796875, -// "y": 0.6888888888888889 -// }, -// { -// "x": 0.1078125, -// "y": 0.8763888888888889 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.2086390256881714, -// "y": 0.6115050421820747 -// }, -// { -// "x": 0.6692705154418945, -// "y": 0.6115050421820747 -// }, -// { -// "x": 0.6692705154418945, -// "y": 0.7384293450249566 -// }, -// { -// "x": 0.2086390256881714, -// "y": 0.7384293450249566 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ceb06cacad8aa&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_eb25b0ddbb57_meta", -// "fileUri": "weed://21,eb25b0ddbb57_meta", -// "startTime": 1699497753000, -// "endTime": 1699498053000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311081000004", -// "typeCode": "A2-05-06", -// "acceptTypeCode": "A2-05-06", -// "createTime": 1699432074000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.19296875, -// "y": 0.625 -// }, -// { -// "x": 0.16796875, -// "y": 0.6888888888888889 -// }, -// { -// "x": 0.1078125, -// "y": 0.8763888888888889 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.1836094856262207, -// "y": 0.745849609375 -// }, -// { -// "x": 0.8954440116882324, -// "y": 0.745849609375 -// }, -// { -// "x": 0.8954440116882324, -// "y": 0.9837601555718316 -// }, -// { -// "x": 0.1836094856262207, -// "y": 0.9837601555718316 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ce77d65e5965d&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_e79a17b51538_meta", -// "fileUri": "weed://21,e79a17b51538_meta", -// "startTime": 1699431774000, -// "endTime": 1699432074000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311081000003", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1699430774000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.5016433715820312, -// "y": 0.4884767744276259 -// }, -// { -// "x": 0.546635103225708, -// "y": 0.4884767744276259 -// }, -// { -// "x": 0.546635103225708, -// "y": 0.5216083526611328 -// }, -// { -// "x": 0.5016433715820312, -// "y": 0.5216083526611328 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ce656d413932f&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_e6740ea0f3a1_meta", -// "fileUri": "weed://21,e6740ea0f3a1_meta", -// "startTime": 1699430474000, -// "endTime": 1699430774000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311081000001", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1699405095000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.5145945072174072, -// "y": 0.47744250827365453 -// }, -// { -// "x": 0.5844542980194092, -// "y": 0.47744250827365453 -// }, -// { -// "x": 0.5844542980194092, -// "y": 0.5219768948025174 -// }, -// { -// "x": 0.5145945072174072, -// "y": 0.5219768948025174 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ce38fed74b7af&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---21-_e3ac9a863513_meta", -// "fileUri": "weed://21,e3ac9a863513_meta", -// "startTime": 1699404795000, -// "endTime": 1699405095000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311061000005", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699248922000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0, -// "y": 0.5153129577636719 -// }, -// { -// "x": 0.1167366623878479, -// "y": 0.5153129577636719 -// }, -// { -// "x": 0.1167366623878479, -// "y": 0.7608637491861979 -// }, -// { -// "x": 0, -// "y": 0.7608637491861979 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cce93f60c4164&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_ceb28e39043a_meta", -// "fileUri": "weed://18,ceb28e39043a_meta", -// "startTime": 1699248622000, -// "endTime": 1699248922000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311061000004", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1699248820000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.31171875, -// "y": 0.7375 -// }, -// { -// "x": 0.2984375, -// "y": 0.8222222222222222 -// }, -// { -// "x": 0.7328125, -// "y": 0.8208333333333333 -// }, -// { -// "x": 0.7234375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.61640625, -// "y": 0.7361111111111112 -// }, -// { -// "x": 0.6109375, -// "y": 0.65 -// }, -// { -// "x": 0.4484375, -// "y": 0.65 -// }, -// { -// "x": 0.42265625, -// "y": 0.7402777777777778 -// } -// ], -// "id": "51" -// }, -// "causeArea": [ -// { -// "x": 0.5675284385681152, -// "y": 0.6267940097384983 -// }, -// { -// "x": 0.6086472034454345, -// "y": 0.6267940097384983 -// }, -// { -// "x": 0.6086472034454345, -// "y": 0.7068120744493273 -// }, -// { -// "x": 0.5675284385681152, -// "y": 0.7068120744493273 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cce4fc7b1c9f3&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_ce63689e1106_meta", -// "fileUri": "weed://18,ce63689e1106_meta", -// "startTime": 1699248640000, -// "endTime": 1699248820000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311061000003", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699238337000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0, -// "y": 0.5096410539415147 -// }, -// { -// "x": 0.11670963764190674, -// "y": 0.5096410539415147 -// }, -// { -// "x": 0.11670963764190674, -// "y": 0.7618143717447917 -// }, -// { -// "x": 0, -// "y": 0.7618143717447917 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ccac15a3a3b9f&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_cade17dfc38f_meta", -// "fileUri": "weed://18,cade17dfc38f_meta", -// "startTime": 1699238037000, -// "endTime": 1699238337000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311061000002", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699237821000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.4691189765930176, -// "y": 0.38061341179741753 -// }, -// { -// "x": 0.8519363403320312, -// "y": 0.38061341179741753 -// }, -// { -// "x": 0.8519363403320312, -// "y": 0.933467780219184 -// }, -// { -// "x": 0.4691189765930176, -// "y": 0.933467780219184 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cca20c70a9a75&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_ca3ff49a5677_meta", -// "fileUri": "weed://18,ca3ff49a5677_meta", -// "startTime": 1699237521000, -// "endTime": 1699237821000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311061000001", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699230926000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0, -// "y": 0.5077662150065104 -// }, -// { -// "x": 0.1166608452796936, -// "y": 0.5077662150065104 -// }, -// { -// "x": 0.1166608452796936, -// "y": 0.7636883205837673 -// }, -// { -// "x": 0, -// "y": 0.7636883205837673 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cc307bf56a368&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_c326431e2ac1_meta", -// "fileUri": "weed://18,c326431e2ac1_meta", -// "startTime": 1699230626000, -// "endTime": 1699230926000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000008", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1699001277000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0, -// "y": 0.5053539276123047 -// }, -// { -// "x": 0.108509361743927, -// "y": 0.5053539276123047 -// }, -// { -// "x": 0.108509361743927, -// "y": 0.7529181586371527 -// }, -// { -// "x": 0, -// "y": 0.7529181586371527 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cc18fc9ddf3a5&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_c1ae946df30f_meta", -// "fileUri": "weed://18,c1ae946df30f_meta", -// "startTime": 1699000977000, -// "endTime": 1699001277000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000007", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1699000521000, -// "address": "宜川路351弄66号东", -// "roi": { -// "point_list": [ -// { -// "x": 0.4859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.6046875, -// "y": 0.475 -// }, -// { -// "x": 0.60078125, -// "y": 0.41944444444444445 -// }, -// { -// "x": 0.4859375, -// "y": 0.4263888888888889 -// } -// ], -// "id": "34" -// }, -// "causeArea": [ -// { -// "x": 0.4919928550720215, -// "y": 0.42913186815049914 -// }, -// { -// "x": 0.5364473342895508, -// "y": 0.42913186815049914 -// }, -// { -// "x": 0.5364473342895508, -// "y": 0.4861069573296441 -// }, -// { -// "x": 0.4919928550720215, -// "y": 0.4861069573296441 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cc06c200d6137&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---18-_c08b9f484868_meta", -// "fileUri": "weed://18,c08b9f484868_meta", -// "startTime": 1699000221000, -// "endTime": 1699000521000 -// }, -// "deviceId": "14324854723642368", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000006", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698992971000, -// "address": "合阳小区150弄大门口", -// "roi": { -// "point_list": [ -// { -// "x": 0.17265625, -// "y": 0.49583333333333335 -// }, -// { -// "x": 0.146875, -// "y": 0.9972222222222222 -// }, -// { -// "x": 0.915625, -// "y": 0.9986111111111111 -// }, -// { -// "x": 0.91484375, -// "y": 0.7013888888888888 -// }, -// { -// "x": 0.7703125, -// "y": 0.5083333333333333 -// }, -// { -// "x": 0.65625, -// "y": 0.475 -// } -// ], -// "id": "52" -// }, -// "causeArea": [ -// { -// "x": 0.17010126113891602, -// "y": 0.5017389509412977 -// }, -// { -// "x": 0.8151801109313965, -// "y": 0.5017389509412977 -// }, -// { -// "x": 0.8151801109313965, -// "y": 1 -// }, -// { -// "x": 0.17010126113891602, -// "y": 1 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cbdab52dc4f02&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_bdc81fa3a756_meta", -// "fileUri": "weed://16,bdc81fa3a756_meta", -// "startTime": 1698992671000, -// "endTime": 1698992971000 -// }, -// "deviceId": "14324898752889856", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000005", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698992750000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 6.243580628506606e-7, -// "y": 0.5010227627224393 -// }, -// { -// "x": 0.29892380237579347, -// "y": 0.5010227627224393 -// }, -// { -// "x": 0.29892380237579347, -// "y": 0.83829345703125 -// }, -// { -// "x": 6.243580628506606e-7, -// "y": 0.83829345703125 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cbcfc48f444c1&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_bd1b2eac3de7_meta", -// "fileUri": "weed://16,bd1b2eac3de7_meta", -// "startTime": 1698992450000, -// "endTime": 1698992750000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000004", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698991787000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.31171875, -// "y": 0.7375 -// }, -// { -// "x": 0.2984375, -// "y": 0.8222222222222222 -// }, -// { -// "x": 0.7328125, -// "y": 0.8208333333333333 -// }, -// { -// "x": 0.7234375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.61640625, -// "y": 0.7361111111111112 -// }, -// { -// "x": 0.6109375, -// "y": 0.65 -// }, -// { -// "x": 0.4484375, -// "y": 0.65 -// }, -// { -// "x": 0.42265625, -// "y": 0.7402777777777778 -// } -// ], -// "id": "51" -// }, -// "causeArea": [ -// { -// "x": 0.5881219387054444, -// "y": 0.6616871727837457 -// }, -// { -// "x": 0.6305920124053955, -// "y": 0.6616871727837457 -// }, -// { -// "x": 0.6305920124053955, -// "y": 0.7333631727430555 -// }, -// { -// "x": 0.5881219387054444, -// "y": 0.7333631727430555 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cbc0e17190fbc&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_bc206f68826b_meta", -// "fileUri": "weed://16,bc206f68826b_meta", -// "startTime": 1698991607000, -// "endTime": 1698991787000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000003", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698979357000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.301703143119812, -// "y": 0.4751155429416233 -// }, -// { -// "x": 0.5756273746490479, -// "y": 0.4751155429416233 -// }, -// { -// "x": 0.5756273746490479, -// "y": 0.8925325181749132 -// }, -// { -// "x": 0.301703143119812, -// "y": 0.8925325181749132 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cba3ae7ae3ea8&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_ba58645580aa_meta", -// "fileUri": "weed://16,ba58645580aa_meta", -// "startTime": 1698979057000, -// "endTime": 1698979357000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000002", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1698972039000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.50859375, -// "y": 0.49444444444444446 -// }, -// { -// "x": 0.559375, -// "y": 0.49583333333333335 -// }, -// { -// "x": 0.5625, -// "y": 0.41805555555555557 -// }, -// { -// "x": 0.50625, -// "y": 0.42777777777777776 -// } -// ], -// "id": "35" -// }, -// "causeArea": [ -// { -// "x": 0.5303625106811524, -// "y": 0.44585274590386287 -// }, -// { -// "x": 0.5630361557006835, -// "y": 0.44585274590386287 -// }, -// { -// "x": 0.5630361557006835, -// "y": 0.48036939832899306 -// }, -// { -// "x": 0.5303625106811524, -// "y": 0.48036939832899306 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb8ae3c1472dc&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b8cc60d00793_meta", -// "fileUri": "weed://16,b8cc60d00793_meta", -// "startTime": 1698971739000, -// "endTime": 1698972039000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311031000001", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698971723000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.030922913551330568, -// "y": 0.4902479383680556 -// }, -// { -// "x": 0.22559809684753418, -// "y": 0.4902479383680556 -// }, -// { -// "x": 0.22559809684753418, -// "y": 0.7967398749457465 -// }, -// { -// "x": 0.030922913551330568, -// "y": 0.7967398749457465 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb83fe054f735&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b85e09856cc9_meta", -// "fileUri": "weed://16,b85e09856cc9_meta", -// "startTime": 1698971423000, -// "endTime": 1698971723000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000006", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698911793000, -// "address": "宜川路351弄66号东", -// "roi": { -// "point_list": [ -// { -// "x": 0.6, -// "y": 0.6013888888888889 -// }, -// { -// "x": 0.446875, -// "y": 0.6 -// }, -// { -// "x": 0.44296875, -// "y": 0.6875 -// }, -// { -// "x": 0.37578125, -// "y": 0.6986111111111111 -// }, -// { -// "x": 0.365625, -// "y": 0.6375 -// }, -// { -// "x": 0.24375, -// "y": 0.625 -// }, -// { -// "x": 0.1984375, -// "y": 0.7041666666666667 -// }, -// { -// "x": 0.1203125, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.115625, -// "y": 0.9777777777777777 -// }, -// { -// "x": 0.3359375, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.32734375, -// "y": 0.7569444444444444 -// }, -// { -// "x": 0.34296875, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.36953125, -// "y": 0.9847222222222223 -// }, -// { -// "x": 0.52578125, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.52890625, -// "y": 0.7527777777777778 -// }, -// { -// "x": 0.54765625, -// "y": 0.7583333333333333 -// }, -// { -// "x": 0.54453125, -// "y": 0.9888888888888889 -// }, -// { -// "x": 0.7484375, -// "y": 0.9680555555555556 -// }, -// { -// "x": 0.70859375, -// "y": 0.7277777777777777 -// }, -// { -// "x": 0.6546875, -// "y": 0.7097222222222223 -// }, -// { -// "x": 0.6015625, -// "y": 0.7 -// } -// ], -// "id": "12" -// }, -// "causeArea": [ -// { -// "x": 0.1515350103378296, -// "y": 0.7810270521375868 -// }, -// { -// "x": 0.19394664764404296, -// "y": 0.7810270521375868 -// }, -// { -// "x": 0.19394664764404296, -// "y": 0.8467327541775174 -// }, -// { -// "x": 0.1515350103378296, -// "y": 0.8467327541775174 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb51f776d1f39&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b531c6929ee8_meta", -// "fileUri": "weed://16,b531c6929ee8_meta", -// "startTime": 1698911613000, -// "endTime": 1698911793000 -// }, -// "deviceId": "14324854723642368", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000005", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698906223000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.31171875, -// "y": 0.7375 -// }, -// { -// "x": 0.2984375, -// "y": 0.8222222222222222 -// }, -// { -// "x": 0.7328125, -// "y": 0.8208333333333333 -// }, -// { -// "x": 0.7234375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.61640625, -// "y": 0.7361111111111112 -// }, -// { -// "x": 0.6109375, -// "y": 0.65 -// }, -// { -// "x": 0.4484375, -// "y": 0.65 -// }, -// { -// "x": 0.42265625, -// "y": 0.7402777777777778 -// } -// ], -// "id": "51" -// }, -// "causeArea": [ -// { -// "x": 0.5518452644348144, -// "y": 0.5970118628607856 -// }, -// { -// "x": 0.6019459724426269, -// "y": 0.5970118628607856 -// }, -// { -// "x": 0.6019459724426269, -// "y": 0.6787878672281901 -// }, -// { -// "x": 0.5518452644348144, -// "y": 0.6787878672281901 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb49336a3e573&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b4a6882ca1c6_meta", -// "fileUri": "weed://16,b4a6882ca1c6_meta", -// "startTime": 1698906043000, -// "endTime": 1698906223000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000004", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698893422000, -// "address": "合阳小区150弄大门口", -// "roi": { -// "point_list": [ -// { -// "x": 0.17265625, -// "y": 0.49583333333333335 -// }, -// { -// "x": 0.146875, -// "y": 0.9972222222222222 -// }, -// { -// "x": 0.915625, -// "y": 0.9986111111111111 -// }, -// { -// "x": 0.91484375, -// "y": 0.7013888888888888 -// }, -// { -// "x": 0.7703125, -// "y": 0.5083333333333333 -// }, -// { -// "x": 0.65625, -// "y": 0.475 -// } -// ], -// "id": "52" -// }, -// "causeArea": [ -// { -// "x": 0.10505242347717285, -// "y": 0.5100261688232421 -// }, -// { -// "x": 0.7239205360412597, -// "y": 0.5100261688232421 -// }, -// { -// "x": 0.7239205360412597, -// "y": 1 -// }, -// { -// "x": 0.10505242347717285, -// "y": 1 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb29966764760&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b2b8e602ffbe_meta", -// "fileUri": "weed://16,b2b8e602ffbe_meta", -// "startTime": 1698893122000, -// "endTime": 1698893422000 -// }, -// "deviceId": "14324898752889856", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000003", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698892705000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.0021980803459882734, -// "y": 0.523619884914822 -// }, -// { -// "x": 0.21012723445892334, -// "y": 0.523619884914822 -// }, -// { -// "x": 0.21012723445892334, -// "y": 0.8356285942925348 -// }, -// { -// "x": 0.0021980803459882734, -// "y": 0.8356285942925348 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Cb1756bf17c22&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_b1924e3b932b_meta", -// "fileUri": "weed://16,b1924e3b932b_meta", -// "startTime": 1698892405000, -// "endTime": 1698892705000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000002", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698890893000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.22393240928649902, -// "y": 0.5238442738850911 -// }, -// { -// "x": 0.44884824752807617, -// "y": 0.5238442738850911 -// }, -// { -// "x": 0.44884824752807617, -// "y": 0.8957440694173177 -// }, -// { -// "x": 0.22393240928649902, -// "y": 0.8957440694173177 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Caf8b734dc956&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---16-_afa85ee8a848_meta", -// "fileUri": "weed://16,afa85ee8a848_meta", -// "startTime": 1698890593000, -// "endTime": 1698890893000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311021000001", -// "typeCode": "A2-04-09", -// "acceptTypeCode": "A2-04-09", -// "createTime": 1698885323000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.00007996534695848822, -// "y": 0.5227838304307726 -// }, -// { -// "x": 0.21125531196594238, -// "y": 0.5227838304307726 -// }, -// { -// "x": 0.21125531196594238, -// "y": 0.8301631503634983 -// }, -// { -// "x": 0.00007996534695848822, -// "y": 0.8301631503634983 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ca9d0f8db09d8&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---14-_a9eddcba3a26_meta", -// "fileUri": "weed://14,a9eddcba3a26_meta", -// "startTime": 1698885023000, -// "endTime": 1698885323000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000078", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698828996000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.31171875, -// "y": 0.7375 -// }, -// { -// "x": 0.2984375, -// "y": 0.8222222222222222 -// }, -// { -// "x": 0.7328125, -// "y": 0.8208333333333333 -// }, -// { -// "x": 0.7234375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.61640625, -// "y": 0.7361111111111112 -// }, -// { -// "x": 0.6109375, -// "y": 0.65 -// }, -// { -// "x": 0.4484375, -// "y": 0.65 -// }, -// { -// "x": 0.42265625, -// "y": 0.7402777777777778 -// } -// ], -// "id": "51" -// }, -// "causeArea": [ -// { -// "x": 0.6005354881286621, -// "y": 0.6618516710069444 -// }, -// { -// "x": 0.6396817684173584, -// "y": 0.6618516710069444 -// }, -// { -// "x": 0.6396817684173584, -// "y": 0.7265651279025608 -// }, -// { -// "x": 0.6005354881286621, -// "y": 0.7265651279025608 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ca96696f87a26&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---14-_a9790211afcb_meta", -// "fileUri": "weed://14,a9790211afcb_meta", -// "startTime": 1698828816000, -// "endTime": 1698828996000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000077", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698820417000, -// "address": "名都花园志丹路151弄155号南", -// "roi": { -// "point_list": [ -// { -// "x": 0.0234375, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.00234375, -// "y": 0.6444444444444445 -// }, -// { -// "x": 0.00390625, -// "y": 0.8416666666666667 -// }, -// { -// "x": 0.2515625, -// "y": 0.9069444444444444 -// }, -// { -// "x": 0.4515625, -// "y": 0.9347222222222222 -// }, -// { -// "x": 0.94140625, -// "y": 0.8180555555555555 -// }, -// { -// "x": 0.77578125, -// "y": 0.5791666666666667 -// }, -// { -// "x": 0.509375, -// "y": 0.5958333333333333 -// }, -// { -// "x": 0.4078125, -// "y": 0.6027777777777777 -// }, -// { -// "x": 0.38984375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.375, -// "y": 0.6458333333333334 -// }, -// { -// "x": 0.371875, -// "y": 0.6138888888888889 -// }, -// { -// "x": 0.3359375, -// "y": 0.6166666666666667 -// }, -// { -// "x": 0.334375, -// "y": 0.6513888888888889 -// }, -// { -// "x": 0.321875, -// "y": 0.6527777777777778 -// }, -// { -// "x": 0.31796875, -// "y": 0.6 -// } -// ], -// "id": "14" -// }, -// "causeArea": [ -// { -// "x": 0.4859012126922607, -// "y": 0.7140936109754774 -// }, -// { -// "x": 0.5452122211456298, -// "y": 0.7140936109754774 -// }, -// { -// "x": 0.5452122211456298, -// "y": 0.7647516038682726 -// }, -// { -// "x": 0.4859012126922607, -// "y": 0.7647516038682726 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2Ca90a2e9c5f61&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---14-_a91e10f3c993_meta", -// "fileUri": "weed://14,a91e10f3c993_meta", -// "startTime": 1698820237000, -// "endTime": 1698820417000 -// }, -// "deviceId": "14324899274163200", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000045", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1698794742000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.4983633518218994, -// "y": 0.48923077053493924 -// }, -// { -// "x": 0.5452874183654786, -// "y": 0.48923077053493924 -// }, -// { -// "x": 0.5452874183654786, -// "y": 0.530176501803928 -// }, -// { -// "x": 0.4983633518218994, -// "y": 0.530176501803928 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C847586a5ca09&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---12-_84979f8bda0f_meta", -// "fileUri": "weed://12,84979f8bda0f_meta", -// "startTime": 1698794442000, -// "endTime": 1698794742000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000036", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698790506000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.4959703922271729, -// "y": 0.5743371751573351 -// }, -// { -// "x": 0.5616868019104004, -// "y": 0.5743371751573351 -// }, -// { -// "x": 0.5616868019104004, -// "y": 0.67598876953125 -// }, -// { -// "x": 0.4959703922271729, -// "y": 0.67598876953125 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C731718022310&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---10-_732a0f099854_meta", -// "fileUri": "weed://10,732a0f099854_meta", -// "startTime": 1698790326000, -// "endTime": 1698790506000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000029", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698787866000, -// "address": "合阳小区150弄大门口", -// "roi": { -// "point_list": [ -// { -// "x": 0.3375, -// "y": 0.7069444444444445 -// }, -// { -// "x": 0.36171875, -// "y": 0.7097222222222223 -// }, -// { -// "x": 0.39765625, -// "y": 0.6875 -// }, -// { -// "x": 0.52265625, -// "y": 0.6861111111111111 -// }, -// { -// "x": 0.534375, -// "y": 0.6972222222222222 -// }, -// { -// "x": 0.596875, -// "y": 0.7069444444444445 -// }, -// { -// "x": 0.60390625, -// "y": 0.8708333333333333 -// }, -// { -// "x": 0.33671875, -// "y": 0.8319444444444445 -// } -// ], -// "id": "26" -// }, -// "causeArea": [ -// { -// "x": 0.48544964790344236, -// "y": 0.6237070719401042 -// }, -// { -// "x": 0.5519887924194335, -// "y": 0.6237070719401042 -// }, -// { -// "x": 0.5519887924194335, -// "y": 0.7306293063693576 -// }, -// { -// "x": 0.48544964790344236, -// "y": 0.7306293063693576 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C6af7f70cb925&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---8-_6b0a5a84c7e3_meta", -// "fileUri": "weed://8,6b0a5a84c7e3_meta", -// "startTime": 1698787686000, -// "endTime": 1698787866000 -// }, -// "deviceId": "14324898752889856", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000028", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1698787237000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.5012503623962402, -// "y": 0.4798249986436632 -// }, -// { -// "x": 0.5497101306915283, -// "y": 0.4798249986436632 -// }, -// { -// "x": 0.5497101306915283, -// "y": 0.5459707472059462 -// }, -// { -// "x": 0.5012503623962402, -// "y": 0.5459707472059462 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C6930bc8804c1&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---8-_694ea1294a91_meta", -// "fileUri": "weed://8,694ea1294a91_meta", -// "startTime": 1698786937000, -// "endTime": 1698787237000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000021", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698784486000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.45792713165283205, -// "y": 0.628507317437066 -// }, -// { -// "x": 0.4915574550628662, -// "y": 0.628507317437066 -// }, -// { -// "x": 0.4915574550628662, -// "y": 0.6793708801269531 -// }, -// { -// "x": 0.45792713165283205, -// "y": 0.6793708801269531 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C5cfa868ad5b8&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---8-_5d0eea3d5e9e_meta", -// "fileUri": "weed://8,5d0eea3d5e9e_meta", -// "startTime": 1698784306000, -// "endTime": 1698784486000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000019", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698783803000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.5873856544494629, -// "y": 0.6794630262586806 -// }, -// { -// "x": 0.6377851009368897, -// "y": 0.6794630262586806 -// }, -// { -// "x": 0.6377851009368897, -// "y": 0.7321868896484375 -// }, -// { -// "x": 0.5873856544494629, -// "y": 0.7321868896484375 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C599ce68bdc3a&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---8-_59b0b831eea7_meta", -// "fileUri": "weed://8,59b0b831eea7_meta", -// "startTime": 1698783623000, -// "endTime": 1698783803000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000010", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698776475000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.5867368698120117, -// "y": 0.677024417453342 -// }, -// { -// "x": 0.6374879837036133, -// "y": 0.677024417453342 -// }, -// { -// "x": 0.6374879837036133, -// "y": 0.7332873026529948 -// }, -// { -// "x": 0.5867368698120117, -// "y": 0.7332873026529948 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C3b3cf791003e&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---6-_3b528d00cec4_meta", -// "fileUri": "weed://6,3b528d00cec4_meta", -// "startTime": 1698776295000, -// "endTime": 1698776475000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000009", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698776183000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.45762200355529786, -// "y": 0.6287628173828125 -// }, -// { -// "x": 0.49112472534179685, -// "y": 0.6287628173828125 -// }, -// { -// "x": 0.49112472534179685, -// "y": 0.6799477895100912 -// }, -// { -// "x": 0.45762200355529786, -// "y": 0.6799477895100912 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C3a0bd1a4a87f&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---6-_3a1dd9dd58f6_meta", -// "fileUri": "weed://6,3a1dd9dd58f6_meta", -// "startTime": 1698776003000, -// "endTime": 1698776183000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000003", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698769101000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.5853785514831543, -// "y": 0.675849109225803 -// }, -// { -// "x": 0.6425919532775879, -// "y": 0.675849109225803 -// }, -// { -// "x": 0.6425919532775879, -// "y": 0.7309663560655382 -// }, -// { -// "x": 0.5853785514831543, -// "y": 0.7309663560655382 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C25f8a5c26a7a&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_260afe17a8a0_meta", -// "fileUri": "weed://5,260afe17a8a0_meta", -// "startTime": 1698768921000, -// "endTime": 1698769101000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000002", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1698769087000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.5021638870239258, -// "y": 0.47742703755696614 -// }, -// { -// "x": 0.5502769470214843, -// "y": 0.47742703755696614 -// }, -// { -// "x": 0.5502769470214843, -// "y": 0.5392229292127821 -// }, -// { -// "x": 0.5021638870239258, -// "y": 0.5392229292127821 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C25d2d3902ee7&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_25f2f34c6259_meta", -// "fileUri": "weed://5,25f2f34c6259_meta", -// "startTime": 1698768787000, -// "endTime": 1698769087000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2311011000001", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698768838000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.45763282775878905, -// "y": 0.6248090955946181 -// }, -// { -// "x": 0.49651622772216797, -// "y": 0.6248090955946181 -// }, -// { -// "x": 0.49651622772216797, -// "y": 0.6813922458224826 -// }, -// { -// "x": 0.45763282775878905, -// "y": 0.6813922458224826 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C2559ca408e68&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_256c02d52c8b_meta", -// "fileUri": "weed://5,256c02d52c8b_meta", -// "startTime": 1698768658000, -// "endTime": 1698768838000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2310311000019", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698761622000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.4929366111755371, -// "y": 0.5516220940483941 -// }, -// { -// "x": 0.5556382179260254, -// "y": 0.5516220940483941 -// }, -// { -// "x": 0.5556382179260254, -// "y": 0.6754347059461806 -// }, -// { -// "x": 0.4929366111755371, -// "y": 0.6754347059461806 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C16df015800e9&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_16f2e5a0279e_meta", -// "fileUri": "weed://5,16f2e5a0279e_meta", -// "startTime": 1698761442000, -// "endTime": 1698761622000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2310311000018", -// "typeCode": "B2-01-98", -// "acceptTypeCode": "B2-01-98", -// "createTime": 1698761203000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.45078125, -// "y": 0.5208333333333334 -// }, -// { -// "x": 0.46640625, -// "y": 0.48194444444444445 -// }, -// { -// "x": 0.5859375, -// "y": 0.4791666666666667 -// }, -// { -// "x": 0.58671875, -// "y": 0.5319444444444444 -// }, -// { -// "x": 0.4625, -// "y": 0.5388888888888889 -// } -// ], -// "id": "33" -// }, -// "causeArea": [ -// { -// "x": 0.4988424301147461, -// "y": 0.4742371453179253 -// }, -// { -// "x": 0.547465705871582, -// "y": 0.4742371453179253 -// }, -// { -// "x": 0.547465705871582, -// "y": 0.5228624131944445 -// }, -// { -// "x": 0.4988424301147461, -// "y": 0.5228624131944445 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C15cda7e3b85b&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_15ebd4c0cd19_meta", -// "fileUri": "weed://5,15ebd4c0cd19_meta", -// "startTime": 1698760903000, -// "endTime": 1698761203000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2310311000017", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698760761000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.5859990596771241, -// "y": 0.684348381890191 -// }, -// { -// "x": 0.6423850536346436, -// "y": 0.684348381890191 -// }, -// { -// "x": 0.6423850536346436, -// "y": 0.7285448710123698 -// }, -// { -// "x": 0.5859990596771241, -// "y": 0.7285448710123698 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C14f080734d2d&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---5-_1502146ba9d2_meta", -// "fileUri": "weed://5,1502146ba9d2_meta", -// "startTime": 1698760581000, -// "endTime": 1698760761000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2310311000008", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698752282000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.48691983222961427, -// "y": 0.5663486904568142 -// }, -// { -// "x": 0.5504248142242432, -// "y": 0.5663486904568142 -// }, -// { -// "x": 0.5504248142242432, -// "y": 0.6692958407931857 -// }, -// { -// "x": 0.48691983222961427, -// "y": 0.6692958407931857 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C069a381dcddd&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---4-_06ad45557dbd_meta", -// "fileUri": "weed://4,06ad45557dbd_meta", -// "startTime": 1698752102000, -// "endTime": 1698752282000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// }, -// { -// "caseNumber": "2310311000005", -// "typeCode": "A2-01-10", -// "acceptTypeCode": "A2-01-10", -// "createTime": 1698748728000, -// "address": "合阳小区150弄16号北", -// "roi": { -// "point_list": [ -// { -// "x": 0.30859375, -// "y": 0.7291666666666666 -// }, -// { -// "x": 0.41796875, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.4328125, -// "y": 0.6361111111111111 -// }, -// { -// "x": 0.625, -// "y": 0.6305555555555555 -// }, -// { -// "x": 0.63828125, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.740625, -// "y": 0.7319444444444444 -// }, -// { -// "x": 0.7453125, -// "y": 0.875 -// }, -// { -// "x": 0.2625, -// "y": 0.8527777777777777 -// } -// ], -// "id": "25" -// }, -// "causeArea": [ -// { -// "x": 0.5878280162811279, -// "y": 0.6301150851779513 -// }, -// { -// "x": 0.6373274803161622, -// "y": 0.6301150851779513 -// }, -// { -// "x": 0.6373274803161622, -// "y": 0.7274208068847656 -// }, -// { -// "x": 0.5878280162811279, -// "y": 0.7274208068847656 -// } -// ], -// "causeImage": { -// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C0315c293d94d&contentType=image/jpeg&token=WVPCDLzQeRWYySPkQMuLAislgqfQJuubaHmDnfgyRkSxNCpbwzTgOrvtjSeg", -// "isAutoUpload": true -// }, -// "causeVideo": { -// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---4-_0328d7910dcf_meta", -// "fileUri": "weed://4,0328d7910dcf_meta", -// "startTime": 1698748548000, -// "endTime": 1698748728000 -// }, -// "deviceId": "14324898787623936", -// "state": 1, -// "disposalStatus": 1 -// } -// ] -// } -// } public class QueryResp { public int code { get; set; } @@ -4033,11 +18,134 @@ public class QueryRespData public List records { get; set; } } +/// +/// +/// ``` json +/// { +/// "caseNumber": "2311171000022", +/// "typeCode": "A2-01-10", +/// "acceptTypeCode": "A2-01-10", +/// "createTime": 1700211434000, +/// "address": "合阳小区150弄大门口", +/// "roi": { +/// "point_list": [ +/// { +/// "x": 0.3375, +/// "y": 0.7069444444444445 +/// }, +/// { +/// "x": 0.35546875, +/// "y": 0.6569444444444444 +/// }, +/// { +/// "x": 0.440625, +/// "y": 0.6 +/// }, +/// { +/// "x": 0.5078125, +/// "y": 0.5458333333333333 +/// }, +/// { +/// "x": 0.534375, +/// "y": 0.6972222222222222 +/// }, +/// { +/// "x": 0.54296875, +/// "y": 0.7125 +/// }, +/// { +/// "x": 0.54140625, +/// "y": 0.8694444444444445 +/// }, +/// { +/// "x": 0.321875, +/// "y": 0.8694444444444445 +/// } +/// ], +/// "id": "26" +/// }, +/// "causeArea": [ +/// { +/// "x": 0.47037081718444823, +/// "y": 0.5797762129041883 +/// }, +/// { +/// "x": 0.525736951828003, +/// "y": 0.5797762129041883 +/// }, +/// { +/// "x": 0.525736951828003, +/// "y": 0.6335258483886719 +/// }, +/// { +/// "x": 0.47037081718444823, +/// "y": 0.6335258483886719 +/// } +/// ], +/// "causeImage": { +/// "uri": "/core/v5/resources/data?uri=weed%3A%2F%2F3%2C018a1bc9f8db4c&contentType=image/jpeg&token=RAFBGWLcDAbCytvXBwZGXDUDJXxzsTHycSakqcrUNRXFOgOQBTfQtDQhIgOf", +/// "isAutoUpload": true +/// }, +/// "causeVideo": { +/// "objectName": "http://33.10.72.100:8080/v5/objectStorage/megcity-alarm-vedios/weed---46-_018a2d8442b3b4_meta", +/// "fileUri": "weed://46,018a2d8442b3b4_meta", +/// "startTime": 1700211254000, +/// "endTime": 1700211434000 +/// }, +/// "deviceId": "14324898752889856", +/// "state": 1, +/// "disposalStatus": 1 +///} +/// ``` +/// public class QueryRecords { public string caseNumber { get; set; } public string typeCode { get; set; } - public int state { get; set; } + public string acceptTypeCode { get; set; } + public long createTime { get; set; } + public string address { get; set; } + public Roi roi { get; set; } + public List causeArea { get; set; } + public CauseImage causeImage { get; set; } + public CauseVideo causeVideo { get; set; } public string deviceId { get; set; } + public int state { get; set; } public int disposalStatus { get; set; } -} \ No newline at end of file +} + +public class Roi +{ + public List point_list { get; set; } + public string id { get; set; } +} + +public class PointList +{ + public double x { get; set; } + public double y { get; set; } +} + +public class CauseImage +{ + public string uri { get; set; } + public bool isAutoUpload { get; set; } +} + +public class CauseVideo +{ + public string objectName { get; set; } + public string fileUri { get; set; } + public long startTime { get; set; } + public long endTime { get; set; } +} + +public class CauseArea +{ + public double x { get; set; } + public double y { get; set; } +} + + + + diff --git a/AutoDispathingWork/Program.cs b/AutoDispathingWork/Program.cs index 0fb635e..82bb5a7 100644 --- a/AutoDispathingWork/Program.cs +++ b/AutoDispathingWork/Program.cs @@ -1,3 +1,4 @@ +using AutoDispathingWork.Utils; using LiteDB; using Microsoft.OpenApi.Models; using WorkerService1; @@ -34,18 +35,20 @@ builder.Services.AddMemoryCache(); builder.Services.AddLogging(); // builder.Services.AddMvcCore(); builder.Services.AddSingleton(); -#if !DEBUG +builder.Services.AddScoped(); +// #if !DEBUG builder.Services.AddHostedService(); builder.Services.AddHostedService(); -#endif +// #endif var app = builder.Build(); - +StaticServiceProvider.SetServiceProvider(app.Services); app.UseCors("AllowAllOrigin"); app.UseSwagger(); app.UseSwaggerUI(); app.MapControllers(); +app.Urls.Add("http://*:80"); app.Run(); \ No newline at end of file diff --git a/AutoDispathingWork/Services/SettingServices.cs b/AutoDispathingWork/Services/SettingServices.cs new file mode 100644 index 0000000..7ea9029 --- /dev/null +++ b/AutoDispathingWork/Services/SettingServices.cs @@ -0,0 +1,42 @@ +using LiteDB; +using Microsoft.Extensions.Options; +using WorkerService1.Dto.Configuration; + +namespace WorkerService1.Services; + +public class SettingServices +{ + private readonly IOptionsMonitor _optionsMonitor; + private readonly LiteDatabase _db; + + public SettingServices(IOptionsMonitor optionsMonitor, LiteDatabase db) + { + _optionsMonitor = optionsMonitor; + _db = db; + } + + public void Reset() + { + SettingClientOptions(_optionsMonitor.CurrentValue); + } + + public ClientOptions GetClientOptions() + { + var clientOptions = _db.GetCollection(); + var dbOptions = clientOptions.FindAll().FirstOrDefault(); + if (dbOptions != null) + { + return dbOptions; + } + + return _optionsMonitor.CurrentValue; + } + + public ClientOptions SettingClientOptions(ClientOptions options) + { + var clientOptions = _db.GetCollection(); + clientOptions.DeleteAll(); + clientOptions.Insert(options); + return options; + } +} \ No newline at end of file diff --git a/AutoDispathingWork/Services/SpiderServices.cs b/AutoDispathingWork/Services/SpiderServices.cs index 9cdd9a0..c8f6fd8 100644 --- a/AutoDispathingWork/Services/SpiderServices.cs +++ b/AutoDispathingWork/Services/SpiderServices.cs @@ -1,12 +1,17 @@ using System.Net.Http.Json; using System.Text; -using System.Text.Json; +using AutoDispathingWork.Utils; +using LiteDB; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Options; +using WorkerService1.Domains; using WorkerService1.Dto; using WorkerService1.Dto.Configuration; using WorkerService1.Dto.QueryRequest; using WorkerService1.Dto.QueryResponse; +using WorkerService1.Utils; +using JsonSerializer = System.Text.Json.JsonSerializer; +using Utilities = WorkerService1.Utils.Utilities; namespace WorkerService1.Services; @@ -31,13 +36,19 @@ public class SpiderServices private IOptionsMonitor OptionsMonitor => _serviceProvider.CreateScope().ServiceProvider .GetRequiredService>(); + private ClientOptions GetClientOptions => _serviceProvider.CreateScope().ServiceProvider + .GetRequiredService() + .GetClientOptions(); + + private LiteDatabase GetLiteDatabase => _serviceProvider + .GetRequiredService(); public async Task> Login() { using var client = _httpClientFactory.CreateClient(); - var loginApi = OptionsMonitor.CurrentValue.LoginUrl; + var loginApi = GetClientOptions.LoginUrl; var json = $@" - {{""userName"":""{_optionsMonitor.CurrentValue.UserName}"",""userPwd"":""{_optionsMonitor.CurrentValue.Password}"",""type"":""account"",""clientAppId"":""megcity-web""}} + {{""userName"":""{GetClientOptions.UserName}"",""userPwd"":""{GetClientOptions.Password}"",""type"":""account"",""clientAppId"":""megcity-web""}} "; client.DefaultRequestHeaders.Add("Module-Alias", "pending-forward"); client.DefaultRequestHeaders.Add("Module-Source", "megcity-web"); @@ -118,7 +129,7 @@ public class SpiderServices // {"state":[3],"pageNo":1,"pageSize":50,"sortType":[40,10],"handleStartTime":1697293650750,"handleEndTime":1699885650750} // {"state":[1],"pageNo":1,"pageSize":50,"sortType":[20,10],"createStartTime":1697290618034,"createEndTime":1699882618034} // {\"state\":[1],\"pageNo\":1,\"pageSize\":50,\"sortType\":[20,10],\"createStartTime\":1697204639551,\"createEndTime\":1697204639551} - var taskPath = OptionsMonitor.CurrentValue.GetTaskUrl; + var taskPath = GetClientOptions.GetTaskUrl; var response = await client.PostAsync(taskPath, new StringContent(JsonSerializer.Serialize(body), Encoding.UTF8, "application/json")); var respJsonStr = await response.Content.ReadAsStringAsync(); @@ -161,7 +172,7 @@ public class SpiderServices client.DefaultRequestHeaders.Add("module-alias", "pending-forward"); client.DefaultRequestHeaders.Add("module-source", "megcity-web"); var request = query ?? new UserQuery(); - var userPath = OptionsMonitor.CurrentValue.GetUserUrl; + var userPath = GetClientOptions.GetUserUrl; var response = await client.PostAsync(userPath, new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json")); var respJsonStr = await response.Content.ReadAsStringAsync(); @@ -194,7 +205,7 @@ public class SpiderServices //{"acceptTypeCode":"A2-01-10","target":2,"handlerId":"66fa9261-16f6-49aa-a391-5848f40301e0","typeCode":"A2-01-10"} //{ "code": 0, "msg": "SUCCESS", "data": {} } - public async Task> DispatchTask(string caseNumber, string handlerId, string typeCode) + public async Task> DispatchTask(string caseNumber, string cameraName, string typeCode) { var token = await GetToken(); using var client = _httpClientFactory.CreateClient(); @@ -203,6 +214,19 @@ public class SpiderServices client.DefaultRequestHeaders.Add("client-app-id", "megcity-web"); client.DefaultRequestHeaders.Add("module-alias", "pending-forward"); client.DefaultRequestHeaders.Add("module-source", "megcity-web"); + + var (handlerId, userRealName) = await GetUserIdByCamera(cameraName); + if (string.IsNullOrWhiteSpace(handlerId)) + { + return new SpiderResponse() + { + IsSuccess = false, + Result = null, + Code = SpiderResponseCode.Fail, + Message = $"分发任务失败, 案件编号:{caseNumber}, 未找到摄像头:{cameraName}对应的处理人员" + }; + } + var request = new DispatchReq { AcceptTypeCode = typeCode, @@ -210,7 +234,7 @@ public class SpiderServices HandlerId = handlerId, TypeCode = typeCode }; - var dispatchPath = string.Format(OptionsMonitor.CurrentValue.DiposeOrderUrl, caseNumber); + var dispatchPath = string.Format(GetClientOptions.DiposeOrderUrl, caseNumber); var response = await client.PostAsync(dispatchPath, new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json")); @@ -222,7 +246,8 @@ public class SpiderServices { if (spiderRes?.code == 0) { - _logger.LogInformation("成功分发任务"); + var msg = $"成功分发任务,任务编号:{caseNumber},任务地址:{cameraName},任务类型:{typeCode},处理人:{userRealName}"; + _logger.LogInformation(msg); return new SpiderResponse() { @@ -259,7 +284,7 @@ public class SpiderServices //Region为请求文件接口需要的参数,根据调用接口参数而定 form.Add(new StringContent(caseNumber), "caseNumber"); form.Add(new StringContent(suggestion), "suggestion"); - var closeFile = OptionsMonitor.CurrentValue.CloseFileUrl; + var closeFile = GetClientOptions.CloseFileUrl; var response = await client.PostAsync(closeFile, form); var respJsonStr = await response.Content.ReadAsStringAsync(); @@ -290,9 +315,9 @@ public class SpiderServices Message = "结案失败" }; } - + //api/galaxy/v1/device/cameras:search - public async Task>> GetCameras() + public async Task>> GetCameras(string? name = null) { var token = await GetToken(); using var client = _httpClientFactory.CreateClient(); @@ -301,10 +326,10 @@ public class SpiderServices client.DefaultRequestHeaders.Add("client-app-id", "megcity-web"); client.DefaultRequestHeaders.Add("module-alias", "pending-forward"); client.DefaultRequestHeaders.Add("module-source", "megcity-web"); - var request = @" - {""managementIds"":[""6e9232ef-7b84-11e8-86b1-6c92bf4e6960""],""action"":""all"",""pageNo"":1,""pageSize"":200} + var request = $@" + {{""managementIds"":[""6e9232ef-7b84-11e8-86b1-6c92bf4e6960""],""name"":""{name}"" ,""action"":""all"",""pageNo"":1,""pageSize"":200}} "; - var getCamersPath = OptionsMonitor.CurrentValue.GetCamerasUrl; + var getCamersPath = GetClientOptions.GetCamerasUrl; var response = await client.PostAsync(getCamersPath, new StringContent(request, Encoding.UTF8, "application/json")); var respJsonStr = await response.Content.ReadAsStringAsync(); @@ -315,6 +340,13 @@ public class SpiderServices if (spiderRes?.Code == 0) { _logger.LogInformation("成功获取监控结果"); + foreach (var record in spiderRes.Data.Records) + { + _logger.LogInformation("摄像头: {name}", record.name); + var transferRes = GpsUtil.BaiduToGaode(record.lat, record.lon); + record.lat = transferRes.Item1; + record.lon = transferRes.Item2; + } return new SpiderResponse>() { @@ -334,4 +366,24 @@ public class SpiderServices Message = "获取摄像头失败" }; } + + public async Task<(string userId, string userRealName )> GetUserIdByCamera(string cameraAddress) + { + var camerasResp = await GetCameras(cameraAddress); + var camera = camerasResp.Result?.Records.FirstOrDefault(); + if (camera == null) return (string.Empty, string.Empty); + var location = new Points(camera.lon, camera.lat); + var db = _serviceProvider.GetRequiredService(); + var polygonDb = db.GetCollection(); + var polygons = polygonDb.FindAll(); + foreach (var polygon in polygons) + { + if (location.IsPointInsidePolygon(polygon)) + { + return (polygon.UserId, polygon.UserName); + } + } + + return (string.Empty, string.Empty); + } } \ No newline at end of file diff --git a/AutoDispathingWork/Utils/GpsUtlity.cs b/AutoDispathingWork/Utils/GpsUtlity.cs index 8d9be5f..d68c8f1 100644 --- a/AutoDispathingWork/Utils/GpsUtlity.cs +++ b/AutoDispathingWork/Utils/GpsUtlity.cs @@ -141,6 +141,19 @@ namespace AutoDispathingWork.Utils double[] gps = { tempLat, tempLon }; return gps; } + + public static Tuple BaiduToGaode(double bdLat, double bdLng) + { + double x = bdLng - 0.0065; + double y = bdLat - 0.006; + double z = Math.Sqrt(x * x + y * y) - 0.00002 * Math.Sin(y * Math.PI); + double theta = Math.Atan2(y, x) - 0.000003 * Math.Cos(x * Math.PI); + double ggLng = z * Math.Cos(theta); + double ggLat = z * Math.Sin(theta); + + return Tuple.Create(ggLat, ggLng); + } + /// /// gps84转为bd09 diff --git a/AutoDispathingWork/Utils/StaticServiceProvider.cs b/AutoDispathingWork/Utils/StaticServiceProvider.cs new file mode 100644 index 0000000..7b90306 --- /dev/null +++ b/AutoDispathingWork/Utils/StaticServiceProvider.cs @@ -0,0 +1,34 @@ +using LiteDB; +using WorkerService1.Domains; + +namespace AutoDispathingWork.Utils; + +public class StaticServiceProvider +{ + public static void SetServiceProvider(IServiceProvider serviceProvider) + { + Current = serviceProvider; + } + + private static IServiceProvider Current { get; set; } + + public static T GetRequiredService() + { + return Current.GetRequiredService(); + } + + public static T? GetService() + { + return Current.GetService(); + } + + public static ILiteCollection GetLogDb() + { + return Current.GetRequiredService().GetCollection(); + } + + public static ILogger GetLogger(string methodName) + { + return Current.GetRequiredService().CreateLogger(methodName); + } +} \ No newline at end of file diff --git a/AutoDispathingWork/Utils/Utilities.cs b/AutoDispathingWork/Utils/Utilities.cs index 8c46082..8642d08 100644 --- a/AutoDispathingWork/Utils/Utilities.cs +++ b/AutoDispathingWork/Utils/Utilities.cs @@ -1,4 +1,7 @@ -using WorkerService1.Domains; +using GeoAPI.Geometries; +using NetTopologySuite.Geometries; +using WorkerService1.Domains; +using Polygon = WorkerService1.Domains.Polygon; namespace WorkerService1.Utils; @@ -6,34 +9,27 @@ public static class Utilities { public static bool IsPointInsidePolygon(this Points point, Polygon polygon) { - // 使用射线交叉法判断点是否在多边形内 - int count = 0; - double x0 = point.X; - double y0 = point.Y; - for (int i = 0; i < polygon.Points.Count; i++) + if (polygon.Points == null) return false; + var testPoint = new Coordinate(point.X, point.Y); + foreach (var points in polygon.Points) { - var currentPolygon = polygon.Points[i]; - for (int i2 = 0; i2 < currentPolygon.Count; i2++) - { - int next = (i2 + 1) % currentPolygon.Count; - int prev = (i2 - 1 + currentPolygon.Count) % currentPolygon.Count; - double x1 = currentPolygon[next].X; - double y1 = currentPolygon[next].Y; - double x2 = currentPolygon[prev].X; - double y2 = currentPolygon[prev].Y; - if (((y1 > y0) && (y2 <= y0)) || ((y2 > y0) && (y1 <= y0))) - { - double intersection = (x1 - x2) * (y0 - y2) / (y1 - y2) + x2; - if (x0 < intersection) - { - count++; - } - } - } - - if (count % 2 == 1) return true; + var polygonPoints = points.Select(x => new Coordinate(x.X, x.Y)).ToArray(); + var isInside = IsPointInsidePolygon(testPoint, polygonPoints); + if (isInside) return true; } return false; } + + + public static bool IsPointInsidePolygon(Coordinate testPoint, Coordinate[] polygonPoints) + { + var geometryFactory = new GeometryFactory(); + var testPointGeom = geometryFactory.CreatePoint(testPoint); + + var linearRing = new LinearRing(polygonPoints.Append(polygonPoints.First()).ToArray()); + var polygon = geometryFactory.CreatePolygon(linearRing); + + return polygon.Intersects(testPointGeom); + } } \ No newline at end of file diff --git a/AutoDispathingWork/Worker.cs b/AutoDispathingWork/Worker.cs index 3db89c0..65b5fc6 100644 --- a/AutoDispathingWork/Worker.cs +++ b/AutoDispathingWork/Worker.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Options; +using WorkerService1.Domains; using WorkerService1.Dto.Configuration; using WorkerService1.Services; @@ -10,7 +11,7 @@ public class Worker : BackgroundService private readonly SpiderServices _spiderServices; private readonly IServiceProvider _serviceProvider; - public Worker(ILogger logger,IServiceProvider serviceProvider, SpiderServices spiderServices) + public Worker(ILogger logger, IServiceProvider serviceProvider, SpiderServices spiderServices) { _logger = logger; _serviceProvider = serviceProvider; @@ -21,24 +22,26 @@ public class Worker : BackgroundService { while (!stoppingToken.IsCancellationRequested) { + using var scope = _serviceProvider.CreateScope(); + var settingServices = scope.ServiceProvider.GetRequiredService(); + var options = settingServices.GetClientOptions(); if (_logger.IsEnabled(LogLevel.Information)) { - _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); + _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now.LocalDateTime); } try { - await Handle(); + if (options.DispatchingRunning) + await Handle(); } catch (Exception e) { - _logger.LogError("执行控制器发生错误,错误信息:ex{}", e.StackTrace); + $"执行控制器发生错误,错误信息:ex{e.StackTrace}".Error(); } finally { - using var scope = _serviceProvider.CreateScope(); - var options = scope.ServiceProvider.GetRequiredService>(); - await Task.Delay(options.CurrentValue.Delay, stoppingToken); + await Task.Delay(options.Delay, stoppingToken); } } } @@ -54,15 +57,24 @@ public class Worker : BackgroundService { //处理逻辑 //1.查询角色是 城管?的用户 - var users = await _spiderServices.GetUsers(); - var cityManager = users.Result?.Records; - if (cityManager?.Any() ?? false) + // var users = await _spiderServices.GetUsers(); + // var cityManager = users.Result?.Records; + // if (cityManager?.Any() ?? false) + // { + foreach (var item in needDispose) { - foreach (var item in needDispose) + //2.进行派单操作 + var result = + await _spiderServices.DispatchTask(item.caseNumber, item.address, item.typeCode); + if (result.IsSuccess) { - //2.进行派单操作 - var result = - await _spiderServices.DispatchTask(item.caseNumber, cityManager.First().Id, item.typeCode); + var message = $"成功派发任务,任务编号:{item.caseNumber},任务地址:{item.address},任务类型:{item.typeCode}"; + message.Info(); + } + else + { + var message = $"派发任务失败,错误信息:{result.Message}"; + message.Error(); } } } diff --git a/AutoDispathingWork/appsettings.json b/AutoDispathingWork/appsettings.json index 877a046..12c6ea4 100644 --- a/AutoDispathingWork/appsettings.json +++ b/AutoDispathingWork/appsettings.json @@ -17,6 +17,8 @@ "GetTaskApi": "api/megcity/v1/events/queryByWaterFall", "GetUserApi": "api/galaxy/v1/auth/users/query", "DiposeOrder": "api/megcity/v1/events/dispatch/{0}", - "CloseFileApi": "api/megcity/v1/events/pass" + "CloseFileApi": "api/megcity/v1/events/pass", + "GetCamerasApi": "api/galaxy/v1/device/cameras:search", + "IsRunning": false } } diff --git a/TestProject1/GlobalUsings.cs b/TestProject1/GlobalUsings.cs new file mode 100644 index 0000000..ab67c7e --- /dev/null +++ b/TestProject1/GlobalUsings.cs @@ -0,0 +1 @@ +global using Microsoft.VisualStudio.TestTools.UnitTesting; \ No newline at end of file diff --git a/TestProject1/TestProject1.csproj b/TestProject1/TestProject1.csproj new file mode 100644 index 0000000..23933e3 --- /dev/null +++ b/TestProject1/TestProject1.csproj @@ -0,0 +1,24 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + diff --git a/TestProject1/UnitTest1.cs b/TestProject1/UnitTest1.cs new file mode 100644 index 0000000..c8816f8 --- /dev/null +++ b/TestProject1/UnitTest1.cs @@ -0,0 +1,38 @@ +using NetTopologySuite.Geometries; +using NetTopologySuite.Operation.Overlay; +using WorkerService1.Domains; +using WorkerService1.Utils; +using Polygon = WorkerService1.Domains.Polygon; + +namespace TestProject1; + +[TestClass] +public class UnitTest1 +{ + [TestMethod] + public void TestMethod1() + { + Points points = new Points(121.43779625955115, 31.26871446396198); + Polygon polygon = new Polygon() + { + Name = "", + Points = new List> + { + new List + { + new(121.435776, 31.269835), + new(121.435361, 31.268672), + new Points(121.435854, 31.267829), + new Points(121.439541, 31.268048), + new Points(121.439324, 31.269312), + } + } + }; + + var res = Utilities.IsPointInsidePolygon(points, polygon); + + + } + + +} \ No newline at end of file