Browse Source

fix bug

master
刘力 3 years ago
parent
commit
a41d92c2e5
  1. 5
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java
  2. 5
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java
  3. 2
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java
  4. 3
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java
  5. 3
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java
  6. 18
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayConfigRepository.java
  7. 56
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java
  8. 20
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java
  9. 6
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/ThirdApiServiceImpl.java

5
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java

@ -28,6 +28,11 @@ public class DeviceSpecParam extends BaseEntity implements Serializable {
@ApiModelProperty(value = "设备信息id")
private String deviceInfoId;
@Column(name = "display_config_id")
@ApiModelProperty(value = "配置id", hidden = true)
private String displayConfigId;
@Column(name = "param_id")
@ApiModelProperty(value = "参数id")
private String paramId;

5
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java

@ -48,8 +48,9 @@ public class DeviceArchivesTagImpl implements DeviceArchivesTagService {
@Override
public Object queryTagList(String deviceInfoId, Pageable pageable) {
PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "position", Sort.Direction.ASC);
Page<DeviceArchivesTag> page = deviceArchivesTagRepository.findByDeviceInfoId(deviceInfoId, pageRequest);
//PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "position", Sort.Direction.ASC);
Page<DeviceArchivesTag> page = deviceArchivesTagRepository.findByDeviceInfoId(deviceInfoId, pageable);
return PageUtil.toPage(page);
}
}

2
storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java

