From 972735253f6c1e0ca1b87a5d1ad2b760f4b976bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com> Date: Mon, 4 Jul 2022 17:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E5=86=85=E5=AE=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/src/assets/mixins/form.js | 7 +- .../admin/src/assets/mixins/table.js | 2 +- .../admin/src/components/Pagination.vue | 5 +- .../admin/src/views/alarm/config/list.vue | 2 +- .../src/views/device/alarm/info/list.vue | 67 ++++++++++++++----- .../admin/src/views/device/list.vue | 39 ++++++++--- .../admin/src/views/device/module/list.vue | 4 ++ .../admin/src/views/product/list.vue | 19 ++---- .../system/oper/web/OperLogController.java | 58 ++++++++-------- .../service/impl/AlarmConfigServiceImpl.java | 25 ++++--- .../service/impl/DeviceModuleServiceImpl.java | 21 +++++- .../service/impl/DeviceServiceImpl.java | 3 + .../device/web/DeviceAlarmInfoController.java | 18 ++++- 13 files changed, 183 insertions(+), 87 deletions(-) diff --git a/device-manager-ui/admin/src/assets/mixins/form.js b/device-manager-ui/admin/src/assets/mixins/form.js index c56d4e55..a43a9752 100644 --- a/device-manager-ui/admin/src/assets/mixins/form.js +++ b/device-manager-ui/admin/src/assets/mixins/form.js @@ -55,10 +55,9 @@ export default { el.validate((valid) => { if (!valid) return; this.loading = true; - this.$post(this.urls.saveUrl || this.pageInfo.saveUrl, { - entity: this.beforeSubmit(this.form), - ...this.extendFormData - }) + this.$post(this.urls.saveUrl || this.pageInfo.saveUrl, + this.beforeSubmit(this.form) + ) .then(res => { this.$message.success(res.msg); this.afterSubmit(res); diff --git a/device-manager-ui/admin/src/assets/mixins/table.js b/device-manager-ui/admin/src/assets/mixins/table.js index 2c235864..08b7f0b1 100644 --- a/device-manager-ui/admin/src/assets/mixins/table.js +++ b/device-manager-ui/admin/src/assets/mixins/table.js @@ -14,7 +14,7 @@ export default { }, watch: { '$route'(route) { - // this.query = Object.assign({}, this.query, route.query); + this.query = Object.assign({}, this.query, route.query); this.getData(); } }, diff --git a/device-manager-ui/admin/src/components/Pagination.vue b/device-manager-ui/admin/src/components/Pagination.vue index 5e6f5efb..46920de0 100644 --- a/device-manager-ui/admin/src/components/Pagination.vue +++ b/device-manager-ui/admin/src/components/Pagination.vue @@ -40,6 +40,9 @@ export default { console.log("query",query) this.currPage = parseInt(query['page']) || 1; this.currSize = parseInt(query['size']) || this.prePageResult; + + console.log("this.currPage",this.currPage,this.currSize) + }, changeHash(key, val) { let {path, query} = this.$route; @@ -49,7 +52,7 @@ export default { }) }, handleSizeChange(currSize) { - console.log("currsize"+size) + console.log("currsize"+currSize) this.changeHash('size', currSize); }, handleCurrentChange(currPage) { diff --git a/device-manager-ui/admin/src/views/alarm/config/list.vue b/device-manager-ui/admin/src/views/alarm/config/list.vue index c5206e3d..21d165b3 100644 --- a/device-manager-ui/admin/src/views/alarm/config/list.vue +++ b/device-manager-ui/admin/src/views/alarm/config/list.vue @@ -1,6 +1,6 @@ <template> <div class="page"> - <LayoutTable :data="tableData" :config="tableConfig"> + <LayoutTable :data="tableData" notSearch :config="tableConfig"> </LayoutTable> <!-- <dialog-show ref="dialogform" @ok="getData" /> --> diff --git a/device-manager-ui/admin/src/views/device/alarm/info/list.vue b/device-manager-ui/admin/src/views/device/alarm/info/list.vue index 87bb219a..6f41ad1d 100644 --- a/device-manager-ui/admin/src/views/device/alarm/info/list.vue +++ b/device-manager-ui/admin/src/views/device/alarm/info/list.vue @@ -1,6 +1,35 @@ <template> <div class="page"> - <LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> </LayoutTable> + <LayoutTable :data="tableData" notAdd notDel :config="tableConfig"> + + <el-button + slot="table-head-left2" + style="margin-left: 10px" + icon="el-icon-tickets" + size="mini" + @click="doExport" + :disabled="isExport" + >瀵煎嚭</el-button + > + + <el-tag slot="table-head-left2" size="mini" style="margin-left: 20px" + >鍛婅娆℃暟锛歿{ tableData.totalCount }}娆�</el-tag + > + + <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="danger" + >鍗遍櫓锛歿{ tableData.dangerCount }}娆�</el-tag + > + + <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="warning" + >娆¤锛歿{ tableData.subCount }}娆�</el-tag + > + + <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="info" + >涓€鑸細{{ tableData.normalCount }}娆�</el-tag + > + + + </LayoutTable> <dialog-show ref="dialogform" @ok="getData" /> </div> @@ -23,25 +52,11 @@ export default { created() { console.log("queryIn:", this.queryIn); - //this.config.addQuery = { deviceId, deviceType }; - if (this.queryIn.alarmDevice) { this.query={} this.query["alarmDevice"] = this.queryIn.alarmDevice; } - - console.log("pageInfo--before",this.pageInfo) - this.changePath("/device/alarm/info") - - // this.pageInfo.list = "/device/alarm/info/list"; - // this.pageInfo.del = "/device/alarm/info/delete"; - // this.pageInfo.add = "/device/alarm/info/add"; - // this.pageInfo.edit = "/device/alarm/info/edit"; - // this.pageInfo.view = "/device/alarm/info/view"; - - console.log("pageInfo",this.pageInfo) - }, methods: { /** 閲嶅啓鏂板鏂规硶 */ @@ -56,6 +71,19 @@ export default { // toView(row) { // this.$refs.dialogform.view(row); // }, + /** 瀵煎嚭Excel */ + doExport() { + this.isExport = true; + this.$download("/device/alarm/info/exportExcel", { + "idList": this.selection, + 'alarmDevice': this.$route.query['alarmDevice'], + 'alarmType': this.$route.query['alarmType'], + 'alarmStatus': this.$route.query['alarmStatus'], + }, { type: "excel" }).then(() => this.isExport = false).catch(error => { + this.isExport = false; + this.$message.error(error.message); + }); + }, }, data() { return { @@ -84,6 +112,13 @@ export default { ], columns: [ + {type: "selection", width: 60}, + { + type: "index", + label: "搴忓彿", + width: 50 + }, + { label: "鍛婅鏃堕棿", @@ -94,7 +129,7 @@ export default { { label: "鍛婅璁惧", prop: "alarmDevice", - formatter: this.formatterString, + formatter: this.formatter, }, { label: "鍛婅鍐呭", diff --git a/device-manager-ui/admin/src/views/device/list.vue b/device-manager-ui/admin/src/views/device/list.vue index 6d79d5f2..41b56fe0 100644 --- a/device-manager-ui/admin/src/views/device/list.vue +++ b/device-manager-ui/admin/src/views/device/list.vue @@ -31,26 +31,41 @@ :disabled="isExport" >瀵煎嚭</el-button > - <el-tag slot="table-head-left2" size="mini" style="margin-left: 20px" + <el-tag slot="table-head-left2" size="mini" style="margin-left: 20px" >璁惧鎬绘暟锛歿{ tableData.totalCount }}鍙�</el-tag > - <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="success" + <el-tag + slot="table-head-left2" + size="mini" + style="margin: 5px" + type="success" >鍦ㄧ嚎锛歿{ tableData.onlineCount }}鍙�</el-tag > - <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="danger" + <el-tag + slot="table-head-left2" + size="mini" + style="margin: 5px" + type="danger" >绂荤嚎锛歿{ tableData.offlineCount }}鍙�</el-tag > - <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="danger" + <el-tag + slot="table-head-left2" + size="mini" + style="margin: 5px" + type="danger" >鍋滅敤锛歿{ tableData.stopCount }}鍙�</el-tag > - <el-tag slot="table-head-left2" size="mini" style="margin: 5px" type="danger" + <el-tag + slot="table-head-left2" + size="mini" + style="margin: 5px" + type="danger" >鏈縺娲伙細{{ tableData.unActiveCount }}鍙�</el-tag > - </LayoutTable> <!-- 璁惧瀵煎叆瀵硅瘽妗� --> @@ -99,7 +114,7 @@ <drawer-show ref="drawerform" @ok="getData" /> - <drawer-view ref="drawerViewform" @ok="getData" /> + <drawer-view ref="drawerViewform" @ok="getData" /> </div> </template> @@ -165,7 +180,15 @@ export default { /** 瀵煎嚭Excel */ doExport() { this.isExport = true; - this.$download("/device/exportExcel", {}, { type: "excel" }) + this.$download( + "/device/exportExcel", + { + "idList": this.selection, + "deviceName": this.$route.query["deviceName"], + "siteId": this.$route.query["siteId"], + }, + { type: "excel" } + ) .then(() => (this.isExport = false)) .catch((error) => { this.isExport = false; diff --git a/device-manager-ui/admin/src/views/device/module/list.vue b/device-manager-ui/admin/src/views/device/module/list.vue index e29f749f..07ddb249 100644 --- a/device-manager-ui/admin/src/views/device/module/list.vue +++ b/device-manager-ui/admin/src/views/device/module/list.vue @@ -41,6 +41,10 @@ ], columns: [ {type: "selection", width: 60}, + + {label: "妯″潡鍚嶇О", prop: "moduleName"}, + + {label: "妯″潡娑堟伅缂栫爜", prop: "moduleMsgCode"}, { label: "鎿嶄綔", width: 240, diff --git a/device-manager-ui/admin/src/views/product/list.vue b/device-manager-ui/admin/src/views/product/list.vue index 5c6b5b29..48d6034f 100644 --- a/device-manager-ui/admin/src/views/product/list.vue +++ b/device-manager-ui/admin/src/views/product/list.vue @@ -1,6 +1,6 @@ <template> <div class="page"> - <LayoutTable :data="tableData" :config="tableConfig"> + <LayoutTable :data="tableData" notAdd notDel notSearch :config="tableConfig"> </LayoutTable> <dialog-show ref="dialogform" @ok="getData" /> @@ -40,20 +40,11 @@ search: [ ], columns: [ - {type: "selection", width: 60}, + + {label: "浜у搧鍚嶇О", prop: "productName"}, - {label: "浜у搧鍚嶇О锛屽悕绉板敮涓€", prop: "productName"}, - - {label: "浜у搧缂栫爜锛岀紪鐮佸敮涓€", prop: "productCode"}, - { - label: "鎿嶄綔", - width: 240, - formatter: row => { - return ( - <table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> - ); - } - } + {label: "浜у搧缂栫爜", prop: "productCode"}, + ] } }; diff --git a/device-manager/src/main/java/com/mortals/xhx/base/system/oper/web/OperLogController.java b/device-manager/src/main/java/com/mortals/xhx/base/system/oper/web/OperLogController.java index d3be74c7..d33740d8 100644 --- a/device-manager/src/main/java/com/mortals/xhx/base/system/oper/web/OperLogController.java +++ b/device-manager/src/main/java/com/mortals/xhx/base/system/oper/web/OperLogController.java @@ -1,10 +1,10 @@ /** -* 鏂囦欢锛歄perLogController.java -* 鐗堟湰锛�1.0.0 -* 鏃ユ湡锛� -* Copyright ® -* All right reserved. -*/ + * 鏂囦欢锛歄perLogController.java + * 鐗堟湰锛�1.0.0 + * 鏃ユ湡锛� + * Copyright ® + * All right reserved. + */ package com.mortals.xhx.base.system.oper.web; @@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject; import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.framework.model.OrderCol; +import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.oper.model.OperLogEntity; import com.mortals.xhx.base.system.oper.service.OperLogService; import com.mortals.xhx.common.code.OperTypeEnum; @@ -33,37 +34,36 @@ import java.util.Map; * <p>Description: OperLogController </p> * <p>Copyright: Copyright ® </p> * <p>Company: </p> - * @author + * + * @author * @version 1.0.0 */ @RestController @RequestMapping("oper/log") -public class OperLogController extends BaseCRUDJsonMappingController<OperLogService,OperLogForm,OperLogEntity,Long> { +public class OperLogController extends BaseCRUDJsonBodyMappingController<OperLogService, OperLogEntity, Long> { - public OperLogController(){ - super.setFormClass(OperLogForm.class); - super.setModuleDesc("鎿嶄綔鏃ュ織"); - } + public OperLogController() { + super.setFormClass(OperLogForm.class); + super.setModuleDesc("鎿嶄綔鏃ュ織"); + } - @Override - protected void init(HttpServletRequest request, HttpServletResponse response, OperLogForm form, - Map<String, Object> model, Context context) { - Map<String, Object> status = new HashMap<String, Object>(1); - // 杩斿洖鏃ュ織绫诲瀷 - status.put("operType", OperTypeEnum.getEnumMap()); + @Override + protected void init(Map<String, Object> model, Context context) { + Map<String, Object> status = new HashMap<String, Object>(1); + // 杩斿洖鏃ュ織绫诲瀷 + status.put("operType", OperTypeEnum.getEnumMap()); - model.put(KEY_RESULT_DICT, status); - super.init(request, response, form, model, context); - } + model.put(KEY_RESULT_DICT, status); + } - @Override - protected void doListBefore(HttpServletRequest request, HttpServletResponse response, OperLogForm form, Map<String, Object> model, Context context) throws AppException { - form.getQuery().setOrderColList(new ArrayList<OrderCol>() { - { - add(new OrderCol("a.logDate", "desc")); - } - }); - } + @Override + protected void doListBefore(OperLogEntity query, Map<String, Object> model, Context context) throws AppException { + query.setOrderColList(new ArrayList<OrderCol>() { + { + add(new OrderCol("a.logDate", "desc")); + } + }); + } } \ No newline at end of file diff --git a/device-manager/src/main/java/com/mortals/xhx/module/alarm/service/impl/AlarmConfigServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/alarm/service/impl/AlarmConfigServiceImpl.java index 655d0b10..3030dab0 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/alarm/service/impl/AlarmConfigServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/alarm/service/impl/AlarmConfigServiceImpl.java @@ -1,4 +1,5 @@ package com.mortals.xhx.module.alarm.service.impl; + import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.xhx.module.alarm.model.AlarmConfigQuery; @@ -10,12 +11,12 @@ import com.mortals.xhx.module.alarm.service.AlarmConfigService; import org.springframework.util.ObjectUtils; /** -* AlarmConfigService -* 璁惧鍛婅閰嶇疆 service瀹炵幇 -* -* @author zxfei -* @date 2022-06-27 -*/ + * AlarmConfigService + * 璁惧鍛婅閰嶇疆 service瀹炵幇 + * + * @author zxfei + * @date 2022-06-27 + */ @Service("alarmConfigService") public class AlarmConfigServiceImpl extends AbstractCRUDServiceImpl<AlarmConfigDao, AlarmConfigEntity, Long> implements AlarmConfigService { @@ -24,7 +25,7 @@ public class AlarmConfigServiceImpl extends AbstractCRUDServiceImpl<AlarmConfigD protected void saveBefore(AlarmConfigEntity entity, Context context) throws AppException { //鏍¢獙浜у搧鏄惁宸茬粡瀛樺湪閰嶇疆 AlarmConfigEntity alarmConfigEntity = this.selectOne(new AlarmConfigQuery().productId(entity.getProductId())); - if(!ObjectUtils.isEmpty(alarmConfigEntity)){ + if (!ObjectUtils.isEmpty(alarmConfigEntity)) { throw new AppException("褰撳墠浜у搧宸插瓨鍦ㄥ憡璀﹂厤缃紒"); } super.saveBefore(entity, context); @@ -32,10 +33,12 @@ public class AlarmConfigServiceImpl extends AbstractCRUDServiceImpl<AlarmConfigD @Override protected void updateBefore(AlarmConfigEntity entity, Context context) throws AppException { - //鏍¢獙 - AlarmConfigEntity alarmConfigEntity = this.selectOne(new AlarmConfigQuery().productId(entity.getProductId())); - if(!ObjectUtils.isEmpty(alarmConfigEntity)&&entity.getId()!=alarmConfigEntity.getId()){ - entity.setId(alarmConfigEntity.getId()); + //鏍¢獙 + if (!ObjectUtils.isEmpty(entity.getProductId())) { + AlarmConfigEntity alarmConfigEntity = this.selectOne(new AlarmConfigQuery().productId(entity.getProductId())); + if (!ObjectUtils.isEmpty(alarmConfigEntity) && entity.getId() != alarmConfigEntity.getId()) { + entity.setId(alarmConfigEntity.getId()); + } } super.updateBefore(entity, context); } diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceModuleServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceModuleServiceImpl.java index 94e93ac2..f33c4c9d 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceModuleServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceModuleServiceImpl.java @@ -4,7 +4,10 @@ import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.Result; +import com.mortals.xhx.module.alarm.model.AlarmConfigEntity; +import com.mortals.xhx.module.alarm.model.AlarmConfigQuery; import com.mortals.xhx.module.device.model.DeviceEntity; +import com.mortals.xhx.module.device.model.DeviceModuleQuery; import com.mortals.xhx.module.device.service.DeviceService; import com.mortals.xhx.module.platform.model.PlatformEntity; import com.mortals.xhx.module.platform.service.PlatformService; @@ -31,5 +34,21 @@ import java.util.List; public class DeviceModuleServiceImpl extends AbstractCRUDServiceImpl<DeviceModuleDao, DeviceModuleEntity, Long> implements DeviceModuleService { - + @Override + protected void validData(DeviceModuleEntity entity, Context context) throws AppException { + if (entity.newEntity()) { + DeviceModuleEntity deviceModuleEntity = this.selectOne(new DeviceModuleQuery().moduleMsgCode(entity.getModuleMsgCode())); + if (!ObjectUtils.isEmpty(deviceModuleEntity)) { + throw new AppException("璁惧妯″潡娑堟伅缂栫爜宸插瓨鍦�"); + } + } else { + if (!ObjectUtils.isEmpty(entity.getModuleMsgCode())) { + DeviceModuleEntity deviceModuleEntity = this.selectOne(new DeviceModuleQuery().moduleMsgCode(entity.getModuleMsgCode())); + if (!ObjectUtils.isEmpty(deviceModuleEntity) && entity.getId() != deviceModuleEntity.getId()) { + throw new AppException("璁惧妯″潡娑堟伅缂栫爜宸插瓨鍦�"); + } + } + } + super.validData(entity, context); + } } \ No newline at end of file diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java index c41954d7..cb3dc503 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java @@ -289,6 +289,9 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D throw new AppException("璁惧缂栫爜閲嶅锛�"); } + entity.setDeviceCode(StrUtil.replace(entity.getDeviceCode(),":","-")); + + super.saveBefore(entity, context); } diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceAlarmInfoController.java b/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceAlarmInfoController.java index def3a3b9..9ca28e10 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceAlarmInfoController.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceAlarmInfoController.java @@ -1,16 +1,22 @@ package com.mortals.xhx.module.device.web; +import com.mortals.framework.exception.AppException; import com.mortals.framework.model.Context; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.param.service.ParamService; +import com.mortals.xhx.common.code.DeviceStatusEnum; +import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.module.device.model.DeviceAlarmInfoEntity; +import com.mortals.xhx.module.device.model.DeviceEntity; import com.mortals.xhx.module.device.model.DeviceQuery; import com.mortals.xhx.module.device.service.DeviceAlarmInfoService; import com.mortals.xhx.module.device.service.DeviceService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -42,5 +48,15 @@ public class DeviceAlarmInfoController extends BaseCRUDJsonBodyMappingController super.init(model, context); } - + @Override + protected int doListAfter(DeviceAlarmInfoEntity query, Map<String, Object> model, Context context) throws AppException { + List<DeviceAlarmInfoEntity> alarmInfoEntityList = this.service.find(query, context); + Map<Integer, Long> collect = alarmInfoEntityList.stream().collect(Collectors.groupingBy(DeviceAlarmInfoEntity::getAlarmLevel, Collectors.counting())); + model.put("totalCount", alarmInfoEntityList.size()); + model.put("dangerCount", collect.getOrDefault(0,0L)); + model.put("subCount", collect.getOrDefault(1,0L)); + model.put("normalCount", collect.getOrDefault(2,0L)); + + return super.doListAfter(query, model, context); + } } \ No newline at end of file -- 2.24.3