From 042ab498ee53e8f3c7cecf52f733e8c1c162dfb5 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 03 三月 2025 10:39:47 +0800 Subject: [PATCH] 修改模型3的bug --- guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java | 3 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java | 183 ++++++++++++++++++++++----------------------- guns-admin/src/main/resources/application.yml | 26 +++--- 3 files changed, 106 insertions(+), 106 deletions(-) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java index 643f990..fe751f3 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java @@ -188,89 +188,87 @@ } taskDetail.setStatus(2); taskDetailService.updateById(taskDetail); - PatrolTask patrolTask = this.selectById(taskDetail.getPatrolTaskId()); - - //获取所有在线车船 - //2018年协议车辆在线 - List<VehicleOnline> vehicleOnlines2018 = VideoGateway.queryRuntimeInfoByCache(0); - //2023年协议车辆在线 - List<VehicleOnline> vehicleOnlines203 = VideoGateway.locationRealTimeInfoCache(0); - - //获取当前任务中的车船信息 - List<TaskDetailVehicles> taskDetailVehicles = taskDetailVehiclesService.selectList(new EntityWrapper<TaskDetailVehicles>().eq("task_detail_id", id)); - //根据车辆数量,分组线程数 - int num; - int threadCount; - if(taskDetailVehicles.size() <= maxThreadCount){ - threadCount = taskDetailVehicles.size(); - num = 1; - }else{ - num = taskDetailVehicles.size() / maxThreadCount; - if(taskDetailVehicles.size() % maxThreadCount > 0){ - num++; + if(!patrolTask.getImageModel().equals(ImageModelEnum.CONSTRUCTION_WASTE_LOAD.getCode())){ + //获取所有在线车船 + //2018年协议车辆在线 + List<VehicleOnline> vehicleOnlines2018 = VideoGateway.queryRuntimeInfoByCache(0); + //2023年协议车辆在线 + List<VehicleOnline> vehicleOnlines203 = VideoGateway.locationRealTimeInfoCache(0); + + //获取当前任务中的车船信息 + List<TaskDetailVehicles> taskDetailVehicles = taskDetailVehiclesService.selectList(new EntityWrapper<TaskDetailVehicles>().eq("task_detail_id", id)); + //根据车辆数量,分组线程数 + int num; + int threadCount; + if(taskDetailVehicles.size() <= maxThreadCount){ + threadCount = taskDetailVehicles.size(); + num = 1; + }else{ + num = taskDetailVehicles.size() / maxThreadCount; + if(taskDetailVehicles.size() % maxThreadCount > 0){ + num++; + } + threadCount = taskDetailVehicles.size() / num; + if(taskDetailVehicles.size() % num > 0){ + threadCount++; + } } - threadCount = taskDetailVehicles.size() / num; - if(taskDetailVehicles.size() % num > 0){ - threadCount++; - } - } - - //定义线程池 - ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(threadCount, threadCount, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); - //定义多线程阻塞 - CountDownLatch countDownLatch = new CountDownLatch(threadCount); - for (int i = 0; i < threadCount; i++) { - int start = i * num; - int end = (i + 1) * num; - if((i + 1) == threadCount){ - end = taskDetailVehicles.size(); - } - List<TaskDetailVehicles> vehicles = taskDetailVehicles.subList(start, end); - threadPoolExecutor.execute(new Runnable() { - @Override - public void run() { - for (TaskDetailVehicles taskDetailVehicle : vehicles) { - try { - taskDetailVehicle.setStartExecutionTime(LocalDateTime.now()); - Integer taskDetailVehicleId = taskDetailVehicle.getId(); - //车船类型:1 车辆设备 2 船舶设备 - Integer vehicleType = taskDetailVehicle.getVehicleType(); - //车船id - Integer vehicleId = taskDetailVehicle.getVehicleId(); - VehicleOnline vehicleOnline1 = null; - for (VehicleOnline vehicleOnline : vehicleOnlines2018) { - if(null != vehicleOnline.getVehicleId() && vehicleOnline.getVehicleId().equals(vehicleId) && - null != vehicleOnline.getVehicleType() && vehicleOnline.getVehicleType().equals(vehicleType)){ - vehicleOnline1 = vehicleOnline; - String vehicleGpsProtocol = vehicleOnline.getVehicleGpsProtocol(); - vehicleOnline1.setVehicleGpsProtocol("808-guangzhou".equals(vehicleGpsProtocol) ? "1" : "2"); - break; - } - } - if(null == vehicleOnline1){ - for (VehicleOnline vehicleOnline : vehicleOnlines203) { + + //定义线程池 + ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(threadCount, threadCount, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()); + //定义多线程阻塞 + CountDownLatch countDownLatch = new CountDownLatch(threadCount); + for (int i = 0; i < threadCount; i++) { + int start = i * num; + int end = (i + 1) * num; + if((i + 1) == threadCount){ + end = taskDetailVehicles.size(); + } + List<TaskDetailVehicles> vehicles = taskDetailVehicles.subList(start, end); + threadPoolExecutor.execute(new Runnable() { + @Override + public void run() { + for (TaskDetailVehicles taskDetailVehicle : vehicles) { + try { + taskDetailVehicle.setStartExecutionTime(LocalDateTime.now()); + Integer taskDetailVehicleId = taskDetailVehicle.getId(); + //车船类型:1 车辆设备 2 船舶设备 + Integer vehicleType = taskDetailVehicle.getVehicleType(); + //车船id + Integer vehicleId = taskDetailVehicle.getVehicleId(); + VehicleOnline vehicleOnline1 = null; + for (VehicleOnline vehicleOnline : vehicleOnlines2018) { if(null != vehicleOnline.getVehicleId() && vehicleOnline.getVehicleId().equals(vehicleId) && null != vehicleOnline.getVehicleType() && vehicleOnline.getVehicleType().equals(vehicleType)){ vehicleOnline1 = vehicleOnline; - vehicleOnline1.setVehicleGpsProtocol(vehicleOnline.getVehicleGpsProtocol()); + String vehicleGpsProtocol = vehicleOnline.getVehicleGpsProtocol(); + vehicleOnline1.setVehicleGpsProtocol("808-guangzhou".equals(vehicleGpsProtocol) ? "1" : "2"); break; } } - } - //不在线 - if(null == vehicleOnline1){ - taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); - taskDetailVehicle.setStatus(4); + if(null == vehicleOnline1){ + for (VehicleOnline vehicleOnline : vehicleOnlines203) { + if(null != vehicleOnline.getVehicleId() && vehicleOnline.getVehicleId().equals(vehicleId) && + null != vehicleOnline.getVehicleType() && vehicleOnline.getVehicleType().equals(vehicleType)){ + vehicleOnline1 = vehicleOnline; + vehicleOnline1.setVehicleGpsProtocol(vehicleOnline.getVehicleGpsProtocol()); + break; + } + } + } + //不在线 + if(null == vehicleOnline1){ + taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); + taskDetailVehicle.setStatus(4); + taskDetailVehiclesService.updateById(taskDetailVehicle); + continue; + } + taskDetailVehicle.setVehicleGpsProtocol(vehicleOnline1.getVehicleGpsProtocol()); + taskDetailVehicle.setTerminalId(vehicleOnline1.getTerminalId()); + taskDetailVehicle.setStatus(2); taskDetailVehiclesService.updateById(taskDetailVehicle); - continue; - } - taskDetailVehicle.setVehicleGpsProtocol(vehicleOnline1.getVehicleGpsProtocol()); - taskDetailVehicle.setTerminalId(vehicleOnline1.getTerminalId()); - taskDetailVehicle.setStatus(2); - taskDetailVehiclesService.updateById(taskDetailVehicle); - //非倾倒模型,建筑垃圾倾倒模型由网关接口触发判断执行结果 - if(!patrolTask.getImageModel().equals(ImageModelEnum.CONSTRUCTION_WASTE_LOAD.getCode())){ + //成功 List<TaskDetailVehiclesChannel> taskDetailVehiclesChannels = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("task_detail_vehicles_id", taskDetailVehicleId)); //开始发送拍照指令,获取照片地址 @@ -328,28 +326,29 @@ taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); taskDetailVehicle.setStatus(3); taskDetailVehiclesService.updateById(taskDetailVehicle); + }catch (Exception e){ + e.printStackTrace(); + //失败 + taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); + taskDetailVehicle.setStatus(5); + taskDetailVehiclesService.updateById(taskDetailVehicle); } - }catch (Exception e){ - e.printStackTrace(); - //失败 - taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); - taskDetailVehicle.setStatus(5); - taskDetailVehiclesService.updateById(taskDetailVehicle); } + //当前线程执行完成后减少等待数 + countDownLatch.countDown(); } - //当前线程执行完成后减少等待数 - countDownLatch.countDown(); - } - }); + }); + } + try { + countDownLatch.await(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + int count = taskDetailVehiclesService.selectCount(new EntityWrapper<TaskDetailVehicles>().eq("task_detail_id", id).eq("status", 5)); + taskDetail.setStatus(count > 0 ? 4 : 3); + taskDetailService.updateById(taskDetail); } - try { - countDownLatch.await(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - int count = taskDetailVehiclesService.selectCount(new EntityWrapper<TaskDetailVehicles>().eq("task_detail_id", id).eq("status", 5)); - taskDetail.setStatus(count > 0 ? 4 : 3); - taskDetailService.updateById(taskDetail); + } diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java index 27efdc0..bbf43c0 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java @@ -86,11 +86,12 @@ */ @Override public void delTaskDetail(List<String> ids) { - this.baseMapper.deleteBatchIds(ids); List<TaskDetail> taskDetails = this.selectBatchIds(ids); for (TaskDetail taskDetail : taskDetails) { JobKey jobKey = new JobKey(taskDetail.getId().toString()); quartzUtil.deleteQuartzTask(jobKey); + taskDetail.setDelFlag(1); + this.updateById(taskDetail); } } diff --git a/guns-admin/src/main/resources/application.yml b/guns-admin/src/main/resources/application.yml index afa936c..93f52c8 100644 --- a/guns-admin/src/main/resources/application.yml +++ b/guns-admin/src/main/resources/application.yml @@ -45,23 +45,23 @@ --- -spring: - datasource: - url: jdbc:mysql://127.0.0.1:3306/vehicle_inspection?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai - username: root - password: 123456 - db-name: vehicle_inspection #用来搜集数据库的所有表 - filters: wall,mergeStat - -#线上环境 #spring: # datasource: -# url: jdbc:mysql://rm-m5e57gbu0gdv901ub.mysql.rds.aliyuncs.com:3306/vehicle_inspection?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai -# username: vehicleInspection -# password: SYzt1953123456 -# db-name: guns #用来搜集数据库的所有表 +# url: jdbc:mysql://127.0.0.1:3306/vehicle_inspection?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# db-name: vehicle_inspection #用来搜集数据库的所有表 # filters: wall,mergeStat +#线上环境 +spring: + datasource: + url: jdbc:mysql://rm-m5e57gbu0gdv901ub.mysql.rds.aliyuncs.com:3306/vehicle_inspection?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai + username: vehicleInspection + password: SYzt1953123456 + db-name: guns #用来搜集数据库的所有表 + filters: wall,mergeStat + #多数据源情况的配置 guns: -- Gitblit v1.7.1