|
@@ -1,15 +1,9 @@
|
|
|
package cn.com.ctop.alarm.modules.service.impl;
|
|
|
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleBase;
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleGroup;
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleIndicator;
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleTemplate;
|
|
|
+import cn.com.ctop.alarm.modules.entity.*;
|
|
|
import cn.com.ctop.alarm.modules.mapper.RuleBaseMapper;
|
|
|
import cn.com.ctop.alarm.modules.mapper.RuleTemplateMapper;
|
|
|
-import cn.com.ctop.alarm.modules.service.IRuleBaseService;
|
|
|
-import cn.com.ctop.alarm.modules.service.IRuleGroupService;
|
|
|
-import cn.com.ctop.alarm.modules.service.IRuleIndicatorService;
|
|
|
-import cn.com.ctop.alarm.modules.service.IRuleTemplateService;
|
|
|
+import cn.com.ctop.alarm.modules.service.*;
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -42,6 +36,9 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
@Autowired
|
|
|
private IRuleIndicatorService ruleIndicatorService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IRuleAccountThresholdService accountThresholdService;
|
|
|
+
|
|
|
/**
|
|
|
* 创建规则模板
|
|
|
*
|
|
@@ -93,19 +90,22 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
ruleBase.setThreshold(ruleDetailJson.getString("threshold"));
|
|
|
ruleBase.setVariableType(ruleDetailJson.getInteger("variableType"));
|
|
|
ruleBase.setRuleDimension(ruleDetailJson.getString("ruleDimension"));
|
|
|
+ ruleBase.setJudgeFormat(ruleDetailJson.getInteger("judgeFormat"));
|
|
|
+
|
|
|
int insert = ruleBaseMapper.insert(ruleBase);
|
|
|
if (insert > 0) {
|
|
|
ruleIds.add(ruleBase.getId());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
RuleGroup ruleGroup = new RuleGroup();
|
|
|
ruleGroup.setRuleIds(ruleIds.toJSONString());
|
|
|
ruleGroup.setRuleType(ruleGroupJson.getString("ruleType"));
|
|
|
ruleGroup.setRuleRelationship(ruleGroupJson.getString("ruleRelationship"));
|
|
|
ruleGroup.setGroupName(ruleGroupJson.getString("groupName"));
|
|
|
ruleGroup.setRemark(ruleGroupJson.getString("remark"));
|
|
|
+ ruleGroup.setIsCopy(ruleGroupJson.getBoolean("isCopy"));
|
|
|
+ ruleGroup.setIsRequired(ruleGroupJson.getBoolean("isRequired"));
|
|
|
boolean save = ruleGroupService.save(ruleGroup);
|
|
|
if (save) {
|
|
|
String ruleIdsArrStr = ruleGroup.getRuleIds();
|
|
@@ -120,7 +120,6 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
}
|
|
|
}
|
|
|
groupIds.add(ruleGroup.getId());
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -195,6 +194,8 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
groupJson.put("remark", group.getRemark());
|
|
|
groupJson.put("operate", group.getOperate());
|
|
|
groupJson.put("sendType", group.getSendType());
|
|
|
+ groupJson.put("isCopy", group.getIsCopy());
|
|
|
+ groupJson.put("isRequired", group.getIsRequired());
|
|
|
JSONArray ruleIds = JSONArray.parseArray(group.getRuleIds());
|
|
|
if (Check.isNull(ruleIds)) {
|
|
|
continue;
|
|
@@ -209,6 +210,7 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
JSONObject ruleJson = new JSONObject();
|
|
|
ruleJson.put("ruleId", ruleBase.getId());
|
|
|
ruleJson.put("ruleName", ruleBase.getRuleName());
|
|
|
+ ruleJson.put("judgeFormat", ruleBase.getJudgeFormat());
|
|
|
ruleJson.put("indicatorCode", ruleBase.getIndicatorCode());
|
|
|
ruleJson.put("ruleCondition", ruleBase.getRuleCondition());
|
|
|
ruleJson.put("threshold", ruleBase.getThreshold());
|
|
@@ -239,4 +241,98 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
returnJson.put("ruleList", ruleList);
|
|
|
return returnJson;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据 账户id 模板id 查询模板详情
|
|
|
+ *
|
|
|
+ * @param accountId
|
|
|
+ * @param templateId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public JSONObject queryDetailByAccountIdAndTemplateId(Long accountId, Long templateId) throws Exception {
|
|
|
+ JSONObject returnJson = new JSONObject();
|
|
|
+ RuleTemplate template = ruleTemplateMapper.selectById(templateId);
|
|
|
+ if (Check.isNull(ruleTemplateMapper)) {
|
|
|
+ throw new Exception("获取模板基本信息为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ returnJson.put("templateId", template.getId());
|
|
|
+ returnJson.put("templateName", template.getTemplateName());
|
|
|
+ returnJson.put("mediaType", template.getMediaType());
|
|
|
+ JSONArray groupIds = JSONArray.parseArray(template.getGroupIds());
|
|
|
+ if (Check.isNull(groupIds)) {
|
|
|
+ throw new Exception("未获取规则集");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ JSONArray ruleList = new JSONArray();
|
|
|
+ for (int i = 0; i < groupIds.size(); i++) {
|
|
|
+ Long groupId = groupIds.getLong(i);
|
|
|
+ RuleGroup group = ruleGroupService.getById(groupId);
|
|
|
+ if (Check.isNull(group)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ JSONObject groupJson = new JSONObject();
|
|
|
+ groupJson.put("groupId", group.getId());
|
|
|
+ groupJson.put("groupName", group.getGroupName());
|
|
|
+ groupJson.put("ruleType", group.getRuleType());
|
|
|
+ groupJson.put("ruleRelationship", group.getRuleRelationship());
|
|
|
+ groupJson.put("remark", group.getRemark());
|
|
|
+ groupJson.put("operate", group.getOperate());
|
|
|
+ groupJson.put("sendType", group.getSendType());
|
|
|
+ groupJson.put("isCopy", group.getIsCopy());
|
|
|
+ groupJson.put("isRequired", group.getIsRequired());
|
|
|
+ JSONArray ruleIds = JSONArray.parseArray(group.getRuleIds());
|
|
|
+ if (Check.isNull(ruleIds)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ JSONArray ruleDetail = new JSONArray();
|
|
|
+ for (int j = 0; j < ruleIds.size(); j++) {
|
|
|
+ Long ruleId = ruleIds.getLong(j);
|
|
|
+ RuleBase ruleBase = ruleBaseService.getById(ruleId);
|
|
|
+ if (Check.isNull(ruleBase)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ JSONObject ruleJson = new JSONObject();
|
|
|
+ ruleJson.put("ruleId", ruleBase.getId());
|
|
|
+ ruleJson.put("ruleName", ruleBase.getRuleName());
|
|
|
+ ruleJson.put("judgeFormat", ruleBase.getJudgeFormat());
|
|
|
+ ruleJson.put("indicatorCode", ruleBase.getIndicatorCode());
|
|
|
+ ruleJson.put("ruleCondition", ruleBase.getRuleCondition());
|
|
|
+ QueryWrapper<RuleAccountThreshold> accountThresholdQueryWrapper = new QueryWrapper<>();
|
|
|
+ accountThresholdQueryWrapper.eq("account_id", accountId);
|
|
|
+ accountThresholdQueryWrapper.eq("rule_id", ruleId);
|
|
|
+ RuleAccountThreshold threshold = accountThresholdService.getOne(accountThresholdQueryWrapper);
|
|
|
+ if (!Check.isNull(threshold)) {
|
|
|
+ ruleJson.put("threshold", threshold.getThreshoId());
|
|
|
+ }
|
|
|
+ ruleJson.put("ruleDimension", ruleBase.getRuleDimension());
|
|
|
+ ruleJson.put("variableType", ruleBase.getVariableType());
|
|
|
+ /**
|
|
|
+ * 查询指标对应信息
|
|
|
+ */
|
|
|
+ QueryWrapper<RuleIndicator> indicatorQueryWrapper = new QueryWrapper<>();
|
|
|
+ indicatorQueryWrapper.eq("code", ruleBase.getIndicatorCode());
|
|
|
+ indicatorQueryWrapper.eq("dimension", ruleBase.getRuleDimension());
|
|
|
+ indicatorQueryWrapper.last("limit 1");
|
|
|
+ RuleIndicator ruleIndicator = ruleIndicatorService.getOne(indicatorQueryWrapper);
|
|
|
+ if (!Check.isNull(ruleIndicator)) {
|
|
|
+ ruleJson.put("dataType", ruleIndicator.getDataType());
|
|
|
+ ruleJson.put("dictId", ruleIndicator.getDictId());
|
|
|
+ ruleJson.put("dataUnit", ruleIndicator.getDataUnit());
|
|
|
+ ruleJson.put("name", ruleIndicator.getName());
|
|
|
+ ruleJson.put("modelType", ruleIndicator.getModelType());
|
|
|
+ }
|
|
|
+
|
|
|
+ ruleDetail.add(ruleJson);
|
|
|
+ }
|
|
|
+ groupJson.put("ruleDetail", ruleDetail);
|
|
|
+ ruleList.add(groupJson);
|
|
|
+ }
|
|
|
+
|
|
|
+ returnJson.put("ruleList", ruleList);
|
|
|
+ return returnJson;
|
|
|
+ }
|
|
|
}
|