AlarmRuleConfigController.java
10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
package com.skua.modules.alarm.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.core.api.vo.Result;
import com.skua.core.aspect.annotation.AutoLog;
import com.skua.core.query.QueryGenerator;
import com.skua.modules.alarm.entity.AlarmParamStandardConfig;
import com.skua.modules.alarm.entity.AlarmRuleAndRuleLevelConfig;
import com.skua.modules.alarm.entity.AlarmRuleConfig;
import com.skua.modules.alarm.entity.AlarmRuleLevelConfig;
import com.skua.modules.alarm.service.AlarmParamStandardConfigService;
import com.skua.modules.alarm.service.AlarmRuleConfigService;
import com.skua.modules.alarm.service.AlarmRuleLevelConfigService;
import com.skua.modules.alarm.vo.AlarmRuleAndAlarmRuleLevelVO;
import com.skua.modules.alarm.vo.AlarmRuleConfigVO;
import com.skua.modules.system.datestandard.entity.SysMetricDict;
import com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo;
import com.skua.modules.system.datestandard.service.ISysMetricDictService;
import com.skua.modules.system.datestandard.service.ISysMonitorMetricInfoService;
import com.skua.modules.system.entity.SysDepart;
import com.skua.modules.system.service.ISysDepartService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* @program: fmboot
* @description:
* @author: xie chao
* @create: 2020-11-02 09:34
*/
@Slf4j
@Api(tags = "报警配置")
@RestController
@RequestMapping("/alarm/config")
@AllArgsConstructor
public class AlarmRuleConfigController {
private AlarmRuleConfigService alarmRuleConfigService;
private AlarmRuleLevelConfigService alarmRuleLevelConfigService;
private ISysDepartService sysDepartService;
private AlarmParamStandardConfigService alarmParamStandardConfigService;
/**
* 新增警告信息
* @param alarmRuleAndRuleLevelConfig 需要添加的警告信息
* @return
*/
@AutoLog(value = "报警配置-添加")
@ApiOperation(value="报警配置-添加", notes="报警配置-添加")
@PostMapping(value = "/add")
public Result<AlarmRuleConfig> addAlarmInfo(@RequestBody AlarmRuleAndRuleLevelConfig alarmRuleAndRuleLevelConfig){
Result<AlarmRuleConfig> result = new Result<>();
alarmRuleConfigService.addRuleConfig(result,alarmRuleAndRuleLevelConfig);
return result;
}
/**
* 通过id删除报警信息
* @param id
* @return
*/
@AutoLog(value = "报警配置-通过id删除")
@ApiOperation(value="报警配置-通过id删除", notes="报警配置-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> deleteAlarmInfo(@RequestParam(name="id",required=true) String id) {
Result<AlarmRuleConfig> result = new Result<>();
try{
//通过id查询数据
AlarmRuleConfig alarmRuleConfigEntity = alarmRuleConfigService.getById(id);
//判断对象是否存在
if(alarmRuleConfigEntity == null){
result.error500("数据已删除");
}else{
//将isDelete的字段设置为1,表示数据已删除
alarmRuleConfigEntity.setDelFlag(0);
alarmRuleConfigService.updateById(alarmRuleConfigEntity);
}
result.success("删除成功");
}catch (Exception e){
log.error(e.getMessage(),e);
result.error500("删除失败");
}
return result;
}
/**
* 批量删除报警信息
* @param ids
* @return
*/
@AutoLog(value = "报警配置-批量删除")
@ApiOperation(value="报警配置-批量删除", notes="报警配置-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<AlarmRuleConfig> deleteBatchAlarmInfo(@RequestParam(name="ids",required=true) String ids) {
Result<AlarmRuleConfig> result = new Result<>();
//判断参数是否有效
if(ids == null || "".equals(ids.trim())){
result.error500("参数不识别");
}
try{
//设置查询条件
QueryWrapper<AlarmRuleConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",Arrays.asList(ids.split(",")));
//根据ID查询所有符合条件的数据
List<AlarmRuleConfig> alarmRuleConfigList = alarmRuleConfigService.list(queryWrapper);
//将所有的对象的isDelete字段设置为0,表示数据已删除
alarmRuleConfigList.forEach(obj -> obj.setDelFlag(0));
alarmRuleConfigService.updateBatchById(alarmRuleConfigList);
result.success("删除成功");
}catch (Exception e){
log.error(e.getMessage(),e);
result.error500("删除失败");
}
return result;
}
/**
* 编辑报警信息
* @param alarmRuleAndRuleLevelConfig
* @return
*/
@AutoLog(value = "报警配置-编辑")
@ApiOperation(value="报警配置-编辑", notes="报警配置-编辑")
@PutMapping(value = "/edit")
public Result<AlarmRuleConfig> editAlarmInfo(@RequestBody AlarmRuleAndRuleLevelConfig alarmRuleAndRuleLevelConfig) {
Result<AlarmRuleConfig> result = new Result<>();
try {
//得到报警规则配置对象
AlarmRuleConfig alarmRuleConfig = alarmRuleAndRuleLevelConfig.getAlarmRuleConfig();
//获取报警规则级别配置对象集合
List<AlarmRuleLevelConfig> alarmRuleLevelConfigList = alarmRuleAndRuleLevelConfig.getAlarmRuleLevelConfig();
if (StringUtils.isNotBlank(alarmRuleConfig.getId())) {
QueryWrapper alarmRuleLevelConfigQueryWrapper = new QueryWrapper();
alarmRuleLevelConfigQueryWrapper.eq("alarm_rule_id", alarmRuleConfig.getId());
alarmRuleLevelConfigService.remove(alarmRuleLevelConfigQueryWrapper);
}
//将数据保存到报警规则级别配置表
alarmRuleLevelConfigList.forEach(obj -> {
obj.setAlarmRuleId(alarmRuleConfig.getId());
//生成uuid用于报警规则级别的ID,
String alarmRuleLevelConfigUuid = UUID.randomUUID().toString().replaceAll("-", "");
obj.setId(alarmRuleLevelConfigUuid);
//如果报警为数据报警,并且级别使用标准化
if (alarmRuleConfig.getAlarmParamType().equals("1") && obj.getAlarmParamIsStandardize().equals("1")) {
Map<String, String> map = alarmParamStandardConfigService.getAlarmParamStandardConfigId(obj.getAlarmParamStandardizeId(), alarmRuleConfig.getAlarmParamCode());
obj.setAlarmParamStandardizeId(map.get("id"));
}
});
alarmRuleLevelConfigService.saveBatch(alarmRuleLevelConfigList);
}catch (Exception e){
log.error("修改报警规则配置失败",e.getMessage());
result.error500("修改失败");
}
return result;
}
/**
* 分页列表查询
* @param alarmRuleConfigVO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "报警配置-分页列表查询")
@ApiOperation(value="报警配置-分页列表查询", notes="报警配置-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<AlarmRuleConfigVO>> queryPageList(AlarmRuleConfigVO alarmRuleConfigVO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// Result<IPage<AlarmRuleAndAlarmRuleLevelVO>> result = new Result<>();
Result<IPage<AlarmRuleConfigVO>> result = new Result<>();
try {
QueryWrapper<AlarmRuleConfigVO> queryWrapper = new QueryWrapper<>();
if(alarmRuleConfigVO.getFactoryId() != null){
queryWrapper.eq("factory_id", alarmRuleConfigVO.getFactoryId());
}else if (alarmRuleConfigVO.getCenterId() != null && alarmRuleConfigVO.getFactoryId() == null){
//查询分中心下面的所有厂
QueryWrapper<SysDepart> sysDepartQueryWrapper = new QueryWrapper<>();
sysDepartQueryWrapper.eq("parent_id",alarmRuleConfigVO.getCenterId());
List<SysDepart> sysDepartList = sysDepartService.list(sysDepartQueryWrapper);
List<String> factoryIdList = new ArrayList<>();
sysDepartList.forEach(sysDepart -> {
factoryIdList.add(sysDepart.getId());
});
queryWrapper.in("factory_id",factoryIdList);
}
if(alarmRuleConfigVO.getAlarmParamName() != null){
queryWrapper.like("alarm_param_name",alarmRuleConfigVO.getAlarmParamName());
}
queryWrapper.eq("del_flag","1");
Page<AlarmRuleConfigVO> page = new Page<>(pageNo, pageSize);
IPage<AlarmRuleConfigVO> pageList = alarmRuleConfigService.getPage(page,queryWrapper);
/*//查询未删除的数据
alarmRuleAndAlarmRuleLevelVO.setDelFlag(1);
// QueryWrapper<AlarmRuleAndAlarmRuleLevelVO> queryWrapper = QueryGenerator.initQueryWrapper(alarmRuleAndAlarmRuleLevelVO, req.getParameterMap());
QueryWrapper<AlarmRuleAndAlarmRuleLevelVO> queryWrapper = new QueryWrapper<>();
if (alarmRuleAndAlarmRuleLevelVO.getFactoryId() != null) {
queryWrapper.eq("factory_id", alarmRuleAndAlarmRuleLevelVO.getFactoryId());
}
Page<AlarmRuleAndAlarmRuleLevelVO> page = new Page<>(pageNo, pageSize);
IPage<AlarmRuleAndAlarmRuleLevelVO> pageList = alarmRuleConfigService.getAlarmRuleAndAlarmRuleLevePage(page,queryWrapper);*/
result.setSuccess(true);
result.setResult(pageList);
} catch (Exception e) {
e.printStackTrace();
log.error("报警标准配置查询失败", e.getMessage());
result.setSuccess(false);
result.setResult(null);
}
return result;
}
}