Commit 97273525 authored by 赵啸非's avatar 赵啸非

告警内容修改

parent 79c919f9
......@@ -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);
......
......@@ -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();
}
},
......
......@@ -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) {
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" notSearch :config="tableConfig">
</LayoutTable>
<!-- <dialog-show ref="dialogform" @ok="getData" /> -->
......
<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: "告警内容",
......
......@@ -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;
......
......@@ -41,6 +41,10 @@
],
columns: [
{type: "selection", width: 60},
{label: "模块名称", prop: "moduleName"},
{label: "模块消息编码", prop: "moduleMsgCode"},
{
label: "操作",
width: 240,
......
<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"},
]
}
};
......
/**
* 文件:OperLogController.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
* 文件:OperLogController.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* 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 &reg; </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
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);
}
......
......@@ -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
......@@ -289,6 +289,9 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D
throw new AppException("设备编码重复!");
}
entity.setDeviceCode(StrUtil.replace(entity.getDeviceCode(),":","-"));
super.saveBefore(entity, context);
}
......
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment