From e34d88ad7d3d950da12f032e6932ba14f868db72 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Wed, 21 Aug 2019 10:22:50 +0800
Subject: [PATCH] 修改大屏无人机地图弹窗显示不全问题,设置可拖动
---
src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java | 126 +++++++++++++++++++++++++++++++++---------
1 files changed, 99 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java
index 304ff2c..dea8ca8 100644
--- a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java
@@ -16,9 +16,9 @@
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
-import javax.naming.Name;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
@Service
@@ -29,30 +29,34 @@
OrganizationLayoutMapper orgLayoutMapper;
@Resource
OrganizationSensorUnitMapper orgUnitMapper;
- private static String pageLayoutFixedItems = "page_layout_fixed_items";
+ private static String page_layout_fixed_items = "page_layout_fixed_items";
+ private static String page_layout_versions_sort = "page_layout_versions_sort";
@Resource
DictionaryDataMapper dataMapper;
- private DictionaryData queryDictionaryData(String dictDataKey) {
+ private Optional<String> queryDictionaryDataValue(String dictDataKey) {
DictionaryData query = new DictionaryData();
query.setDictDataKey(dictDataKey);
List<DictionaryData> dataList = dataMapper.select(query);
List<String> fixedItemKeys = new ArrayList<>();
+ String json = null;
if(dataList.size()>0) {
- return dataList.get(0);
+ DictionaryData data = dataList.get(0);
+ json = data.getDictDataValue() != null ? data.getDictDataValue().toString() : null;
}
- return null;
+ return Optional.of(json);
}
@Override
public List<String> getFixedItemKeys() {
- DictionaryData dictionaryData = queryDictionaryData(pageLayoutFixedItems);
+ Optional jsonString = queryDictionaryDataValue(page_layout_fixed_items);
List<String> fixedItemKeys = new ArrayList<>();
- if(dictionaryData!=null && dictionaryData.getDictDataValue()!=null ) {
- List<String> keyList = JSON.parseObject(dictionaryData.getDictDataValue().toString(),
- new TypeReference<List<String>>(){});
- if(keyList!=null) {
- fixedItemKeys.addAll(keyList);
- }
+ if(jsonString.isPresent()) {
+ List<String> keyList = JSON.parseObject(jsonString.get().toString(),
+ new TypeReference<List<String>>(){});
+ if(keyList!=null) {
+ fixedItemKeys.addAll(keyList);
}
+ }
+
return fixedItemKeys;
}
public Integer queryPageConfigCountByOrgId(Integer orgId,String pageType) {
@@ -85,9 +89,7 @@
List<OrganizationLayout> defaultMonitorItems = orgLayoutMapper.selectByExample(example);
List<SensorComb> defaultSensorCombList = defaultMonitorItems.stream().map(
item-> {
- SensorComb sensorComb = new SensorComb();
- sensorComb.setSensorKey(item.getPagePositionValue());
- sensorComb.setIndex(item.getPagePositionIndex());
+ SensorComb sensorComb = SensorComb.generate(item);
return sensorComb;
}
).collect(Collectors.toList());
@@ -100,9 +102,7 @@
List<OrganizationLayout> coreMonitorItems = orgLayoutMapper.selectByExample(example);
List<SensorComb> coreSensorCombList = coreMonitorItems.stream().map(
item-> {
- SensorComb sensorComb = new SensorComb();
- sensorComb.setSensorKey(item.getPagePositionValue());
- sensorComb.setIndex(item.getPagePositionIndex());
+ SensorComb sensorComb = SensorComb.generate(item);
return sensorComb;
}
).collect(Collectors.toList());
@@ -115,9 +115,7 @@
List<OrganizationLayout> fixedMonitorItems = orgLayoutMapper.selectByExample(example);
List<SensorComb> fixedSensorCombList = fixedMonitorItems.stream().map(
item-> {
- SensorComb sensorComb = new SensorComb();
- sensorComb.setSensorKey(item.getPagePositionValue());
- sensorComb.setIndex(item.getPagePositionIndex());
+ SensorComb sensorComb = SensorComb.generate(item);
return sensorComb;
}
).collect(Collectors.toList());
@@ -144,10 +142,11 @@
for (Sensor sensor :sensorList) {
if(sensor.getSensorKey()!=null
&&sensor.getSensorKey().equals(sensorComb.getSensorKey())){
- sensorComb.setName(sensor.getDescription());
- sensorComb.setSensorId(sensor.getId());
- sensorComb.setSourceUnit(sensor.getUnit());
- sensorComb.setTargetUnit(sensor.getUnit());
+ sensorComb.setSensor(sensor);
+// sensorComb.setName(sensor.getDescription());
+// sensorComb.setSensorId(sensor.getId());
+// sensorComb.setSourceUnit(sensor.getUnit());
+// sensorComb.setTargetUnit(sensor.getUnit());
}
}
}
@@ -222,6 +221,78 @@
loadUnitToComb(orgId,rtdLayout);
return rtdLayout;
}
+ private List<Integer> getVersionNosSort() {
+ List<Integer> versionNoList = new ArrayList<>();
+ Optional<String> jsonString = queryDictionaryDataValue(page_layout_versions_sort);
+ if( jsonString.isPresent() ) {
+ versionNoList = JSON.parseArray(jsonString.get(),Integer.class);
+ }
+ return versionNoList;
+ }
+ @Override
+ public RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, List<Integer> versionNos) {
+ RealTimeDeviceLayout rtdLayout = null;
+ if(versionNos.size() == 1) {
+ Integer versionNo = versionNos.get(0);
+ rtdLayout = queryRtdLayoutWithUnit(orgId,versionNo);
+ } else {
+ List<Integer> versionNosSort = getVersionNosSort();
+ Integer resultVersion = null;
+ for( int num =0 ; num < versionNosSort.size(); num++ ) {
+ Integer version =versionNosSort.get(num);
+ for (Integer ver:versionNos) {
+ if(ver == version) {
+ resultVersion = ver;
+ versionNos.remove(ver);
+ break;
+ }
+ }
+ if(resultVersion!=null) {
+ break;
+ }
+ }
+ if(resultVersion != null ) {
+ rtdLayout = queryRtdLayoutWithUnit(orgId,resultVersion);
+ if (rtdLayout !=null) {
+ List<Sensor> sensorList = sensorMapper.selectByVersionNos(versionNos);
+ List<SensorComb> allMonitorItems = new ArrayList<>();
+ allMonitorItems.addAll(rtdLayout.getDefaultMonitorItems());
+ allMonitorItems.addAll(rtdLayout.getCoreMonitorItems());
+ if(allMonitorItems.size()>0 && sensorList!=null) {
+ List<SensorComb> sensrCombPatchs = new ArrayList<>();
+ List<String> fixedItems = getFixedItemKeys();
+ sensorList
+ // ���������������
+ .stream().filter(
+ item -> {
+ return !fixedItems.stream().anyMatch(
+ key-> key.equals(item.getSensorKey())
+ );
+ }
+ ).collect(Collectors.toList()).forEach(sensor -> {
+ boolean isPath = !allMonitorItems.stream().anyMatch(
+ sensorComb -> sensorComb.getSensorId() ==sensor.getId()
+ );
+ if(isPath) {
+ SensorComb sensorComb = SensorComb.generate(sensor);
+ sensrCombPatchs.add(sensorComb);
+ }
+ });
+ if( sensrCombPatchs.size() > 0 ) {
+ RealTimeDeviceLayout rtdLayoutTemp = new RealTimeDeviceLayout();
+ rtdLayoutTemp.setDefaultMonitorItems(sensrCombPatchs);
+ loadUnitToComb(orgId,rtdLayoutTemp);
+ rtdLayout.getDefaultMonitorItems()
+ .addAll(rtdLayoutTemp.getDefaultMonitorItems());
+ }
+ }
+ }
+ }
+ }
+
+ return rtdLayout;
+ }
+
// ���������������������������������
private void loadUnitToComb(Integer orgId,RealTimeDeviceLayout rtdLayout) {
List<SensorComb> allList = new ArrayList<>();
@@ -234,8 +305,9 @@
SensorUnit sensorUnit = orgUnit.getSensorUnit();
if( sensorUnit!=null && sensorUnit.getSensorId() !=null) {
if(sensorUnit.getSensorId() == item.getSensorId()) {
- item.setTargetUnit(sensorUnit.getName());
- item.setEvaluator(sensorUnit.getRules());
+ item.setUnit(sensorUnit);
+// item.setTargetUnit(sensorUnit.getName());
+// item.setEvaluator(sensorUnit.getRules());
}
}
}
--
Gitblit v1.8.0