Prechádzať zdrojové kódy

Merge branch 'master_rule_engine' of http://git.tjyourong.com.cn/ctop/adsp-boot into master_rule_engine

zhaoxian 5 rokov pred
rodič
commit
3166b38b40

+ 6 - 3
module-alarm/src/main/java/cn/com/ctop/alarm/modules/controller/RuleGroupController.java

@@ -116,27 +116,30 @@ public class RuleGroupController {
                 Long templateId = ruleGroup.getTemplateId();
                 RuleTemplate ruleTemplate = ruleTemplateService.getById(templateId);
                 if (!Check.isNull(ruleTemplate)) {
+                    JSONArray newGroupIds = new JSONArray();
                     JSONArray groupIds = JSONArray.parseArray(ruleTemplate.getGroupIds());
                     Iterator<Object> o = groupIds.iterator();
                     while (o.hasNext()) {
-                        System.err.println(o.next());
                         String groupId = String.valueOf(o.next());
                         if (groupId.equals(id)) {
-                            o.remove();
+                            continue;
                         }
+                        newGroupIds.add(Long.valueOf(groupId));
                     }
-                    ruleTemplate.setGroupIds(groupIds.toJSONString());
+                    ruleTemplate.setGroupIds(newGroupIds.toJSONString());
                     ruleTemplateService.updateById(ruleTemplate);
                 }
                 ruleGroupService.removeById(id);
             }
         } catch (Exception e) {
+            e.printStackTrace();
             log.error("删除失败", e.getMessage());
             return Result.error("删除失败!");
         }
         return Result.ok("删除成功!");
     }
 
+
     /**
      * 分页列表查询
      *

+ 24 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/controller/RuleTemplateController.java

@@ -88,6 +88,30 @@ public class RuleTemplateController {
 
 
     /**
+     * 根据 模板id  账户id 查询详情
+     *
+     * @param
+     * @return
+     */
+
+    @GetMapping(value = "/queryDetailById")
+    public Result<JSONObject> queryDetailByAccountIdAndTemplateId(Long accountId, Long templateId) {
+        Result<JSONObject> result = new Result<>();
+        try {
+            JSONObject ruleTemplateJson = ruleTemplateService.queryDetailByAccountIdAndTemplateId(accountId, templateId);
+            result.setSuccess(true);
+            result.setResult(ruleTemplateJson);
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
+        }
+
+        return result;
+    }
+
+
+    /**
      * 分页列表查询
      *
      * @param ruleTemplate

+ 1 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/entity/RuleBase.java

@@ -67,6 +67,7 @@ public class RuleBase {
     private String ruleDimension;
 
     private Integer variableType;// 变量类型
+    private Integer judgeFormat;// 判断类型
 
     /**
      * createTime

+ 5 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/entity/RuleGroup.java

@@ -67,6 +67,11 @@ public class RuleGroup {
      * 规则解释
      */
     private String remark;
+
+
+    private Boolean isRequired;//  是否必填  true 是 false 否
+    private Boolean isCopy;//  是否可复制  true 是 false 否
+
     /**
      * createTime
      */

+ 2 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/service/IRuleTemplateService.java

@@ -15,4 +15,6 @@ public interface IRuleTemplateService extends IService<RuleTemplate> {
     JSONObject createTemplate(JSONObject requestJson);
 
     JSONObject queryDetailById(String id) throws Exception;
+
+    JSONObject queryDetailByAccountIdAndTemplateId(Long accountId, Long templateId) throws Exception;
 }

+ 3 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/service/impl/RuleGroupServiceImpl.java

@@ -366,6 +366,7 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
                     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) {
                         if (!Check.isNull(accountList)) {
@@ -395,6 +396,8 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
                 ruleGroup.setRuleRelationship(groupJson.getString("ruleRelationship"));
                 ruleGroup.setGroupName(groupJson.getString("groupName"));
                 ruleGroup.setRemark(groupJson.getString("remark"));
+                ruleGroup.setIsCopy(groupJson.getBoolean("isCopy"));
+                ruleGroup.setIsRequired(groupJson.getBoolean("isRequired"));
                 boolean save = ruleGroupService.save(ruleGroup); // 新增规则组
                 if (save) {
 

+ 106 - 10
module-alarm/src/main/java/cn/com/ctop/alarm/modules/service/impl/RuleTemplateServiceImpl.java

@@ -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;
+    }
 }