|
@@ -20,10 +20,10 @@ import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
import com.persagy.apm.common.context.poems.PoemsContext;
|
|
import com.persagy.apm.common.context.poems.PoemsContext;
|
|
import com.persagy.apm.common.model.dto.Sort;
|
|
import com.persagy.apm.common.model.dto.Sort;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
-import org.json.JSONArray;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -49,11 +49,11 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
public String createAlarmCondition(AddAlarmConditionDTO addAlarmConditionDTO) {
|
|
public String createAlarmCondition(AddAlarmConditionDTO addAlarmConditionDTO) {
|
|
AlarmCondition alarmCondition = ConvertAlarmConditionTool.INSTANCE.convertAddDto2Entity(addAlarmConditionDTO);
|
|
AlarmCondition alarmCondition = ConvertAlarmConditionTool.INSTANCE.convertAddDto2Entity(addAlarmConditionDTO);
|
|
List<List<CalculateMethodDTO>> frontend = addAlarmConditionDTO.getFrontend();
|
|
List<List<CalculateMethodDTO>> frontend = addAlarmConditionDTO.getFrontend();
|
|
- addAlarmConditionDTO.getInfoCodes();
|
|
|
|
|
|
+ List<List<String>> infoCodes = addAlarmConditionDTO.getInfoCodes();
|
|
Object json = JSON.toJSON(frontend);
|
|
Object json = JSON.toJSON(frontend);
|
|
alarmCondition.setFrontend(json);
|
|
alarmCondition.setFrontend(json);
|
|
//将前端公式转换成后台公式
|
|
//将前端公式转换成后台公式
|
|
- String backend = frontend2Backend(frontend);
|
|
|
|
|
|
+ String backend = frontend2Backend(frontend,infoCodes);
|
|
alarmCondition.setBackend(backend);
|
|
alarmCondition.setBackend(backend);
|
|
// 设置默认值
|
|
// 设置默认值
|
|
setDefaultValue(alarmCondition);
|
|
setDefaultValue(alarmCondition);
|
|
@@ -61,31 +61,67 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
return alarmCondition.getId();
|
|
return alarmCondition.getId();
|
|
}
|
|
}
|
|
|
|
|
|
- private String frontend2Backend(List<List<CalculateMethodDTO>> frontend) {
|
|
|
|
- StringBuffer sb = new StringBuffer();
|
|
|
|
- for (List<CalculateMethodDTO> calculateMethodDTOS : frontend) {
|
|
|
|
|
|
+ private String frontend2Backend(List<List<CalculateMethodDTO>> frontend, List<List<String>> infoCodes) {
|
|
|
|
+ List<String> nullList = new ArrayList<>();
|
|
|
|
+ StringBuffer allNotNull = new StringBuffer();
|
|
|
|
+ StringBuffer allNull = new StringBuffer();
|
|
|
|
+ for (List<String> infoCode : infoCodes) {
|
|
StringBuffer notNullString = new StringBuffer();
|
|
StringBuffer notNullString = new StringBuffer();
|
|
- notNullString.append("(");
|
|
|
|
StringBuffer nullString = new StringBuffer();
|
|
StringBuffer nullString = new StringBuffer();
|
|
nullString.append("(");
|
|
nullString.append("(");
|
|
|
|
+ notNullString.append("(");
|
|
|
|
+ for (String s : infoCode) {
|
|
|
|
+ notNullString.append(s).append("!=NaN").append(" && ");
|
|
|
|
+ nullString.append(s).append("==NaN").append(" || ");
|
|
|
|
+ }
|
|
|
|
+ notNullString.delete(notNullString.length() - 4, notNullString.length()).append(")").append("||");
|
|
|
|
+ allNotNull.append("(").append(notNullString).append(" || ");
|
|
|
|
+ nullString.delete(nullString.length() - 4, nullString.length()).append(")");
|
|
|
|
+ nullList.add(nullString.toString());
|
|
|
|
+ }
|
|
|
|
+ allNotNull.delete(allNotNull.length() - 4, allNotNull.length()).append(")");
|
|
|
|
+ for (int i = 0; i < frontend.size(); i++) {
|
|
|
|
+ StringBuffer calculateString = new StringBuffer();
|
|
|
|
+ for (int j = 0; j < frontend.get(i).size(); j++) {
|
|
|
|
+ CalculateMethodDTO calculateMethodDTO = frontend.get(i).get(j);
|
|
|
|
+ calculateString.append("(")
|
|
|
|
+ .append(calculateMethodDTO.getMonitorIndicatorId())
|
|
|
|
+ .append(calculateMethodDTO.getOperator())
|
|
|
|
+ .append(calculateMethodDTO.getFormula()).append(")")
|
|
|
|
+ .append(" && ");
|
|
|
|
+ }
|
|
|
|
+ calculateString.append("(").delete(calculateString.length() - 4, calculateString.length()).append(")");
|
|
|
|
+ allNull.append(nullList.get(i)).append("?true:").append(calculateString).append("||");
|
|
|
|
+ }
|
|
|
|
+ StringBuffer substring = new StringBuffer();
|
|
|
|
+ substring.append(allNotNull).append(allNull);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /*StringBuffer allNotNull = new StringBuffer();
|
|
|
|
+ StringBuffer allNull = new StringBuffer();
|
|
|
|
+ for (List<CalculateMethodDTO> calculateMethodDTOS : frontend) {
|
|
|
|
+ StringBuffer notNullString = new StringBuffer();
|
|
|
|
+ StringBuffer nullString = new StringBuffer();
|
|
StringBuffer calculateString = new StringBuffer();
|
|
StringBuffer calculateString = new StringBuffer();
|
|
for (CalculateMethodDTO calculateMethodDTO : calculateMethodDTOS) {
|
|
for (CalculateMethodDTO calculateMethodDTO : calculateMethodDTOS) {
|
|
- nullString.append(calculateMethodDTO.getMonitorIndicatorId()).append("==NaN").append("||");
|
|
|
|
- notNullString.append("(").append(calculateMethodDTO.getMonitorIndicatorId()).append("!=NaN").append("&&");
|
|
|
|
|
|
+ nullString.append(calculateMethodDTO.getMonitorIndicatorId()).append("==NaN").append(" || ");
|
|
|
|
+ notNullString.append(calculateMethodDTO.getMonitorIndicatorId()).append("!=NaN").append(" && ");
|
|
calculateString.append("(")
|
|
calculateString.append("(")
|
|
.append(calculateMethodDTO.getMonitorIndicatorId())
|
|
.append(calculateMethodDTO.getMonitorIndicatorId())
|
|
.append(calculateMethodDTO.getOperator())
|
|
.append(calculateMethodDTO.getOperator())
|
|
.append(calculateMethodDTO.getFormula()).append(")")
|
|
.append(calculateMethodDTO.getFormula()).append(")")
|
|
.append(" && ");
|
|
.append(" && ");
|
|
}
|
|
}
|
|
- notNullString.append(")").append("||");
|
|
|
|
- //sb.append(calculateString.substring(0, calculateString.length() - 4)).append(" || ");
|
|
|
|
|
|
+ notNullString.delete(notNullString.length() - 4, notNullString.length()).append(")");
|
|
|
|
+ allNotNull.append("(").append(notNullString).append(" || ");
|
|
|
|
+ allNull.append("(").append("(").append(nullString.substring(0, nullString.length() - 4)).append(")").append("?true:").append("(").append(calculateString.substring(0, calculateString.length() - 4)).append(")").append(")").append(" || ");
|
|
}
|
|
}
|
|
- String substring = sb.substring(0, sb.length() - 4);
|
|
|
|
-// for (Map.Entry<String, String> entry : infoCodes.entrySet()) {
|
|
|
|
-// calculateString.toString().replace(entry.getKey(),entry.getValue());
|
|
|
|
-// }
|
|
|
|
- return substring;
|
|
|
|
|
|
+ StringBuffer substring = new StringBuffer();
|
|
|
|
+ substring.append("(").append(allNotNull.substring(0, allNotNull.length() - 4)).append(")").append(" && ").append("(").append(allNull.substring(0, allNull.length() - 4)).append(")").toString();*/
|
|
|
|
+ return substring.toString();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -139,7 +175,8 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
String frontJson = JSON.toJSONString(frontend);
|
|
String frontJson = JSON.toJSONString(frontend);
|
|
alarmCondition.setFrontend(frontJson);
|
|
alarmCondition.setFrontend(frontJson);
|
|
//将前端公式转换成后台公式
|
|
//将前端公式转换成后台公式
|
|
- String backend = frontend2Backend(frontend);
|
|
|
|
|
|
+ List<List<String>> infoCodes = updateAlarmConditionDTO.getInfoCodes();
|
|
|
|
+ String backend = frontend2Backend(frontend, infoCodes);
|
|
alarmCondition.setBackend(backend);
|
|
alarmCondition.setBackend(backend);
|
|
}
|
|
}
|
|
updateById(alarmCondition);
|
|
updateById(alarmCondition);
|