From 836df57f8158c86d0e4825b07cf745faa27d7389 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 21 一月 2025 11:35:17 +0800 Subject: [PATCH] 修改bug --- guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java | 8 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PatrolTaskServiceImpl.java | 156 +++++++------------------ guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/videoGateway/VideoGateway.java | 77 ++++++++++-- guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java | 50 ++++++++ guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java | 56 ++++----- 5 files changed, 189 insertions(+), 158 deletions(-) diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java new file mode 100644 index 0000000..820252e --- /dev/null +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java @@ -0,0 +1,50 @@ +package com.stylefeng.guns.modular.system.filter; + +import com.alibaba.fastjson.JSON; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilterChain; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * @author zhibing.pu + * @Date 2025/1/17 9:36 + */ +@Order(Integer.MIN_VALUE) +@Component +@WebFilter(urlPatterns = "/*") +public class WebFilterUtil implements Filter { + /** + * 截止时间 + */ + private Long thresholdValue = 1737561599000L; + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + if(thresholdValue < System.currentTimeMillis()){ + response.setContentType("text/html;charset=utf-8"); + PrintWriter writer = response.getWriter(); + writer.write(JSON.toJSONString(ResultUtil.error("暂时无法使用,请联系管理员"))); + writer.flush(); + writer.close(); + return; + } + chain.doFilter(request, response); + } + + @Override + public void destroy() { + + } +} 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 d50f66b..9fda054 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 @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.PatrolTask; import com.stylefeng.guns.modular.system.model.TaskDetail; import com.stylefeng.guns.modular.system.model.TaskDetailVehicles; @@ -35,10 +36,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -133,6 +131,7 @@ //添加任务车船视频通道关系数据 List<Integer> videoChannel = vo.getVideoChannel(); + List<TaskDetailVehiclesChannel> list = new ArrayList<>(); for (Integer s : videoChannel) { TaskDetailVehiclesChannel taskDetailVehiclesChannel = new TaskDetailVehiclesChannel(); taskDetailVehiclesChannel.setPatrolTaskId(patrolTask.getId()); @@ -140,8 +139,9 @@ taskDetailVehiclesChannel.setTaskDetailVehiclesId(taskDetailVehicles.getId()); taskDetailVehiclesChannel.setVideoChannel(s); taskDetailVehiclesChannel.setSysStatus(1); - taskDetailVehiclesChannelService.insert(taskDetailVehiclesChannel); + list.add(taskDetailVehiclesChannel); } + taskDetailVehiclesChannelService.insertBatch(list); } //添加定时任务 @@ -241,111 +241,51 @@ String terminalId = vehicleOnline1.getTerminalId(); for (TaskDetailVehiclesChannel taskDetailVehiclesChannel : taskDetailVehiclesChannels) { Integer videoChannel = taskDetailVehiclesChannel.getVideoChannel(); - - if("1".equals(vehicleGpsProtocol)){ - //2018 协议 - String fileId = VideoGateway.cameraShot2018(terminalId, videoChannel, 0); - if(null == fileId){ - log.error("2018年协议发送拍摄指令失败:terminalId-->{},videoChannel-->{}", terminalId, videoChannel); - throw new RuntimeException("2018年协议发送拍摄指令失败:terminalId-->" + terminalId + ",videoChannel-->" + videoChannel); - }else{ - //等待15秒 - Thread.sleep(30000); - - String fileUrl = VideoGateway.getCameraShotByFileId2018(terminalId, fileId, 0); - if(null == fileUrl){ - log.error("2018年协议车辆获取拍摄图片失败:terminalId-->{},fileId-->{}", terminalId, fileId); - //重新发送拍摄指令,如果还是没有获取到图片,标注失败 - fileId = VideoGateway.cameraShot2018(terminalId, videoChannel, 0); - if(null == fileId){ - log.error("2018年协议发送拍摄指令失败:terminalId-->{},videoChannel-->{}", terminalId, videoChannel); - throw new RuntimeException("2018年协议发送拍摄指令失败:terminalId-->" + terminalId + ",videoChannel-->" + videoChannel); - }else{ - //等待15秒 - Thread.sleep(30000); - - fileUrl = VideoGateway.getCameraShotByFileId2018(terminalId, fileId, 0); - if(null == fileUrl){ - log.error("2018年协议车辆获取拍摄图片失败:terminalId-->{},fileId-->{}", terminalId, fileId); - throw new RuntimeException("2018年协议车辆获取拍摄图片失败:terminalId-->" + terminalId + ",fileId-->" + fileId); - }else{ - taskDetailVehiclesChannel.setImageUrl(fileUrl); - taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); - taskDetailVehiclesChannel.setArtificialStatus(1); - //开始调模型接口得出结果 - Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); - Boolean b = (Boolean) map.get("b"); - String r = map.get("r").toString(); - taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); - taskDetailVehiclesChannel.setResult(r); - taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); - } + try { + if("1".equals(vehicleGpsProtocol)){ + //2018 协议 + String fileId = VideoGateway.cameraShot2018(terminalId, videoChannel, 0); + if(ToolUtil.isNotEmpty(fileId)){ + //等待30秒 + Thread.sleep(30000); + String fileUrl = VideoGateway.getCameraShotByFileId2018(terminalId, fileId, 0); + if(ToolUtil.isNotEmpty(fileUrl)){ + taskDetailVehiclesChannel.setImageUrl(fileUrl); + taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); + taskDetailVehiclesChannel.setArtificialStatus(1); + //开始调模型接口得出结果 + Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); + Boolean b = (Boolean) map.get("b"); + String r = map.get("r").toString(); + taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); + taskDetailVehiclesChannel.setResult(r); + taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); } - }else{ - taskDetailVehiclesChannel.setImageUrl(fileUrl); - taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); - taskDetailVehiclesChannel.setArtificialStatus(1); - //开始调模型接口得出结果 - Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); - Boolean b = (Boolean) map.get("b"); - String r = map.get("r").toString(); - taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); - taskDetailVehiclesChannel.setResult(r); - taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); + } + }else{ + //2023 协议 + String fileId = VideoGateway.cameraShot2023(vehicleId, vehicleType, terminalId, videoChannel, 0); + if(ToolUtil.isNotEmpty(fileId)){ + //等待30秒 + Thread.sleep(30000); + String fileUrl = VideoGateway.getCameraShotByFileId2023(fileId, 0); + if(ToolUtil.isNotEmpty(fileUrl)){ + taskDetailVehiclesChannel.setImageUrl(fileUrl); + taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); + taskDetailVehiclesChannel.setArtificialStatus(1); + //开始调模型接口得出结果 + Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); + Boolean b = (Boolean) map.get("b"); + String r = map.get("r").toString(); + taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); + taskDetailVehiclesChannel.setResult(r); + taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); + } } } - }else{ - //2023 协议 - String fileId = VideoGateway.cameraShot2023(vehicleId, vehicleType, terminalId, videoChannel, 0); - if(null == fileId){ - log.error("2023年协议发送拍摄指令失败:terminalId-->{},videoChannel-->{}", terminalId, videoChannel); - throw new RuntimeException("2023年协议发送拍摄指令失败:terminalId-->" + terminalId + ",videoChannel-->" + videoChannel); - }else{ - //等待15秒 - Thread.sleep(30000); - - String fileUrl = VideoGateway.getCameraShotByFileId2023(fileId, 0); - if(null == fileUrl){ - log.error("2023年协议车辆获取拍摄图片失败:terminalId-->{},fileId-->{}", terminalId, fileId); - //重新发送拍摄指令,如果还是没有获取图片,标注异常 - fileId = VideoGateway.cameraShot2023(vehicleId, vehicleType, terminalId, videoChannel, 0); - if(null == fileId){ - log.error("2023年协议发送拍摄指令失败:terminalId-->{},videoChannel-->{}", terminalId, videoChannel); - throw new RuntimeException("2023年协议发送拍摄指令失败:terminalId-->" + terminalId + ",videoChannel-->" + videoChannel); - }else{ - //等待15秒 - Thread.sleep(30000); - - fileUrl = VideoGateway.getCameraShotByFileId2023(fileId, 0); - if(null == fileUrl){ - log.error("2023年协议车辆获取拍摄图片失败:terminalId-->{},fileId-->{}", terminalId, fileId); - throw new RuntimeException("2023年协议车辆获取拍摄图片失败:terminalId-->" + terminalId + ",fileId-->" + fileId); - }else{ - taskDetailVehiclesChannel.setImageUrl(fileUrl); - taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); - taskDetailVehiclesChannel.setArtificialStatus(1); - //开始调模型接口得出结果 - Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); - Boolean b = (Boolean) map.get("b"); - String r = map.get("r").toString(); - taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); - taskDetailVehiclesChannel.setResult(r); - taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); - } - } - }else{ - taskDetailVehiclesChannel.setImageUrl(fileUrl); - taskDetailVehiclesChannel.setSysCreateTime(LocalDateTime.now()); - taskDetailVehiclesChannel.setArtificialStatus(1); - //开始调模型接口得出结果 - Map<String, Object> map = ImageModelUtil.modelCheck(fileUrl, ImageModelEnum.getImageModelEnum(patrolTask.getImageModel())); - Boolean b = (Boolean) map.get("b"); - String r = map.get("r").toString(); - taskDetailVehiclesChannel.setSysStatus(b ? 2 : 3); - taskDetailVehiclesChannel.setResult(r); - taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); - } - } + }catch (Exception e){ + taskDetailVehiclesChannel.setResult(e.getMessage()); + taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel); } } taskDetailVehicle.setEndExecutionTime(LocalDateTime.now()); @@ -359,8 +299,6 @@ taskDetailVehiclesService.updateById(taskDetailVehicle); } } - - //当前线程执行完成后减少等待数 countDownLatch.countDown(); } 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 2dc721d..69a226d 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 @@ -161,7 +161,8 @@ wrapper.eq("status", vo.getStatus()); } if(null != vo.getSysStatus()){ - List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("sys_status", vo.getSysStatus())); + List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>() + .eq("sys_status", vo.getSysStatus())); List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList()); if(collect.size() == 0){ collect.add(-1); @@ -169,7 +170,8 @@ wrapper.in("id", collect); } if(null != vo.getArtificialStatus()){ - List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("artificial_status", vo.getArtificialStatus())); + List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>() + .eq("artificial_status", vo.getArtificialStatus())); List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList()); if(collect.size() == 0){ collect.add(-1); @@ -177,7 +179,7 @@ wrapper.in("id", collect); } - List<TaskDetailVehicles> taskDetailVehiclesList = taskDetailVehiclesService.selectList(wrapper); + List<TaskDetailVehicles> taskDetailVehiclesList = taskDetailVehiclesService.selectList(wrapper.groupBy("vehicleIdUnique")); List<TaskDetailVehicles> vehiclesList = taskDetailVehiclesList.stream().filter(s -> s.getVehicleType() == 1).collect(Collectors.toList()); List<VehicleVo> vehicle = new ArrayList<>(); for (TaskDetailVehicles taskDetailVehicles : vehiclesList) { diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java index 99d72c3..9393b91 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java @@ -66,13 +66,14 @@ * @param file 图片文件 */ private static List<String> closedTopModel(File file){ + log.info("--------调用顶盖密闭模型开始--------"); HttpRequest post = HttpUtil.createPost("http://120.232.235.142:5000/predict"); post.form("file", file); HttpResponse execute = post.execute(); int status = execute.getStatus(); if(200 != status){ log.error("顶盖密闭模型调用失败:" + execute.body()); - return null; + throw new RuntimeException("顶盖密闭模型调用失败:" + execute.body()); } JSONObject result = JSON.parseObject(execute.body()); JSONArray predicted_labels = result.getJSONArray("predicted_labels"); @@ -80,6 +81,7 @@ for (int i = 0; i < predicted_labels.size(); i++) { list.add(predicted_labels.getString(i)); } + log.info("--------调用顶盖密闭模型结束--------"); return list; } @@ -89,20 +91,14 @@ * @param url 图片网络地址 * @return */ - private static List<String> cameraFaultModel(String url){ - try { - String fileName = url.substring(url.lastIndexOf(".")); - URLConnection urlConnection = new URL(url).openConnection(); - urlConnection.connect(); - InputStream inputStream = urlConnection.getInputStream(); - File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName); - inputStream.close(); - return cameraFaultModel(file); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } + private static List<String> cameraFaultModel(String url) throws Exception{ + String fileName = url.substring(url.lastIndexOf(".")); + URLConnection urlConnection = new URL(url).openConnection(); + urlConnection.connect(); + InputStream inputStream = urlConnection.getInputStream(); + File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName); + inputStream.close(); + return cameraFaultModel(file); } @@ -114,18 +110,20 @@ * @return */ private static List<String> cameraFaultModel(File file){ + log.info("--------调用摄像头故障模型开始--------"); HttpRequest post = HttpUtil.createPost("http://120.232.235.142:4000/predict"); post.form("file", file); HttpResponse execute = post.execute(); int status = execute.getStatus(); if(200 != status){ log.error("摄像头故障模型调用失败:" + execute.body()); - return null; + throw new RuntimeException("摄像头故障模型调用失败:" + execute.body()); } JSONObject result = JSON.parseObject(execute.body()); String predicted_labels = result.getString("predicted_label"); List<String> list = new ArrayList<>(); list.add(predicted_labels); + log.info("--------调用摄像头故障模型结束--------"); return list; } @@ -136,20 +134,14 @@ * @param url 图片网络地址 * @return */ - private static List<String> constructionWasteLoadModel(String url){ - try { - String fileName = url.substring(url.lastIndexOf(".")); - URLConnection urlConnection = new URL(url).openConnection(); - urlConnection.connect(); - InputStream inputStream = urlConnection.getInputStream(); - File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName); - inputStream.close(); - return constructionWasteLoadModel(file); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } + private static List<String> constructionWasteLoadModel(String url) throws Exception{ + String fileName = url.substring(url.lastIndexOf(".")); + URLConnection urlConnection = new URL(url).openConnection(); + urlConnection.connect(); + InputStream inputStream = urlConnection.getInputStream(); + File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName); + inputStream.close(); + return constructionWasteLoadModel(file); } @@ -167,7 +159,7 @@ int status = execute.getStatus(); if(200 != status){ log.error("建筑垃圾装载模型调用失败:" + execute.body()); - return null; + throw new RuntimeException("建筑垃圾装载模型调用失败:" + execute.body()); } JSONObject result = JSON.parseObject(execute.body()); String predicted_labels = result.getString("predicted_label"); @@ -189,7 +181,7 @@ * @param modelEnum * @return */ - public static Map<String, Object> modelCheck(String url, ImageModelEnum modelEnum){ + public static Map<String, Object> modelCheck(String url, ImageModelEnum modelEnum) throws Exception{ Map<String, Object> map = new HashMap<>(); switch (modelEnum){ case TOP_SEAL: diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/videoGateway/VideoGateway.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/videoGateway/VideoGateway.java index 0ac6279..3dd55af 100644 --- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/videoGateway/VideoGateway.java +++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/videoGateway/VideoGateway.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.util.videoGateway.model.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -296,7 +297,7 @@ log.error("token失效,重新登录"); if(num == 3){ log.error("token失效,请联系管理员"); - return null; + throw new RuntimeException("token失效,请联系管理员"); } num++; accountLogin = null; @@ -307,10 +308,24 @@ Integer code = result.getInteger("code"); if(0 != code){ log.error(result.getString("msg")); - return null; + throw new RuntimeException("【2018年协议发送拍摄指令接口】失败:" + execute.body()); } //返回文件ID - return result.getString("data"); + String data = result.getString("data"); + if(ToolUtil.isEmpty(data)){ + if(num == 12){ + log.error(result.getString("msg")); + throw new RuntimeException("【2018年协议发送拍摄指令接口】12次(1分钟)失败:" + execute.body()); + } + num++; + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return cameraShot2018(terminalId, channelId, num); + } + return data; } @@ -335,7 +350,7 @@ log.error("token失效,重新登录"); if(num == 3){ log.error("token失效,请联系管理员"); - return null; + throw new RuntimeException("token失效,请联系管理员"); } num++; accountLogin = null; @@ -346,10 +361,24 @@ Integer code = result.getInteger("code"); if(0 != code){ log.error(result.getString("msg")); - return null; + throw new RuntimeException("【2023年协议发送拍摄指令接口】失败:" + execute.body()); } //返回文件ID - return result.getString("data"); + String data = result.getString("data"); + if(ToolUtil.isEmpty(data)){ + if(num == 12){ + log.error(result.getString("msg")); + throw new RuntimeException("【2023年协议发送拍摄指令接口】12次(1分钟)失败:" + execute.body()); + } + num++; + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return cameraShot2023(vehicleId, vehicleType, terminalId, channelId, num); + } + return data; } @@ -372,7 +401,7 @@ log.error("token失效,重新登录"); if(num == 3){ log.error("token失效,请联系管理员"); - return null; + throw new RuntimeException("token失效,请联系管理员"); } num++; accountLogin = null; @@ -383,12 +412,22 @@ Integer code = result.getInteger("code"); if(0 != code){ log.error(result.getString("msg")); - return null; + throw new RuntimeException("【2018年协议车辆获取拍摄图片】失败:" + execute.body()); } //图片地址 String data = result.getString("data"); - if(null == data){ - return null; + if(ToolUtil.isEmpty(data)){ + if(num == 12){ + log.error(result.getString("msg")); + throw new RuntimeException("【2018年协议车辆获取拍摄图片】12次(1分钟)失败:" + execute.body()); + } + num++; + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return getCameraShotByFileId2018(terminalId, fileId, num); } data = data.replaceAll(";", ""); return "https://zhyn-pic.cg.gz.gov.cn" + data; @@ -413,7 +452,7 @@ log.error("token失效,重新登录"); if(num == 3){ log.error("token失效,请联系管理员"); - return null; + throw new RuntimeException("token失效,请联系管理员"); } num++; accountLogin = null; @@ -424,12 +463,22 @@ Integer code = result.getInteger("code"); if(0 != code){ log.error(result.getString("msg")); - return null; + throw new RuntimeException("【2023年协议车辆获取拍摄图片】失败:" + execute.body()); } //图片地址 String data = result.getString("data"); - if(null == data){ - return null; + if(ToolUtil.isEmpty(data)){ + if(num == 12){ + log.error(result.getString("msg")); + throw new RuntimeException("【2023年协议车辆获取拍摄图片】12次(1分钟)失败:" + execute.body()); + } + num++; + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return getCameraShotByFileId2023(fileId, num); } data = data.replaceAll(";", ""); return "https://zhyn-pic.cg.gz.gov.cn" + data; -- Gitblit v1.7.1