|
@@ -1,19 +1,124 @@
|
|
|
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.RuleTemplate;
|
|
|
+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.IRuleTemplateService;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
+import cn.com.ctop.common.module.utils.Check;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
|
/**
|
|
|
* 规则模板
|
|
|
+ *
|
|
|
* @author jeecg-boot
|
|
|
- * @date 2020-11-15
|
|
|
* @version V1.0
|
|
|
+ * @date 2020-11-15
|
|
|
*/
|
|
|
@Service
|
|
|
public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, RuleTemplate> implements IRuleTemplateService {
|
|
|
+ @Autowired
|
|
|
+ private IRuleBaseService ruleBaseService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RuleBaseMapper ruleBaseMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IRuleGroupService ruleGroupService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建规则模板
|
|
|
+ *
|
|
|
+ * @param requestJson
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public JSONObject creativeTemplate(JSONObject requestJson) {
|
|
|
+ System.err.println(requestJson);
|
|
|
+ JSONObject returnJson = new JSONObject();
|
|
|
+ try {
|
|
|
+ Integer mediaType = requestJson.getInteger("mediaType");
|
|
|
+ if (Check.isNull(mediaType)) {
|
|
|
+ throw new Exception("请传入媒体类型");
|
|
|
+ }
|
|
|
+ String templateName = requestJson.getString("templateName");
|
|
|
+ if (Check.isNull(templateName)) {
|
|
|
+ throw new Exception("请传入模板名称");
|
|
|
+ }
|
|
|
+ QueryWrapper<RuleTemplate> queryQueryWrapper = new QueryWrapper<>();
|
|
|
+ queryQueryWrapper.eq("media_type", mediaType);
|
|
|
+ queryQueryWrapper.eq("template_name", templateName);
|
|
|
+ RuleTemplate ruleTemplate = this.getOne(queryQueryWrapper);
|
|
|
+ if (!Check.isNull(ruleTemplate)) {
|
|
|
+ throw new Exception("同媒体下模板名称不能相同");
|
|
|
+ }
|
|
|
+ RuleTemplate template = new RuleTemplate();
|
|
|
+ template.setMediaType(mediaType);
|
|
|
+ template.setTemplateName(templateName);
|
|
|
+
|
|
|
+ JSONArray groupIds = new JSONArray();
|
|
|
+
|
|
|
+ JSONArray ruleList = requestJson.getJSONArray("ruleList"); // 模板规则详情
|
|
|
+ if (Check.isNull(ruleList)) {
|
|
|
+ throw new Exception("模板具体规则不能为空");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < ruleList.size(); i++) {
|
|
|
+ JSONObject ruleGroupJson = ruleList.getJSONObject(i);
|
|
|
+ if (!Check.isNull(ruleGroupJson)) {
|
|
|
+ JSONArray ruleDetailArr = ruleGroupJson.getJSONArray("ruleDetail");
|
|
|
+ if (!Check.isNull(ruleDetailArr)) {
|
|
|
+ JSONArray ruleIds = new JSONArray();
|
|
|
+ for (int j = 0; j < ruleDetailArr.size(); j++) {
|
|
|
+ JSONObject ruleDetailJson = ruleDetailArr.getJSONObject(j);
|
|
|
+ if (!Check.isNull(ruleDetailJson)) {
|
|
|
+ RuleBase ruleBase = new RuleBase();
|
|
|
+ ruleBase.setRuleName(ruleDetailJson.getString("ruleName"));
|
|
|
+ ruleBase.setIndicatorCode(ruleDetailJson.getString("indicatorCode"));
|
|
|
+ ruleBase.setRuleCondition(ruleDetailJson.getString("ruleCondition"));
|
|
|
+ ruleBase.setThreshold(ruleDetailJson.getString("threshold"));
|
|
|
+ ruleBase.setVariableType(ruleDetailJson.getInteger("variableType"));
|
|
|
+ ruleBase.setRuleDimension(ruleDetailJson.getString("ruleDimension"));
|
|
|
+ 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.setExplain(ruleGroupJson.getString("explain"));
|
|
|
+ boolean save = ruleGroupService.save(ruleGroup);
|
|
|
+ if (save) {
|
|
|
+ groupIds.add(ruleGroup.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ template.setGroupIds(groupIds.toJSONString());
|
|
|
+ this.save(template);
|
|
|
+ returnJson.put("code", 0);
|
|
|
+ returnJson.put("message", "创建成功");
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ returnJson.put("code", -1);
|
|
|
+ returnJson.put("message", e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
+ return returnJson;
|
|
|
+ }
|
|
|
}
|