From 76cca87db58db767193ee1617582f41f934aeefc Mon Sep 17 00:00:00 2001 From: zhangwenchao Date: Fri, 1 Nov 2024 10:29:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E7=9B=B8=E4=BD=8D=E5=B7=AE=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent/controller/RouteController.java | 26 ++++++++++--------- .../core/common/IErrorEnumImplOuter.java | 2 ++ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/controller/RouteController.java b/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/controller/RouteController.java index 1b2bf80af..548a94fa4 100644 --- a/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/controller/RouteController.java +++ b/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/controller/RouteController.java @@ -302,25 +302,27 @@ public class RouteController { * @Title: uploadConfigure * @Description: 计算实时相位差 */ - @GetMapping(value = "/route/realtimeoffset/{id}") - public RESTRetBase realtimeoffset(@PathVariable Long id) { + @GetMapping(value = "/route/realtimeoffset/{routeid}/{keyagentid}/{keyoffset}") + public RESTRetBase realtimeoffset(@PathVariable Long routeid,@PathVariable String keyagentid, @PathVariable int keyoffset) { List devList = new ArrayList<>(); - Route rr = routeDao.findById(id); + Route rr = routeDao.findById(routeid); Set routeIntersections = rr.getDevs(); - String keyAgentid = rr.getKeyintsid(); int keyCurtime = 0; int keyCycle = 0; + if( rr.getOptPatternList() == null ){ + return RESTRetUtils.errorObj(E_5008); + } + + + // 获取实时方案状态 for (RouteIntersection r : routeIntersections) { MessageData messageData = new MessageData(r.getAgentid(), CosntDataDefine.getrequest, "status/pattern", new JsonObject()); RESTRet retBase = messageService.postDevsMessage(messageData); - if (retBase.getCode().equals(Constants.SUCCESS_CODE)) { - return retBase; - } if(retBase.getData() == null){ InnerError innerError = RESTRetUtils.innerErrorObj(r.getAgentid(), IErrorEnumImplInner.E_201, null); return RESTRetUtils.errorDetialObj(E_4001,innerError); @@ -329,6 +331,9 @@ public class RouteController { InnerError innerError = RESTRetUtils.innerErrorObj(r.getAgentid(), IErrorEnumImplInner.E_201, null); return RESTRetUtils.errorDetialObj(E_4001,innerError); } + + + RealtimeOffset ro = new RealtimeOffset(); StatusPattern statusPattern = GsonUtil.getInstance().fromJson(retBase.getData().getData().getAsJsonObject(), StatusPattern.class); @@ -340,18 +345,15 @@ public class RouteController { devList.add(ro); - if( keyAgentid.equals( r.getAgentid() ) ){ + if( keyagentid.equals( r.getAgentid() ) ){ keyCycle = statusPattern.getCycle(); keyCurtime = statusPattern.getCurTime(); } } - int keyOffet = routeIntersections.stream().filter( - dev -> keyAgentid.equals(dev.getAgentid())).findFirst().get().getFeature().getPatternList().getAsJsonArray().get(0).getAsJsonObject().get("Offset").getAsInt(); - // 计算实时相位差 for( RealtimeOffset offset : devList ){ - int realoffset = offset.getCurtime() - keyCurtime + keyOffet; + int realoffset = offset.getCurtime() - keyCurtime + keyoffset; offset.setRealoffset( realoffset ); } diff --git a/OpenATC-Admin-server/core/src/main/java/com/openatc/core/common/IErrorEnumImplOuter.java b/OpenATC-Admin-server/core/src/main/java/com/openatc/core/common/IErrorEnumImplOuter.java index 51bcac14c..ab26bb6d2 100644 --- a/OpenATC-Admin-server/core/src/main/java/com/openatc/core/common/IErrorEnumImplOuter.java +++ b/OpenATC-Admin-server/core/src/main/java/com/openatc/core/common/IErrorEnumImplOuter.java @@ -97,6 +97,8 @@ public enum IErrorEnumImplOuter implements IErrorEnum { E_5004("5004", "Route exists pattern,can't modify!"), E_5005("5005", "Unsupported arterial traffic control strategy!"), E_5006("5006", "Key intersection id error!"), + E_5007("5007", "Key intersection is null!"), + E_5008("5008", "Route Pattern is null!"), //勤务路线错误 -- Gitee