@ -41,7 +41,7 @@ public class AlarmInfoController {
return ApiResponse.success(alarmInfoService.testAlarm(getCurAlarms));
}
@AnonymousGetMapping("storeroom")
@AnonymousGetMapping("info")
public ApiResponse<Object> queryStoreroomId(@RequestParam String storeroomId) {
if (StringUtils.isEmpty(storeroomId)) {
return ApiResponse.success(alarmInfoService.getAllAlarmInfo());

3
storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java

@ -47,9 +47,6 @@ public class DisplayConfigController {
@AnonymousGetMapping("list")
@ApiOperation("获取列表")
public ApiResponse<Object> queryList(@RequestParam String storeroomId) {
if (StringUtils.isEmpty(storeroomId)) {
throw new BaseException("id不能为空");
}
return ApiResponse.success(displayConfigService.getList(storeroomId));
}
}

3
storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java

@ -3,6 +3,7 @@ package com.storeroom.modules.storeroom3d.domain;
import com.storeroom.base.BaseEntity;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.DeviceSpecParam;
import com.storeroom.modules.device.domain.Storeroom;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@ -41,7 +42,7 @@ public class DisplayConfig extends BaseEntity implements Serializable {
@OneToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name = "display_config_id")
private List<DisplayParam> displayParams;
private List<DeviceSpecParam> deviceSpecParams;
@Column(name = "div_position")

18
storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayConfigRepository.java

@ -1,13 +1,29 @@
package com.storeroom.modules.storeroom3d.repository;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.storeroom3d.domain.DisplayConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface DisplayConfigRepository extends JpaRepository<DisplayConfig, String>, JpaSpecificationExecutor<DisplayConfig> {
List<DisplayConfig> findByStoreroomId(String deviceInfoid);
/**
* 根据库房查询
* @param storeroomId /
* @return /
*/
List<DisplayConfig> findByStoreroomId(String storeroomId);
/**
* 根据设备id查询
* @param /
* @return /
*/
DisplayConfig findByDeviceInfo(DeviceInfo deviceInfo);
}

56
storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java

@ -53,14 +53,13 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
url = deviceInfoList.get(0).getDeviceIp();
prot = deviceInfoList.get(0).getDevicePort();
}
return url + prot;
return "http://" + url + ":" + prot;
}
@Override
public Object getAllAlarmInfo() {
//查询自己所有设备
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findAll();
//获取第三方接口报警信息
@ -71,7 +70,7 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
List<GetCurAlarm> valueList = new ArrayList<>();
//过滤设备id 为空的设备
//List<GetCurAlarmDto> alarmDtos2 = alarmDtos.stream().filter(value -> Objects.equals(value.getDevice_id(), "")).collect(Collectors.toList());
List<GetCurAlarm> alarmDtos2 = getCurAlarmsList.stream().filter(value -> Objects.equals(value.getDevice_id(), "")).collect(Collectors.toList());
for (int i = 0; i < getCurAlarmsList.size(); i++) {
for (int k = 0; k < deviceInfoList.size(); k++) {
//如果设备id相同
@ -98,25 +97,59 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
}
}
return null;
//查询所有报警信息
List<GetCurAlarm> alarmsAll = getCurAlarmRepository.findAll();
//对比已经保存的报警信息和最新报警信息
List<GetCurAlarm> updateStateList = compare(valueList, alarmsAll);
if (updateStateList.size() != 0) {
//修改报警信息状态
updateAlarmLogStete(updateStateList);
}
//返回列表最新报警信息列表
return valueList;
}
@Override
public Object getStoreroomDevice(String storeroomId) {
//查询库房
Storeroom storeroom = storeroomRepository.findById(storeroomId).orElseGet(Storeroom::new);
//通过库房查询设备
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByStoreroomId(storeroom);
//获取所有报警
List<GetCurAlarm> getCurAlarms = thirdApiService.getAllDeviceAlarm(getAddressUrl());
//创建保存数组
List<GetCurAlarm> alarmDtos1 = new ArrayList<>();
//过滤设备id为空的数据
List<GetCurAlarm> alarmDtos2 = getCurAlarms.stream().filter(getCurAlarmDto -> Objects.equals(getCurAlarmDto.getDevice_id(), "")).collect(Collectors.toList());
for (int i = 0; i < alarmDtos2.size(); i++) {
for (int i = 0; i < getCurAlarms.size(); i++) {
for (int k = 0; k < deviceInfoList.size(); k++) {
if (Objects.equals(getCurAlarms.get(i).getDevice_id(), deviceInfoList.get(k).getDeviceId())) {
//通过设备id查询报警日志
AlarmLog alarmLog = alarmLogRepository.findByDeviceId(alarmDtos2.get(i).getDevice_id());
//如果报警日志为空
if (ObjectUtils.isEmpty(alarmLog)) {
AlarmLog alarmLogEntity = new AlarmLog();
//创建日志
alarmLogEntity.setId(NanoIdUtils.randomNanoId());
alarmLogEntity.setDeviceId(alarmDtos2.get(i).getDevice_id());
alarmLogEntity.setContent(alarmDtos2.get(i).getAlarm_value_descript());
alarmLogEntity.setStoreroomName(alarmDtos2.get(i).getArea_name());
alarmLogEntity.setState(false);
alarmLogEntity.setRemark("");
alarmLogRepository.save(alarmLogEntity);
}
alarmDtos1.add(getCurAlarms.get(i));
// GetCurAlarm getCurAlarm = getCurAlarmMapper.toEntity(alarmDtos.get(i));
}
}
}
//查询所有报警信息
List<GetCurAlarm> alarmsAll = getCurAlarmRepository.findAll();
//对比已经保存的报警信息和最新报警信息
List<GetCurAlarm> updateStateList = compare(alarmDtos1, alarmsAll);
if (updateStateList.size() != 0) {
//修改报警信息状态
updateAlarmLogStete(updateStateList);
}
return alarmDtos1;
}
@ -180,9 +213,11 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
AlarmLog alarmLog = alarmLogRepository.findByDeviceId(item.getDevice_id());
if (alarmLog.getState()) {
alarmLog.setState(false);
}
alarmLogRepository.save(alarmLog);
}else {
alarmLog.setState(true);
alarmLogRepository.save(alarmLog);
}
});
}
@ -195,13 +230,18 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
* @return
*/
private <T> List<T> compare(List<T> t1, List<T> t2) {
// List<T> list1 = Arrays.asList(t1); //将t1数组转成list数组
//List<T> list1 = Arrays.asList(t1); //将t1数组转成list数组
List<T> list2 = new ArrayList<T>();//用来存放2个数组中不相同的元素
for (T t : t2) {
if (!t1.contains(t)) {
list2.add(t);
}
}
for (T t : t1) {
if (!t2.contains(t)) {
list2.add(t);
}
}
return list2;
}
}

