From 1b4c6718db46841cbfff33b26336f3d1e5cb19d4 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Sat, 10 Oct 2020 11:31:50 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java | 147 +++++++++++++++++++++++++++++++++++++-----------
1 files changed, 113 insertions(+), 34 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..d4814ad 100644
--- a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java
@@ -1,8 +1,19 @@
package com.moral.service.impl;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
-import com.moral.entity.*;
+import com.moral.entity.DictionaryData;
+import com.moral.entity.OrganizationLayout;
+import com.moral.entity.OrganizationSensorUnit;
+import com.moral.entity.Sensor;
+import com.moral.entity.SensorUnit;
import com.moral.entity.layout.RealTimeDeviceLayout;
import com.moral.entity.layout.RtdLayoutUpload;
import com.moral.entity.layout.SensorComb;
@@ -11,15 +22,10 @@
import com.moral.mapper.OrganizationSensorUnitMapper;
import com.moral.mapper.SensorMapper;
import com.moral.service.OrganizationLayoutService;
+
import org.springframework.data.annotation.Transient;
import org.springframework.stereotype.Service;
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.stream.Collectors;
@Service
public class OrganizationLayoutServiceImpl implements OrganizationLayoutService{
@@ -29,30 +35,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 +95,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 +108,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 +121,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 +148,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());
}
}
}
@@ -216,12 +221,85 @@
public RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, Integer versionNo) {
String pageType = getPageType(versionNo);
if(queryPageConfigCountByOrgId(orgId,pageType) == 0 ){
- orgId = dataMapper.selectSupperOrgId();
+ // orgId = dataMapper.selectSupperOrgId();
+ orgId = 0;
}
RealTimeDeviceLayout rtdLayout = queryRealTimeDeviceLayout(orgId,versionNo);
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 +312,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