|
@@ -12,6 +12,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* 规则模板
|
|
|
*
|
|
@@ -67,9 +69,7 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
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("模板具体规则不能为空");
|
|
@@ -266,8 +266,6 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
if (Check.isNull(groupIds)) {
|
|
|
throw new Exception("未获取规则集");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
JSONArray ruleList = new JSONArray();
|
|
|
for (int i = 0; i < groupIds.size(); i++) {
|
|
|
Long groupId = groupIds.getLong(i);
|
|
@@ -285,68 +283,139 @@ public class RuleTemplateServiceImpl extends ServiceImpl<RuleTemplateMapper, Rul
|
|
|
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)) {
|
|
|
+ if (group.getIsCopy() == 0) { // 规则不可复制
|
|
|
+ JSONArray ruleIds = JSONArray.parseArray(group.getRuleIds());
|
|
|
+ if (Check.isNull(ruleIds)) {
|
|
|
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)) {
|
|
|
- String value = threshold.getThreshold();
|
|
|
- if (!Check.isNull(value)) {
|
|
|
- if (value.contains("[") && value.contains("]")) {
|
|
|
- ruleJson.put("threshold", JSONArray.parseArray(value));
|
|
|
+ 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);
|
|
|
+ accountThresholdQueryWrapper.eq("group_id", groupId);
|
|
|
+ RuleAccountThreshold threshold = accountThresholdService.getOne(accountThresholdQueryWrapper); // 查询基础规则绑定的阈值
|
|
|
+ if (!Check.isNull(threshold)) {
|
|
|
+ String value = threshold.getThreshold();
|
|
|
+ if (!Check.isNull(value)) {
|
|
|
+ if (value.contains("[") && value.contains("]")) {
|
|
|
+ ruleJson.put("threshold", JSONArray.parseArray(value));
|
|
|
+ } else {
|
|
|
+ ruleJson.put("threshold", value);
|
|
|
+ }
|
|
|
} else {
|
|
|
- ruleJson.put("threshold", value);
|
|
|
+ ruleJson.put("threshold", null);
|
|
|
}
|
|
|
} else {
|
|
|
ruleJson.put("threshold", null);
|
|
|
}
|
|
|
- // ruleJson.put("threshold", threshold.getThreshoId());
|
|
|
- } else {
|
|
|
- ruleJson.put("threshold", null);
|
|
|
+
|
|
|
+ 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) { // 如果规则可以复制
|
|
|
|
|
|
- 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());
|
|
|
+ List<String> batchNoList = accountThresholdService.getBatchNo(accountId, groupId); // 查询批次号
|
|
|
+ if (Check.isNull(batchNoList)) {
|
|
|
+ continue;
|
|
|
}
|
|
|
|
|
|
- ruleDetail.add(ruleJson);
|
|
|
+ JSONArray ruleArr = new JSONArray();
|
|
|
+ for (int j = 0; j < batchNoList.size(); j++) {
|
|
|
+ String batchNo = (String) batchNoList.get(j);
|
|
|
+ if (Check.isNull(batchNo)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<RuleAccountThreshold> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("account_id", accountId);
|
|
|
+ queryWrapper.eq("group_id", groupId);
|
|
|
+ queryWrapper.eq("batch_no", batchNo);
|
|
|
+ List<RuleAccountThreshold> list = accountThresholdService.list(queryWrapper); // 根据批次号查询绑定的基础规则阈值集合
|
|
|
+ if (Check.isNull(list)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (RuleAccountThreshold threshold : list) {
|
|
|
+ RuleBase ruleBase = ruleBaseService.getById(threshold.getRuleId()); // 根据阈值集合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());
|
|
|
+ String value = threshold.getThreshold();
|
|
|
+ if (!Check.isNull(value)) {
|
|
|
+ if (value.contains("[") && value.contains("]")) {
|
|
|
+ ruleJson.put("threshold", JSONArray.parseArray(value));
|
|
|
+ } else {
|
|
|
+ ruleJson.put("threshold", value);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ruleJson.put("threshold", null);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ ruleArr.add(ruleJson);
|
|
|
+ }
|
|
|
+
|
|
|
+ ruleDetail.add(ruleArr);
|
|
|
+ }
|
|
|
+ groupJson.put("ruleDetail", ruleDetail);
|
|
|
}
|
|
|
- groupJson.put("ruleDetail", ruleDetail);
|
|
|
ruleList.add(groupJson);
|
|
|
}
|
|
|
-
|
|
|
returnJson.put("ruleList", ruleList);
|
|
|
return returnJson;
|
|
|
}
|