From 8c73b83777413ce7ed74fb371380be3d353167ff Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 十二月 2025 10:59:44 +0800
Subject: [PATCH] 最新版本541200007
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java | 8 ++
admin/src/views/business/warningRule.vue | 7 ++
server/doc/新增告警规则关联监控点(2025-12-10).sql | 3 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java | 9 +++
admin/src/components/business/OperaWarningRuleWindow.vue | 78 +++++++++++++++++++++-----
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java | 6 --
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java | 31 ++++++++-
admin/.env.development | 4
8 files changed, 116 insertions(+), 30 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 6c43c0c..ac59705 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -3,9 +3,9 @@
# VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
-# VUE_APP_API_URL = 'http://192.168.1.45:10010'
+VUE_APP_API_URL = 'http://192.168.1.45:10010'
-#VUE_APP_API_URL = 'http://192.168.0.7/system_gateway'
+# #VUE_APP_API_URL = 'http://192.168.0.7/system_gateway'
VUE_APP_API_URL = 'http://localhost:10010'
diff --git a/admin/src/components/business/OperaWarningRuleWindow.vue b/admin/src/components/business/OperaWarningRuleWindow.vue
index 0afd40a..179993b 100644
--- a/admin/src/components/business/OperaWarningRuleWindow.vue
+++ b/admin/src/components/business/OperaWarningRuleWindow.vue
@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="" style="display: inline-block;margin-left: 10px">
-<!-- <el-select v-model="item.regionId" filterable multiple clearable placeholder="璇烽�夋嫨鍙戠敓鍖哄煙" >
+<!-- <el-select v-model="item.regionId" filterable multiple clearable placeholder="璇烽�夋嫨鍙戠敓鍖哄煙" >
<el-option v-for="item in regionList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>-->
@@ -34,6 +34,11 @@
noChildrenText="娌℃湁瀛愰�夐」"
noOptionsText="娌℃湁鍙�夐」"
noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
+ </el-form-item>
+ <el-form-item label="" style="display: inline-block;margin-left: 10px; " >
+ <el-select v-model="item.deviceId" filterable placeholder="璇烽�夋嫨鐩戞帶鐐�" @change="changeCamera(item)" >
+ <el-option v-for="item1 in item.carmeraList" :label="item1.name" :value="item1.indexCode" ></el-option>
+ </el-select>
</el-form-item>
<el-button type="danger" style="margin-left: 10px;height: 32px; " @click="delDo(index)" v-if="index>0 || form.detailList.length>1">鍒犻櫎</el-button>
</div>
@@ -111,7 +116,7 @@
intervalSec: '',
sortnum: '',
status: 0,
- detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+ detailList: [{ random: Math.random(), regionId: null, regionName: null, deviceId: null, deviceName: null, regionCode: null, warningId: null }]
},
deviceSelect: [],
memberSelect: [],
@@ -135,6 +140,7 @@
api: '/business/warningRule',
'field.id': 'id'
})
+ this.loadRegions()
},
methods: {
normalizeOptions (node) {
@@ -148,18 +154,50 @@
children: node.childList
}
},
+ changeCamera (curitem) {
+ var list = curitem.carmeraList
+ if (list && list.length) {
+ list.forEach(item => {
+ if (curitem.deviceId === item.indexCode) {
+ curitem.deviceName = item.name
+ }
+ })
+ }
+ },
changeSel (opt) {
- var item = this.form.detailList[opt]
- this.form.detailList[opt].regionCode = null
- this.form.detailList[opt].regionName = null
- if (item.regionId) {
- var reg = this.getSelectedObject(item.regionId)
- if (reg) {
- this.form.detailList[opt].regionCode = reg.indexCode
- this.form.detailList[opt].regionName = reg.name
+ this.$nextTick(() => {
+ console.log('=================changeSel',opt,this.form.detailList)
+ var item = this.form.detailList[opt]
+ this.form.detailList[opt].regionCode = null
+ this.form.detailList[opt].regionName = null
+ this.form.detailList[opt].carmeraList = []
+ // this.form.detailList[opt].deviceId = null
+ // this.form.detailList[opt].deviceName = null
+ if (item.regionId) {
+ var reg = this.getSelectedObject(item.regionId)
+ if (reg) {
+ this.form.detailList[opt].regionCode = reg.indexCode
+ this.form.detailList[opt].regionName = reg.name
+ this.form.detailList[opt].carmeraList = reg.carmeraList
+ }
+ }
+ console.log('=================changeSel1' , this.form.detailList[opt].carmeraList,this.form.detailList[opt].deviceId)
+ if(this.notInCarmeraList( this.form.detailList[opt].carmeraList,this.form.detailList[opt].deviceId) ){
+ this.form.detailList[opt].deviceId = null
+ this.form.detailList[opt].deviceName = null
+ }
+ })
+ },
+ notInCarmeraList (list, id) {
+ var r = true
+ if (list && list.length) {
+ for (const item of list) {
+ if (item.indexCode === id) {
+ r = false
+ }
}
}
- console.log(' this.form.detailList[opt]', reg, this.form.detailList[opt])
+ return r
},
getSelectedObject (id) {
if (!id) {
@@ -179,7 +217,7 @@
return findSelected(this.regionList) // 寮�濮嬫悳绱㈠苟杩斿洖缁撴灉
},
addDo () {
- this.form.detailList.push({ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null })
+ this.form.detailList.push({ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null })
},
delDo (index) {
if (this.form.detailList.length > 1 && this.form.detailList.length > index) {
@@ -221,7 +259,7 @@
deviceNoticeContent: '',
memberNotice: 1,
status: 0,
- detailList: [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+ detailList: [{ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null }]
}
// 鏂板缓
if (target == null) {
@@ -229,19 +267,29 @@
this.$refs.form.resetFields()
this.form[this.configData['field.id']] = null
})
-
return
}
// 缂栬緫
this.$nextTick(() => {
+ this.form.detailList =target.detailList
for (const key in this.form) {
this.form[key] = target[key]
this.form.memberNotice = this.form.memberNotice || 0
this.form.deviceNotice = this.form.deviceNotice || 0
this.form.status = this.form.status || 0
}
+ console.log('===========================', this.form.detailList, target.detailList)
if (!this.form.detailList || !this.form.detailList.length) {
- this.form.detailList = [{ random: Math.random(), regionId: null, regionName: null, regionCode: null, warningId: null }]
+ this.form.detailList = [{ random: Math.random(), deviceId: null, deviceName: null, regionId: null, regionName: null, regionCode: null, warningId: null }]
+ } else {
+ this.form.detailList.forEach((item, index) => {
+ if (item.regionId != null) {
+ var region = this.getSelectedObject(item.regionId)
+ if (region) {
+ item.carmeraList = region.carmeraList || []
+ }
+ }
+ })
}
if (this.form.memberIds) {
this.memberSelect = this.form.memberIds.split(',')
diff --git a/admin/src/views/business/warningRule.vue b/admin/src/views/business/warningRule.vue
index db5eb91..7773aaf 100644
--- a/admin/src/views/business/warningRule.vue
+++ b/admin/src/views/business/warningRule.vue
@@ -37,6 +37,13 @@
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="title" label="鎶ヨ瑙勫垯" min-width="200px" show-tooltip-when-overflow></el-table-column>
+ <el-table-column prop="detailList" label="瑙勫垯鏄庣粏" min-width="360px" show-tooltip-when-overflow>
+ <template slot-scope="{row}">
+ <div v-if="row.detailList && row.detailList.length">
+ <div style="display: block;" v-for="item in row.detailList"> {{item.warningName||''}} {{item.regionName||''}} {{item.deviceName||''}};</div>
+ </div>
+ </template>
+ </el-table-column>
<el-table-column prop="memberNames" label="鎶ヨ鎺ユ敹浜�" min-width="200px" show-tooltip-when-overflow>
<template slot-scope="{row}">
<span v-if="row.memberNotice === 1">{{row.memberNames}}</span>
diff --git "a/server/doc/\346\226\260\345\242\236\345\221\212\350\255\246\350\247\204\345\210\231\345\205\263\350\201\224\347\233\221\346\216\247\347\202\271\357\274\2102025-12-10\357\274\211.sql" "b/server/doc/\346\226\260\345\242\236\345\221\212\350\255\246\350\247\204\345\210\231\345\205\263\350\201\224\347\233\221\346\216\247\347\202\271\357\274\2102025-12-10\357\274\211.sql"
new file mode 100644
index 0000000..2a302bd
--- /dev/null
+++ "b/server/doc/\346\226\260\345\242\236\345\221\212\350\255\246\350\247\204\345\210\231\345\205\263\350\201\224\347\233\221\346\216\247\347\202\271\357\274\2102025-12-10\357\274\211.sql"
@@ -0,0 +1,3 @@
+ALTER TABLE `wuhuyancao`.`warning_rule_detail`
+ADD COLUMN `DEVICE_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鐩戞帶鐐瑰悕绉�' AFTER `REGION_ID`,
+ADD COLUMN `DEVICE_ID` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '鐩戞帶鐐逛富閿�' AFTER `DEVICE_NAME`;
\ No newline at end of file
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 024312b..50f1434 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -320,28 +320,49 @@
@PostMapping("/regionList")
public ApiResponse<List<PageRegionInfoResponse> > getRegionList(HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ){
CarmeraListVO param =new CarmeraListVO();
- param.setWithCameras(0);
+ param.setWithCameras(1);
List<PageRegionInfoResponse> result = new ArrayList<>();
try {
result = boardService.getRegionTree( param);
+
+ }catch (Exception e){
+
+ }
+ if(result.size()==0){
//------TODO---------娴嬭瘯妯℃嫙鏁版嵁----start-----
- /* for (int i = 0; i < 5; i++) {
+ for (int i = 0; i < 5; i++) {
PageRegionInfoResponse t = new PageRegionInfoResponse();
t.setName("鎬诲尯鍩焈"+i);
t.setIndexCode(i+"_code");
t.setChildList(new ArrayList<>());
+ t.setCarmeraList(new ArrayList<>());
+ CarmeraListVO c= new CarmeraListVO();
+ c.setName("鐩戞帶鐐�11"+i);
+ c.setIndexCode("jkd11"+i);
+ t.getCarmeraList().add(c);
+ c= new CarmeraListVO();
+ c.setName("鐩戞帶鐐�12"+i);
+ c.setIndexCode("jkd12"+i);
+ t.getCarmeraList().add(c);
for (int j = 0; j < 5; j++) {
PageRegionInfoResponse t1 = new PageRegionInfoResponse();
t1.setName("瀛愬尯鍩焈"+i+"_"+j);
t1.setIndexCode(i+"_"+j+"_ChildCode");
t1.setParentIndexCode(t.getIndexCode());
+ t1.setCarmeraList(new ArrayList<>());
+ CarmeraListVO c1= new CarmeraListVO();
+ c1.setName(i+"鐩戞帶鐐�111"+j);
+ c1.setIndexCode(i+"jkd111"+j);
+ t1.getCarmeraList().add(c1);
+ c1= new CarmeraListVO();
+ c1.setName(i+"鐩戞帶鐐�112"+j);
+ c1.setIndexCode(i+"jkd112"+j);
+ t1.getCarmeraList().add(c1);
t.getChildList().add(t1);
}
result.add(t);
- }*/
+ }
//------TODO---------娴嬭瘯妯℃嫙鏁版嵁----end-----
- }catch (Exception e){
-
}
return ApiResponse.success(result);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
index af9fe47..0937cce 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
@@ -1,7 +1,6 @@
package com.doumee.core.haikang.model.param.respose;
import com.doumee.dao.web.response.platformReport.CarmeraListVO;
-import com.doumee.dao.web.response.platformReport.RegionTreeVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,17 +11,12 @@
@ApiModelProperty(value = "鍖哄煙鍞竴鏍囪瘑鐮�")
private String indexCode;// Body String false 鍖哄煙鍞竴鏍囪瘑鐮�
-
@ApiModelProperty(value = "鍖哄煙鍚嶇О")
private String name ;// Body String false 鍖哄煙鍚嶇О
-
@ApiModelProperty(value = "鐖跺尯鍩熷敮涓�鏍囪瘑鐮�")
private String parentIndexCode ;// Body String false 鐖跺尯鍩熷敮涓�鏍囪瘑鐮�
-
@ApiModelProperty(value = "鏍戠紪鍙�")
private String treeCode ;// Body String false 鏍戠紪鍙�
-
-
@ApiModelProperty(value = "涓嬬骇闆嗗悎")
private List<PageRegionInfoResponse> childList;
@ApiModelProperty(value = "鐩戞帶鐐归泦鍚�")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
index 9651da0..612982b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
@@ -77,11 +77,20 @@
@ExcelColumn(name="鍖哄煙涓婚敭")
private String regionId;
+ @ApiModelProperty(value = "鐩戞帶鐐瑰悕绉�")
+ @ExcelColumn(name="鐩戞帶鐐瑰悕绉�")
+ private String deviceName;
+ @ApiModelProperty(value = "鐩戞帶鐐逛富閿�")
+ @ExcelColumn(name="鐩戞帶鐐逛富閿�")
+ private String deviceId;
@ApiModelProperty(value = "鍛婅绫诲瀷缂栫爜")
@TableField(exist = false)
private String code;
+ @ApiModelProperty(value = "鍛婅鍚嶇О")
+ @TableField(exist = false)
+ private String warningName;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
index abb9cf3..e5afe33 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
@@ -344,8 +344,12 @@
queryWrapper.orderByDesc(WarningRule::getCreateDate);
IPage<WarningRule> result = warningRuleMapper.selectJoinPage(page, WarningRule.class,queryWrapper);
if(result.getRecords()!=null && result.getRecords().size()>0){
- List<WarningRuleDetail> allList = warningRuleDetailMapper.selectList(new LambdaQueryWrapper<WarningRuleDetail>()
- .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO));
+ List<WarningRuleDetail> allList = warningRuleDetailMapper.selectJoinList(WarningRuleDetail.class,
+ new MPJLambdaWrapper<WarningRuleDetail>()
+ .selectAll(WarningRuleDetail.class)
+ .selectAs(Warning::getName,WarningRuleDetail::getWarningName)
+ .leftJoin(Warning.class,Warning::getId,WarningRuleDetail::getWarningId)
+ .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO));
for(WarningRule model :result.getRecords()){
model.setDetailList(getDetailListFromAll(allList,model.getId()));
}
--
Gitblit v1.9.3