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' 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(',') 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> server/doc/ÐÂÔö¸æ¾¯¹æÔò¹ØÁª¼à¿Øµã£¨2025-12-10£©.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`; 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); } 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 = "çæ§ç¹éå") 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; } 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())); }