|
@@ -9,6 +9,7 @@ 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 lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -21,6 +22,7 @@ import java.util.List;
|
|
|
* @version V1.0
|
|
|
* @date 2020-11-15
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, RuleTemplate> implements IRuleTemplateService {
|
|
|
@Autowired
|
|
@@ -140,6 +142,7 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+ log.info("创建规则模板成功,模板名称:{}", templateName);
|
|
|
returnJson.put("code", 0);
|
|
|
returnJson.put("message", "创建成功");
|
|
|
|
|
@@ -284,6 +287,7 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
groupJson.put("isCopy", group.getIsCopy());
|
|
|
groupJson.put("isRequired", group.getIsRequired());
|
|
|
JSONArray ruleDetail = new JSONArray();
|
|
|
+
|
|
|
if (group.getIsCopy() == 0) { // 规则不可复制
|
|
|
JSONArray ruleIds = JSONArray.parseArray(group.getRuleIds());
|
|
|
if (Check.isNull(ruleIds)) {
|
|
@@ -349,14 +353,12 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
if (Check.isNull(batchNoList)) {
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
- JSONArray ruleArr = new JSONArray();
|
|
|
for (int j = 0; j < batchNoList.size(); j++) {
|
|
|
String batchNo = (String) batchNoList.get(j);
|
|
|
if (Check.isNull(batchNo)) {
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
+ JSONArray ruleArr = new JSONArray();
|
|
|
QueryWrapper<RuleAccountThreshold> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("account_id", accountId);
|
|
|
queryWrapper.eq("group_id", groupId);
|
|
@@ -365,7 +367,6 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
if (Check.isNull(list)) {
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
for (RuleAccountThreshold threshold : list) {
|
|
|
RuleBase ruleBase = ruleBaseService.getById(threshold.getRuleId()); // 根据阈值集合ruleId 查询基础规则信息
|
|
|
if (Check.isNull(ruleBase)) {
|
|
@@ -387,8 +388,6 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
} else {
|
|
|
ruleJson.put("threshold", null);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
ruleJson.put("ruleDimension", ruleBase.getRuleDimension());
|
|
|
ruleJson.put("variableType", ruleBase.getVariableType());
|
|
|
ruleJson.put("isUnlimited", ruleBase.getIsUnlimited());
|
|
@@ -420,4 +419,121 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
return returnJson;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public JSONObject previewTemplate(String id) throws Exception {
|
|
|
+ JSONObject returnJson = new JSONObject();
|
|
|
+ RuleTemplate template = ruleTemplateMapper.selectById(id);
|
|
|
+ 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();
|
|
|
+ if (group.getIsCopy() == 0) {
|
|
|
+ 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());
|
|
|
+ ruleJson.put("threshold", ruleBase.getThreshold());
|
|
|
+ ruleJson.put("ruleDimension", ruleBase.getRuleDimension());
|
|
|
+ ruleJson.put("variableType", ruleBase.getVariableType());
|
|
|
+ ruleJson.put("isUnlimited", ruleBase.getIsUnlimited());
|
|
|
+ /**
|
|
|
+ * 查询指标对应信息
|
|
|
+ */
|
|
|
+ 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);
|
|
|
+ } else if (group.getIsCopy() == 1) {
|
|
|
+ JSONArray array = 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());
|
|
|
+ ruleJson.put("threshold", ruleBase.getThreshold());
|
|
|
+ ruleJson.put("ruleDimension", ruleBase.getRuleDimension());
|
|
|
+ ruleJson.put("variableType", ruleBase.getVariableType());
|
|
|
+ ruleJson.put("isUnlimited", ruleBase.getIsUnlimited());
|
|
|
+ /**
|
|
|
+ * 查询指标对应信息
|
|
|
+ */
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+
|
|
|
+ array.add(ruleJson);
|
|
|
+ }
|
|
|
+ ruleDetail.add(array);
|
|
|
+ groupJson.put("ruleDetail", ruleDetail);
|
|
|
+ }
|
|
|
+ ruleList.add(groupJson);
|
|
|
+ }
|
|
|
+ returnJson.put("ruleList", ruleList);
|
|
|
+ return returnJson;
|
|
|
+ }
|
|
|
+
|
|
|
}
|