|
@@ -1,18 +1,8 @@
|
|
|
package cn.com.ctop.alarm.modules.service.impl;
|
|
|
|
|
|
import cn.com.ctop.alarm.modules.constant.MatchLogic;
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleAccountTemplate;
|
|
|
-import cn.com.ctop.alarm.modules.entity.RuleAccountThreshold;
|
|
|
-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.mapper.RuleAccountTemplateMapper;
|
|
|
-import cn.com.ctop.alarm.modules.mapper.RuleAccountThresholdMapper;
|
|
|
-import cn.com.ctop.alarm.modules.mapper.RuleBaseMapper;
|
|
|
-import cn.com.ctop.alarm.modules.mapper.RuleGroupMapper;
|
|
|
-import cn.com.ctop.alarm.modules.mapper.RuleIndicatorMapper;
|
|
|
-import cn.com.ctop.alarm.modules.mapper.RuleTemplateMapper;
|
|
|
+import cn.com.ctop.alarm.modules.entity.*;
|
|
|
+import cn.com.ctop.alarm.modules.mapper.*;
|
|
|
import cn.com.ctop.alarm.modules.service.IRuleAccountTemplateService;
|
|
|
import cn.com.ctop.alarm.modules.service.IRuleGroupService;
|
|
|
import cn.com.ctop.common.module.entity.CtopOauthToken;
|
|
@@ -34,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* 规则组
|
|
@@ -469,7 +460,15 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
if (Check.isNull(ruleDetail)) {
|
|
|
throw new Exception("规则组下指标不能为空");
|
|
|
}
|
|
|
+
|
|
|
+ Integer isCopy = groupJson.getInteger("isCopy");
|
|
|
+ String batchId = null;
|
|
|
+ if (isCopy == 1) {
|
|
|
+ batchId = UUID.randomUUID().toString().replace("-", "");
|
|
|
+
|
|
|
+ }
|
|
|
JSONArray ruleIds = new JSONArray();
|
|
|
+ JSONArray thresholdIds = new JSONArray();
|
|
|
for (int j = 0; j < ruleDetail.size(); j++) {
|
|
|
JSONObject ruleDetailJson = ruleDetail.getJSONObject(j);
|
|
|
RuleBase ruleBase = new RuleBase();
|
|
@@ -481,7 +480,8 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
ruleBase.setRuleDimension(ruleDetailJson.getString("ruleDimension"));
|
|
|
ruleBase.setJudgeFormat(ruleDetailJson.getInteger("judgeFormat"));
|
|
|
ruleBase.setIsUnlimited(ruleDetailJson.getInteger("isUnlimited"));
|
|
|
- int insert = ruleBaseMapper.insert(ruleBase); // 添加基础规则
|
|
|
+ int insert = ruleBaseMapper.insert(ruleBase); // 添加基础规则
|
|
|
+
|
|
|
if (insert > 0) {
|
|
|
if (!Check.isNull(accountList)) {
|
|
|
for (RuleAccountTemplate accountTemplate : accountList) {
|
|
@@ -496,8 +496,14 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
}
|
|
|
RuleAccountThreshold threshold = new RuleAccountThreshold();
|
|
|
threshold.setAccountId(accountId);
|
|
|
+ if (isCopy == 1) {
|
|
|
+ threshold.setBatchNo(batchId);
|
|
|
+ }
|
|
|
threshold.setRuleId(ruleBase.getId());
|
|
|
- ruleAccountThresholdMapper.insert(threshold); // 默认将新建的规则同步到已应用的账户下
|
|
|
+ int thresholdInsert = ruleAccountThresholdMapper.insert(threshold);// 默认将新建的规则同步到已应用的账户下
|
|
|
+ if (thresholdInsert > 0) {
|
|
|
+ thresholdIds.add(threshold.getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
ruleIds.add(ruleBase.getId()); // 获取基本规则集
|
|
@@ -514,15 +520,21 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
ruleGroup.setIsRequired(groupJson.getInteger("isRequired"));
|
|
|
boolean save = ruleGroupService.save(ruleGroup); // 新增规则组
|
|
|
if (save) {
|
|
|
-
|
|
|
for (int j = 0; j < ruleIds.size(); j++) {
|
|
|
Long ruleId = ruleIds.getLong(j);
|
|
|
RuleBase updateRuleBase = new RuleBase();
|
|
|
updateRuleBase.setId(ruleId);
|
|
|
updateRuleBase.setGroupId(ruleGroup.getId());
|
|
|
- ruleBaseMapper.updateById(updateRuleBase);
|
|
|
+ ruleBaseMapper.updateById(updateRuleBase); // 组同步成功之后 基础规则关联到组id
|
|
|
}
|
|
|
+ for (int j = 0; j < thresholdIds.size(); j++) {
|
|
|
+ Long threshold = thresholdIds.getLong(j);
|
|
|
+ RuleAccountThreshold updateThreshold = new RuleAccountThreshold();
|
|
|
+ updateThreshold.setId(threshold);
|
|
|
+ updateThreshold.setGroupId(ruleGroup.getId());
|
|
|
+ ruleAccountThresholdMapper.updateById(updateThreshold); // 同步到阈值之后 阈值关联到组id
|
|
|
|
|
|
+ }
|
|
|
JSONArray groupIds = JSONArray.parseArray(template.getGroupIds());
|
|
|
groupIds.add(ruleGroup.getId());
|
|
|
template.setGroupIds(groupIds.toJSONString());
|