|
@@ -112,24 +112,30 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
/**
|
|
/**
|
|
|
* 获取灌区和电磁阀的绑定关系数据
|
|
* 获取灌区和电磁阀的绑定关系数据
|
|
|
*/
|
|
*/
|
|
|
- private Map<String, List<String>> getGroupValveMap(){
|
|
|
|
|
|
|
+ private Map<String, List<String>> getGroupValveMap(JSONObject dataJson){
|
|
|
Map<String, List<String>> groupValveMap = new HashMap<>();
|
|
Map<String, List<String>> groupValveMap = new HashMap<>();
|
|
|
-
|
|
|
|
|
- List<String> valveList = new ArrayList<>();
|
|
|
|
|
- valveList.add("Btn-fa1");
|
|
|
|
|
- valveList.add("Btn-fa2");
|
|
|
|
|
-
|
|
|
|
|
- List<String> valveList2 = new ArrayList<>();
|
|
|
|
|
- valveList2.add("Btn-fa3");
|
|
|
|
|
-
|
|
|
|
|
- groupValveMap.put("Btn-qx01", valveList);
|
|
|
|
|
- groupValveMap.put("Btn-qx02", valveList2);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ for (String key : dataJson.keySet()) {
|
|
|
|
|
+ if(!key.startsWith("Btn-fx")){
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ String groupIndexString = dataJson.getString(key);
|
|
|
|
|
+ int groupIndex = 0;
|
|
|
|
|
+ try{
|
|
|
|
|
+ groupIndex = (int) Math.round(Double.parseDouble(groupIndexString));
|
|
|
|
|
+ String groupKey = "Btn-qx" + String.format("%02d", groupIndex);
|
|
|
|
|
+ if(!groupValveMap.containsKey(groupKey)){
|
|
|
|
|
+ List<String> valveList = new ArrayList<>();
|
|
|
|
|
+ groupValveMap.put(groupKey, valveList);
|
|
|
|
|
+ }
|
|
|
|
|
+ String suffix = key.split("Btn-fx")[1];
|
|
|
|
|
+ String valveKey = "Btn-fa" + Integer.valueOf(suffix);
|
|
|
|
|
+ groupValveMap.get(groupKey).add(valveKey);
|
|
|
|
|
+ }catch (Exception e){}
|
|
|
|
|
+ }
|
|
|
return groupValveMap;
|
|
return groupValveMap;
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取未配置的灌区元素列表
|
|
* 获取未配置的灌区元素列表
|
|
|
*
|
|
*
|
|
@@ -169,10 +175,13 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
params.put("devBid", devBid);
|
|
params.put("devBid", devBid);
|
|
|
|
|
|
|
|
IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
|
|
IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
|
|
|
- Map<String, List<String>> groupValveMap = getGroupValveMap();
|
|
|
|
|
|
|
+
|
|
|
List<IotSfElementfactorAlreadyListResVo> resultList = new ArrayList<>();
|
|
List<IotSfElementfactorAlreadyListResVo> resultList = new ArrayList<>();
|
|
|
if (iotRunHaoSfdata != null) {
|
|
if (iotRunHaoSfdata != null) {
|
|
|
JSONObject dataJson = iotRunHaoSfdata.getSfdataContent();
|
|
JSONObject dataJson = iotRunHaoSfdata.getSfdataContent();
|
|
|
|
|
+ //获取灌区和电磁阀的绑定关系
|
|
|
|
|
+ Map<String, List<String>> groupValveMap = getGroupValveMap(dataJson);
|
|
|
|
|
+
|
|
|
for (String key : dataJson.keySet()) {
|
|
for (String key : dataJson.keySet()) {
|
|
|
if(sfCodeSet.contains(key)){
|
|
if(sfCodeSet.contains(key)){
|
|
|
continue;
|
|
continue;
|
|
@@ -185,6 +194,7 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
BeanUtils.copyProperties(elementFactor, resVo);
|
|
BeanUtils.copyProperties(elementFactor, resVo);
|
|
|
|
|
|
|
|
List<String> valveList = groupValveMap.get(key);
|
|
List<String> valveList = groupValveMap.get(key);
|
|
|
|
|
+ // 灌区内配置过电磁阀
|
|
|
if(valveList != null && !valveList.isEmpty()){
|
|
if(valveList != null && !valveList.isEmpty()){
|
|
|
List<IotSfElementfactorAlreadyListResVo> childrenList = new ArrayList<>();
|
|
List<IotSfElementfactorAlreadyListResVo> childrenList = new ArrayList<>();
|
|
|
for(String valve : valveList){
|
|
for(String valve : valveList){
|
|
@@ -234,7 +244,7 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备不存在");
|
|
throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "设备不存在");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 获取已经配置的灌区元素列表
|
|
|
|
|
|
|
+ // 获取已经配置的阀门元素列表
|
|
|
List<IotSfElementfactor> elementfactorList = iotSfElementfactorService.selectIotSfElementfactorListByValve(reqVo);
|
|
List<IotSfElementfactor> elementfactorList = iotSfElementfactorService.selectIotSfElementfactorListByValve(reqVo);
|
|
|
Set<String> sfCodeSet = new java.util.HashSet<>();
|
|
Set<String> sfCodeSet = new java.util.HashSet<>();
|
|
|
for (IotSfElementfactor elementfactor : elementfactorList) {
|
|
for (IotSfElementfactor elementfactor : elementfactorList) {
|
|
@@ -247,14 +257,16 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
params.put("devBid", devBid);
|
|
params.put("devBid", devBid);
|
|
|
|
|
|
|
|
IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
|
|
IotRunHaoSfdata iotRunHaoSfdata = (IotRunHaoSfdata) mongoService.findOne(IotRunHaoSfdata.class, params, "sfdataCreatedDate", "desc");
|
|
|
- Map<String, List<String>> groupValveMap = getGroupValveMap();
|
|
|
|
|
- Set<String> valveSet = new HashSet<>();
|
|
|
|
|
- for (List<String> valveList : groupValveMap.values()) {
|
|
|
|
|
- valveSet.addAll(valveList);
|
|
|
|
|
- }
|
|
|
|
|
List<IotSfElementfactor> resultList = new ArrayList<>();
|
|
List<IotSfElementfactor> resultList = new ArrayList<>();
|
|
|
if (iotRunHaoSfdata != null) {
|
|
if (iotRunHaoSfdata != null) {
|
|
|
JSONObject dataJson = iotRunHaoSfdata.getSfdataContent();
|
|
JSONObject dataJson = iotRunHaoSfdata.getSfdataContent();
|
|
|
|
|
+ //获取灌区和电磁阀的绑定关系 获取已经配置的阀门
|
|
|
|
|
+ Map<String, List<String>> groupValveMap = getGroupValveMap(dataJson);
|
|
|
|
|
+ Set<String> valveSet = new HashSet<>();
|
|
|
|
|
+ for (List<String> valveList : groupValveMap.values()) {
|
|
|
|
|
+ valveSet.addAll(valveList);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
for (String key : dataJson.keySet()) {
|
|
for (String key : dataJson.keySet()) {
|
|
|
if(sfCodeSet.contains(key) || valveSet.contains(key)){
|
|
if(sfCodeSet.contains(key) || valveSet.contains(key)){
|
|
|
continue;
|
|
continue;
|
|
@@ -334,7 +346,6 @@ public class IotRunHaoSfServiceImpl extends IIotSfCommService {
|
|
|
parentInfo.getChildrenList().add(lsliVo);
|
|
parentInfo.getChildrenList().add(lsliVo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|