Commit fc201591 authored by chenzhao's avatar chenzhao

Merge branch 'developer' of http://39.98.45.134:8090/moa/amos-boot-biz into developer

parents 1433c184 3c0464fa
...@@ -90,6 +90,9 @@ public class CommonConstans { ...@@ -90,6 +90,9 @@ public class CommonConstans {
public static final String QueryStringEquipmentNumberKeyword = "equipmentNumber.keyword"; public static final String QueryStringEquipmentNumberKeyword = "equipmentNumber.keyword";
public static final String QueryStringValue = "value"; public static final String QueryStringValue = "value";
public static final String QueryStringValueKeyword = "value.keyword"; public static final String QueryStringValueKeyword = "value.keyword";
public static final String QueryStringValueLabel = "valueLabel";
public static final String QueryStringValueLabelKeyword = "valueLabel.keyword";
public static final String QueryStringDataType = "dataType"; public static final String QueryStringDataType = "dataType";
public static final String QueryStringDisplayName = "displayName"; public static final String QueryStringDisplayName = "displayName";
public static final String QueryStringDisplayNameKeyword = "displayName.keyword"; public static final String QueryStringDisplayNameKeyword = "displayName.keyword";
......
...@@ -18,10 +18,9 @@ import com.yeejoin.amos.boot.module.jxiop.biz.initdata.StationCacheDataInit; ...@@ -18,10 +18,9 @@ import com.yeejoin.amos.boot.module.jxiop.biz.initdata.StationCacheDataInit;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.SjglZsjZsbtzMapper; import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.SjglZsjZsbtzMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.repository.ESEquipmentsRepository; import com.yeejoin.amos.boot.module.jxiop.biz.repository.ESEquipmentsRepository;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil; import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.*;
import org.elasticsearch.index.query.MatchPhraseQueryBuilder; import org.elasticsearch.script.Script;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.script.ScriptType;
import org.elasticsearch.index.query.WildcardQueryBuilder;
import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations; import org.elasticsearch.search.aggregations.Aggregations;
...@@ -598,4 +597,45 @@ public class CommonServiceImpl { ...@@ -598,4 +597,45 @@ public class CommonServiceImpl {
} }
return null; return null;
} }
public <T> List<T> getListDataByCondtionsByValueNotEqValueLabel(Map<String, List<String>> mustQuerCondtion, Map<String, String> shouldQuerCondtion, Map<String, String> notMustQuerCondtion, Class<T> tClass) {
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
if (!ObjectUtils.isEmpty(mustQuerCondtion)) {
for (String key : mustQuerCondtion.keySet()) {
List<String> va = mustQuerCondtion.get(key);
queryBuilder.must(QueryBuilders.termsQuery(key, va));
}
}
if (!ObjectUtils.isEmpty(shouldQuerCondtion)) {
for (String key : shouldQuerCondtion.keySet()) {
queryBuilder.should(QueryBuilders.wildcardQuery(key, shouldQuerCondtion.get(key)));
}
}
if (!ObjectUtils.isEmpty(notMustQuerCondtion)) {
for (String key : notMustQuerCondtion.keySet()) {
queryBuilder.mustNot(QueryBuilders.termsQuery(key, notMustQuerCondtion.get(key)));
}
}
Map<String, Object> params = new HashMap<>();
params.put("param1", "");
Script script = new Script(ScriptType.INLINE, Script.DEFAULT_SCRIPT_LANG,
"doc['value.keyword'].value != doc['valueLabel.keyword'].value + params.param1", params);
ScriptQueryBuilder scriptQueryBuilder = QueryBuilders.scriptQuery(script);
queryBuilder.filter(scriptQueryBuilder);
Query query = new NativeSearchQueryBuilder()
.withQuery(queryBuilder)
.build();
query.setTrackTotalHits(true);
SearchHits search = elasticsearchTemplate.search(query, tClass);
if (search.hasSearchHits()) {
List<SearchHit<T>> searchHitList = search.getSearchHits();
List<T> list = searchHitList.stream().map(hit -> hit.getContent()).collect(Collectors.toList());
return list;
}
return null;
}
} }
...@@ -131,7 +131,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -131,7 +131,8 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
waringData= waringData.stream().filter(esEquipments -> esEquipments.getEquipmentNumber().equals(equipmentNumber)).collect(Collectors.toList()); waringData= waringData.stream().filter(esEquipments -> esEquipments.getEquipmentNumber().equals(equipmentNumber)).collect(Collectors.toList());
} }
if (CollectionUtils.isNotEmpty(waringData)) { if (CollectionUtils.isNotEmpty(waringData)) {
waringData=waringData.stream().sorted(Comparator.comparing(ESEquipments::getCreatedTime).reversed()).collect(Collectors.toList()).subList(((current - 1) * size),(current*size)); Integer newSize = waringData.size() >= size ? size : waringData.size();
waringData=waringData.stream().sorted(Comparator.comparing(ESEquipments::getCreatedTime).reversed()).collect(Collectors.toList()).subList(((current - 1) * newSize),(current*newSize));
} }
//对于查询到的告警信息进行按照时间顺序进行排序 //对于查询到的告警信息进行按照时间顺序进行排序
DataGridMock DataGridMock = new DataGridMock(current, !waringData.isEmpty() ? waringData.size() : 0, false, current, waringData); DataGridMock DataGridMock = new DataGridMock(current, !waringData.isEmpty() ? waringData.size() : 0, false, current, waringData);
...@@ -155,14 +156,16 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -155,14 +156,16 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
String gateway = stationBasic.getFanGatewayId(); String gateway = stationBasic.getFanGatewayId();
Map<String,List<String>> queryCodntion = new HashMap<>(); Map<String,List<String>> queryCodntion = new HashMap<>();
queryCodntion.put(CommonConstans.QueryStringGateWayId,Arrays.asList(gateway)); queryCodntion.put(CommonConstans.QueryStringGateWayId,Arrays.asList(gateway));
queryCodntion.put(CommonConstans.QueryStringIsAlarm,Arrays.asList("1")); queryCodntion.put(CommonConstans.QueryStringIsAlarmKeyword,Arrays.asList("1"));
List<ESEquipments> alldata = commonServiceImpl.getListDataByCondtions(queryCodntion,null,ESEquipments.class); HashMap<String, String> notMustMap = new HashMap<>();
List<ESEquipments> waringData = alldata.stream().filter(esEquipments -> !esEquipments.getValue().equals("0.0")&&!esEquipments.getValue().equals(esEquipments.getValueLabel())).collect(Collectors.toList()); notMustMap.put(CommonConstans.QueryStringValueKeyword, "0.0");
String table = gateway; notMustMap.put(CommonConstans.QueryStringValueLabelKeyword, "0.0");
List<ESEquipments> waringData = commonServiceImpl.getListDataByCondtionsByValueNotEqValueLabel(queryCodntion,null, notMustMap, ESEquipments.class);
if (StringUtils.isNotEmpty(equipmentNumber)) { if (StringUtils.isNotEmpty(equipmentNumber)) {
waringData= waringData.stream().filter(esEquipments -> esEquipments.getEquipmentNumber().equals(equipmentNumber)&&esEquipments.getEquipmentSpecificName().contains("风机")).collect(Collectors.toList()); waringData= waringData.stream().filter(esEquipments -> esEquipments.getEquipmentNumber().equals(equipmentNumber)&&esEquipments.getEquipmentSpecificName().contains("风机")).collect(Collectors.toList());
} }
List<ESEquipments> lisSort=waringData.stream().sorted(Comparator.comparing(ESEquipments::getCreatedTime).reversed()).collect(Collectors.toList()).subList(((current - 1) * size),(current*size)); Integer newSize = waringData.size() >= size ? size : waringData.size();
List<ESEquipments> lisSort=waringData.stream().sorted(Comparator.comparing(ESEquipments::getCreatedTime).reversed()).collect(Collectors.toList()).subList(((current - 1) * newSize),(current*newSize));
//对于查询到的告警信息进行按照时间顺序进行排序 //对于查询到的告警信息进行按照时间顺序进行排序
//构建平台数据 //构建平台数据
DataGridMock DataGridMock = new DataGridMock(current, !waringData.isEmpty() ? waringData.size(): 0, false, current, lisSort); DataGridMock DataGridMock = new DataGridMock(current, !waringData.isEmpty() ? waringData.size(): 0, false, current, lisSort);
...@@ -774,10 +777,10 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -774,10 +777,10 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public List<Map<String, Object>> getAnalogQuantity(String gatewayId, String frontModule, String systemType) { public List<Map<String, Object>> getAnalogQuantity(String gatewayId, String frontModule, String systemType) {
Map<String, List<String>> queryCondtion = new HashMap<>(); Map<String, List<String>> queryCondtion = new HashMap<>();
queryCondtion.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId)); queryCondtion.put(CommonConstans.QueryStringGateWayId, Arrays.asList(gatewayId));
Map<String, String> shouldCondtion = new HashMap<>(); Map<String, String> likeMap = new HashMap<>();
shouldCondtion.put(CommonConstans.QueryStringFrontMoudle, frontModule); likeMap.put(CommonConstans.QueryStringFrontMoudleNotKeyWord, frontModule);
shouldCondtion.put(CommonConstans.QueryStringSystemType, systemType); likeMap.put(CommonConstans.QueryStringSystemType, systemType);
List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtions(queryCondtion, shouldCondtion, ESEquipments.class); List<ESEquipments> esEquipmentsList = commonServiceImpl.getListDataByCondtionsAndLike(queryCondtion, null, ESEquipments.class, likeMap);
List<ESEquipments> listData = esEquipmentsList.stream().filter(esEquipments -> !esEquipments.getDisplayName().equals("")).collect(Collectors.toList()); List<ESEquipments> listData = esEquipmentsList.stream().filter(esEquipments -> !esEquipments.getDisplayName().equals("")).collect(Collectors.toList());
List<Map<String, Object>> statusMaps = new ArrayList<>(); List<Map<String, Object>> statusMaps = new ArrayList<>();
for (ESEquipments listDatum : listData) { for (ESEquipments listDatum : listData) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment