diff --git a/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/service/impl/RouteServiceImpl.java b/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/service/impl/RouteServiceImpl.java index 19e2885b09356775493f5c4b3a29b81f94992629..1e6c8f54bd1d8c57287560713d0ec8dab21c4760 100644 --- a/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/service/impl/RouteServiceImpl.java +++ b/OpenATC-Admin-server/agent/src/main/java/com/openatc/agent/service/impl/RouteServiceImpl.java @@ -51,7 +51,8 @@ public class RouteServiceImpl implements RouteService { List optDevs = gson.fromJson(devJsonArray, new TypeToken>() {}.getType()); // 判断方案中的路口是否还存在 Iterator it = optDevs.iterator(); - int devindex = 0; + int devindex = 0; // 当前指向的索引 + int deleteNum = 0; // 已删除的路口数 while(it.hasNext()){ RouteIntersection optDev = it.next(); boolean isFinded = false; @@ -64,15 +65,40 @@ public class RouteServiceImpl implements RouteService { } } if(!isFinded){ - devJsonArray.remove(devindex); + devJsonArray.remove(devindex - deleteNum); + deleteNum++; } devindex++; } } - - // 2 新增的路口放入方案中 int routeDevsLen = routeDevs.size(); Object[] routeDevArray = routeDevs.toArray(); + + // 2 删除顺序改变的路口 + for( JsonElement je : optPatternList ) { + JsonArray devJsonArray = je.getAsJsonObject().get("devs").getAsJsonArray(); + List optDevs = gson.fromJson(devJsonArray, new TypeToken>() {}.getType()); + int optSize = optDevs.size(); + if( routeDevsLen < 1 || optSize == 0 ) continue; + + Iterator it = routeDevs.iterator(); + int devindex = 0; // 当前指向的索引 + int deleteNum = 0; // 已删除的路口数 + while(it.hasNext() && devindex < optSize) { + RouteIntersection routeDev = it.next(); + String route = routeDev.getAgentid(); + String optAgentid = optDevs.get(devindex).getAgentid(); + + if( ! optAgentid.equals( route ) ){ + devJsonArray.remove(devindex- deleteNum); + deleteNum++; + } + devindex++; + } + + } + + // 3 新增的路口放入方案中 for( JsonElement je : optPatternList ) { JsonArray devJsonArray = je.getAsJsonObject().get("devs").getAsJsonArray(); // 数量一样则说明没有新增 @@ -362,7 +388,7 @@ public class RouteServiceImpl implements RouteService { // 构建方案列表 // List patternList = gson.fromJson(feature.getPatternList(),new TypeToken>(){}.getType()); - String selectedPatternName = feature.getPatternList().getAsJsonObject().get("desc").getAsString(); + String selectedPatternName = feature.getPatternList().getAsJsonArray().get(0).getAsJsonObject().get("desc").getAsString(); // 下发方案参数 List patternListDownload = buildPatternList(originalFeature.getPatternList(),feature.getPatternList(),selectedPatternName,selectedPatternId,selectedPatternId); diff --git a/OpenATC-Admin-ui/OpenATC-Admin-web/package.json b/OpenATC-Admin-ui/OpenATC-Admin-web/package.json index a7e1a46dbac032b4ca261d9a0b9b0021afa0c350..aea388b6fcf2292905f2d8d11f666f7c42f964fc 100644 --- a/OpenATC-Admin-ui/OpenATC-Admin-web/package.json +++ b/OpenATC-Admin-ui/OpenATC-Admin-web/package.json @@ -51,7 +51,7 @@ "moment": "^2.29.1", "normalize.css": "7.0.0", "nprogress": "0.2.0", - "openatc-components": "0.3.19", + "openatc-components": "0.3.20", "postcss-pxtorem": "^5.0.0", "scss-loader": "0.0.1", "sortablejs": "^1.10.1", diff --git a/OpenATC-Admin-ui/OpenATC-Admin-web/src/assets/home/notification.svg b/OpenATC-Admin-ui/OpenATC-Admin-web/src/assets/home/notification.svg new file mode 100644 index 0000000000000000000000000000000000000000..4f507ab9918d29d549c30db9e6dc2fd3bcc64602 --- /dev/null +++ b/OpenATC-Admin-ui/OpenATC-Admin-web/src/assets/home/notification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/en.js b/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/en.js index ff076a557da3818ddc9bfeed3a410d80cdfb46f8..4430757cee518c5a37c1d88dfb9d61b3fa396b16 100644 --- a/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/en.js +++ b/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/en.js @@ -264,6 +264,7 @@ const en = { 'faultlist': 'Fault Center', 'confirm': 'Confirm', 'realtimealert': 'Real Time Alert', + 'notification': 'Notification', 'detaileddescription': 'Detailed Description', 'ioboard': 'I/O Board', 'faultboard': 'Fault Board', diff --git a/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/zh.js b/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/zh.js index 06a6b62a2903d00e83d3581971f7f3d034acf664..2b149fdcdf4479d9c133f40f2832ac68536153f2 100644 --- a/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/zh.js +++ b/OpenATC-Admin-ui/OpenATC-Admin-web/src/i18n/language/zh.js @@ -257,6 +257,7 @@ const zh = { 'createtime': '时间', 'roadname': '路口名称', 'realtimealert': '实时告警', + 'notification': '通知', 'neglect': '忽略', 'confirm': '确认', 'faultlist': '告警中心', diff --git a/OpenATC-Admin-ui/OpenATC-Admin-web/src/views/compose/components/Navbar.vue b/OpenATC-Admin-ui/OpenATC-Admin-web/src/views/compose/components/Navbar.vue index d48b07853a9345799d7debdd0a702c5d10b5e3ca..a4fa12faf2f5f93900831f8e090b1725ef44d191 100644 --- a/OpenATC-Admin-ui/OpenATC-Admin-web/src/views/compose/components/Navbar.vue +++ b/OpenATC-Admin-ui/OpenATC-Admin-web/src/views/compose/components/Navbar.vue @@ -764,9 +764,9 @@ export default { this.source = data.data.source this.createtime = data.data.createtime this.content = data.data.content - if (this.notifys) { - this.notifys.close() - } + // if (this.notifys) { + // this.notifys.close() + // } if (this.isOpen === 'true') { this.openSystem() } @@ -816,8 +816,8 @@ export default { openSystem () { const h = this.$createElement this.notifys = this.$notify({ - title: this.$t('openatc.faultrecord.realtimealert'), - iconClass: 'warnIcon', + title: this.$t('openatc.faultrecord.notification'), + iconClass: 'notiIcon', onClose: () => { }, dangerouslyUseHTMLString: true, @@ -843,7 +843,7 @@ export default { // h('el-button', {props: {size: 'mini', type: 'text', icon: 'el-icon-remove-outline'}, on: {click: this.cancel}}, `${this.$t('openatc.faultrecord.neglect')}`) // ]) ]), - duration: 0, + duration: 30000, position: 'bottom-right' }) }, @@ -1138,16 +1138,24 @@ export default {