20
storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java

@ -8,11 +8,13 @@ import com.storeroom.modules.storeroom3d.domain.DisplayConfig;
import com.storeroom.modules.storeroom3d.repository.DisplayConfigRepository;
import com.storeroom.modules.storeroom3d.service.DisplayConfigService;
import com.storeroom.utils.NanoIdUtils;
import com.storeroom.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.*;
@Service
@RequiredArgsConstructor
@ -28,8 +30,7 @@ public class DisplayConfigImpl implements DisplayConfigService {
public void bind(DisplayConfig displayConfig) {
displayConfig.setId(NanoIdUtils.randomNanoId());
displayConfig.setBindState(true);
displayConfig.getDisplayParams().forEach(item -> {
item.setId(NanoIdUtils.randomNanoId());
displayConfig.getDeviceSpecParams().forEach(item -> {
item.setDisplayConfigId(displayConfig.getId());
});
displayConfig.setStoreroom(displayConfig.getDeviceInfo().getStoreroomId());
@ -44,6 +45,19 @@ public class DisplayConfigImpl implements DisplayConfigService {
@Override
public List<DisplayConfig> getList(String storeroomId) {
if (StringUtils.isEmpty(storeroomId)) {
List<DeviceInfo> deviceInfo = deviceInfoRepository.findByDeviceTypeId("7305DE3D273B0CAC079538");
List<DisplayConfig> displayConfigList = new ArrayList<>();
if (deviceInfo.size() != 0) {
deviceInfo.forEach(item -> {
DisplayConfig displayConfig = displayConfigRepository.findByDeviceInfo(item);
displayConfigList.add(displayConfig);
});
displayConfigList.sort(Comparator.comparing(DisplayConfig::getDivPosition));
return displayConfigList;
}
}
return displayConfigRepository.findByStoreroomId(storeroomId);
}
}

6
storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/ThirdApiServiceImpl.java

@ -75,7 +75,7 @@ public class ThirdApiServiceImpl implements ThirdApiService {
map.put("Authorization", "Bearer" + token + "");
body.put("keys", "");
String s = FastjsonUtils.toJSONString(body);
HttpResponse response = HttpUtils.doPost("http://jiton.8800.org:800", "/Api/Third/GetDeviceList", "POST", map, null, s);
HttpResponse response = HttpUtils.doPost(url, "/Api/Third/GetDeviceList", "POST", map, null, s);
if (response.getStatusLine().getStatusCode() == 200) {
List<DeviceAllDto> deviceAllDtoList = new ArrayList<>();
String a = EntityUtils.toString(response.getEntity());
@ -112,7 +112,7 @@ public class ThirdApiServiceImpl implements ThirdApiService {
String token = findApiToken(url);
map.put("Content-type", "application/json");
map.put("Authorization", "Bearer" + token + "");
HttpResponse response = HttpUtils.doGet("http://" + url + "", "/Api/Third/GetCurAlarm", "Get", map, null);
HttpResponse response = HttpUtils.doGet(url, "/Api/Third/GetCurAlarm", "Get", map, null);
if (response.getStatusLine().getStatusCode() == 200) {
String result = EntityUtils.toString(response.getEntity());
Map<String, Object> dataMap = FastjsonUtils.toJavaMap(result);
@ -172,7 +172,7 @@ public class ThirdApiServiceImpl implements ThirdApiService {
json.put("device_ids", deviceIds);
RequestBody body = RequestBody.create(
MediaType.parse("application/json;charset=utf-8"), String.valueOf(json));
Request request = new Request.Builder().url("" + url + "/Api/Third/GetRealTimeData")
Request request = new Request.Builder().url(url + "/Api/Third/GetRealTimeData")
.addHeader("Authorization", "Bearer" + token + "")
.post(body)
.build();

Loading…
Cancel
Save