|
|
@@ -7,8 +7,6 @@ import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.mqtt.IotMqttConstant;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
|
|
|
-import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotHomeDeviceStatResVo;
|
|
|
-import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotHomeTypeStatResVo;
|
|
|
import com.yunfeiyun.agmp.iot.common.enums.IotDeviceDelStatusEnum;
|
|
|
import com.yunfeiyun.agmp.iot.common.enums.IotDeviceStatusTypeEnum;
|
|
|
import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
|
@@ -23,6 +21,8 @@ import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceEditReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceModifyReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
|
|
|
+import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotHomeDeviceStatResVo;
|
|
|
+import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotHomeTypeStatResVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.mapper.IotDeviceMapper;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceconnService;
|
|
|
@@ -33,10 +33,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 设备基础Service业务层处理
|
|
|
@@ -382,26 +380,22 @@ public class IotDeviceServiceImpl implements IIotDeviceService {
|
|
|
|
|
|
@Override
|
|
|
public String checkIotDeviceExist(String devtypeBid, String[] devCode) {
|
|
|
- List<IotDevice> iotDeviceList = selectIotDeviceList(new IotDevice(), false);
|
|
|
- Set<String> devCodeSet = new HashSet<>();
|
|
|
- Set<String> devTopicSet = new HashSet<>();
|
|
|
+ List<String> devtypeBidList = IotMqttConstant.getDevtypeBidList(devtypeBid);
|
|
|
+ IotDevice selectIotDevice = new IotDevice();
|
|
|
+ selectIotDevice.setDevtypeBidList(devtypeBidList);
|
|
|
+ List<IotDevice> iotDeviceList = selectIotDeviceList(selectIotDevice, false);
|
|
|
+
|
|
|
+ Set<String> newDevCodeSet = new HashSet<>(Arrays.asList(devCode));
|
|
|
+ Set<String> oldDevCodeSet = new HashSet<>();
|
|
|
for (IotDevice iotDevice : iotDeviceList) {
|
|
|
- devCodeSet.add(iotDevice.getDevtypeBid() + iotDevice.getDevCode());
|
|
|
- String topic = IotMqttConstant.getReportTopicByDevtype(iotDevice.getDevtypeBid());
|
|
|
- if (StringUtils.isNotEmpty(topic)) {
|
|
|
- devTopicSet.add(IotMqttConstant.getReportTopicByDevtype(iotDevice.getDevtypeBid()) + iotDevice.getDevCode());
|
|
|
- }
|
|
|
+ oldDevCodeSet.add(iotDevice.getDevCode());
|
|
|
}
|
|
|
- String topic = IotMqttConstant.getReportTopicByDevtype(devtypeBid);
|
|
|
- for (String code : devCode) {
|
|
|
- String key = devtypeBid + code;
|
|
|
- // 同一个mqtt Topic只能有一个设备
|
|
|
- // 同一个设备类型下不能有重复的设备编号
|
|
|
- if (devTopicSet.contains(topic + code) || devCodeSet.contains(key)) {
|
|
|
- return code;
|
|
|
- }
|
|
|
+ Set<String> intersectionSet = oldDevCodeSet.stream().filter(newDevCodeSet::contains).collect(Collectors.toCollection(HashSet::new));
|
|
|
+ String intersectionCode = null;
|
|
|
+ if(!intersectionSet.isEmpty()){
|
|
|
+ intersectionCode = intersectionSet.stream().findFirst().orElse(null);
|
|
|
}
|
|
|
- return null;
|
|
|
+ return intersectionCode;
|
|
|
}
|
|
|
|
|
|
@Override
|