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