|
|
@@ -12,7 +12,6 @@ import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
|
|
|
import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
|
|
|
import com.xunmei.common.core.enums.iot.BaseDeviceTypeEnum;
|
|
|
import com.xunmei.common.core.enums.iot.DeviceStatusEnum;
|
|
|
-import com.xunmei.common.core.enums.iot.DeviceTypeEnum;
|
|
|
import com.xunmei.common.core.enums.iot.SensorType;
|
|
|
import com.xunmei.common.core.util.BeanHelper;
|
|
|
import com.xunmei.host.alarm.mapper.IotAlarmSystemFieldMapper;
|
|
|
@@ -32,9 +31,7 @@ import com.xunmei.host.websocket.service.RouterService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceInfo;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceStatus;
|
|
|
-import com.xunmei.system.api.enums.ElectricityMeterAttributes;
|
|
|
import com.xunmei.system.api.util.LogUtils;
|
|
|
-import io.netty.util.internal.StringUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -42,10 +39,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.StringJoiner;
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -83,36 +77,31 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
|
|
|
final JSONArray array = new JSONArray();
|
|
|
for (Object datum : data) {
|
|
|
JSONObject jsb = (JSONObject) datum;
|
|
|
- JSONObject object = new JSONObject();
|
|
|
- array.add(object);
|
|
|
- String name = fieldList
|
|
|
+
|
|
|
+
|
|
|
+ final Optional<IotAlarmSystemField> fieldOptional = fieldList
|
|
|
.stream()
|
|
|
.filter(r -> ObjectUtil.equal(r.getPropertyName(), jsb.get("propertyName")))
|
|
|
.filter(r -> ObjectUtil.equal(deviceType, String.valueOf(r.getSourceType())))
|
|
|
- .map(IotAlarmSystemField::getName)
|
|
|
- .findFirst()
|
|
|
- .orElse(StringUtil.EMPTY_STRING);
|
|
|
- String val = DeviceTypeEnum.getStatusText(jsb.get("propertyValue"));
|
|
|
- if (ObjectUtil.hasEmpty(name, val)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- object.put("name", name);
|
|
|
- object.put("val", val);
|
|
|
- final ElectricityMeterAttributes attributesEnum = ElectricityMeterAttributes.getEnumByName(name);
|
|
|
- if (ObjectUtil.isNull(attributesEnum)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (ObjectUtil.isNotEmpty(attributesEnum.getUnit())) {
|
|
|
- //说明存在单位,那么把val拼接上单位set到原来的属性值中去
|
|
|
- object.put("unit", attributesEnum.getUnit());
|
|
|
- object.put("res", val + attributesEnum.getUnit());
|
|
|
- } else {
|
|
|
- object.put("unit", attributesEnum.getEnumText());
|
|
|
- final Map extraMap = com.alibaba.fastjson2.JSON.parseObject(attributesEnum.getEnumText(), Map.class);
|
|
|
- for (Object o : extraMap.keySet()) {
|
|
|
- if (String.valueOf(o).equals(val)) {
|
|
|
- object.put("res", (String) extraMap.get(o));
|
|
|
- }
|
|
|
+ .findFirst();
|
|
|
+ if (fieldOptional.isPresent()) {
|
|
|
+ final IotAlarmSystemField systemField = fieldOptional.get();
|
|
|
+ final String unit = systemField.getUnit();
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ array.add(object);
|
|
|
+ if (ObjectUtil.isNotEmpty(unit)) {
|
|
|
+ //说明不是开关量
|
|
|
+ object.put("name", systemField.getName());
|
|
|
+ object.put("val", jsb.get("propertyValue"));
|
|
|
+ object.put("res", jsb.get("propertyValue") + unit);
|
|
|
+ object.put("unit", unit);
|
|
|
+ } else {
|
|
|
+ object.put("name", systemField.getName());
|
|
|
+ object.put("val", jsb.get("propertyValue"));
|
|
|
+ final String specs = systemField.getSpecs();
|
|
|
+ final Map map = JSON.parseObject(specs, Map.class);
|
|
|
+ object.put("unit", JSONObject.parseObject(specs));
|
|
|
+ object.put("res", map.get(jsb.get("propertyValue")));
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -208,11 +197,11 @@ public class IotDeviceStatusServiceImpl extends ServiceImpl<IotDeviceStatusMappe
|
|
|
});
|
|
|
iotAlarmDataService.saveOrUpdate(iotAlarmData);
|
|
|
// 发生报警
|
|
|
- if(ObjectUtil.isNotNull(dataReq.getStartTime())&&ObjectUtil.isNull(dataReq.getEndTime())){
|
|
|
+ if (ObjectUtil.isNotNull(dataReq.getStartTime()) && ObjectUtil.isNull(dataReq.getEndTime())) {
|
|
|
updateStatusByDevicePrimaryId(deviceInfo.getId(), DeviceStatusEnum.ALARM.getValue());
|
|
|
}
|
|
|
// 报警结束
|
|
|
- if(ObjectUtil.isNotNull(dataReq.getStartTime())&&ObjectUtil.isNotNull(dataReq.getEndTime())){
|
|
|
+ if (ObjectUtil.isNotNull(dataReq.getStartTime()) && ObjectUtil.isNotNull(dataReq.getEndTime())) {
|
|
|
updateStatusByDevicePrimaryId(deviceInfo.getId(), DeviceStatusEnum.NORMAL.getValue());
|
|
|
}
|
|
|
if (Boolean.TRUE.equals(dataReq.getSmsType())) {
|