Browse Source

新增安全门,3d库房配置

master
刘力 3 years ago
parent
commit
ea73246653
  1. 8
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java
  2. 3
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java
  3. 12
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java
  4. 32
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java
  5. 10
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/SecurityDoorController.java
  6. 62
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java
  7. 22
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/SecurityDoor.java
  8. 9
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/SecurityDoorRepository.java
  9. 27
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java
  10. 4
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/SecurityDoorService.java
  11. 20
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java
  12. 33
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java
  13. 20
      storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/SecurityDoorServiceImpl.java

8
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java

@ -1,7 +1,9 @@
package com.storeroom.modules.device.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.storeroom.base.BaseEntity;
import com.storeroom.modules.storeroom3d.domain.DisplayConfig;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -12,6 +14,7 @@ import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;
import java.util.Set;
@Entity
@Getter
@ -133,6 +136,11 @@ public class DeviceInfo extends BaseEntity implements Serializable {
@ApiModelProperty(value = "是否回调")
private OperatingState isCallback;
// @JSONField(serialize = false)
// @ManyToMany(mappedBy = "deviceInfo")
// @ApiModelProperty(value = "3D库房显示配置")
// private Set<DisplayConfig> displayConfig;
@Override
public boolean equals(Object o) {
if (this == o) return true;

3
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java

@ -23,6 +23,9 @@ public interface DeviceInfoRepository extends JpaRepository<DeviceInfo, String>,
List<DeviceInfo> findByStoreroomId(Storeroom storeroomId);
/**
* 根据ip 端口号 查询
*

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

@ -2,8 +2,10 @@ package com.storeroom.modules.storeroom3d.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.storeroom3d.service.AlarmInfoService;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.StringUtils;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
@ -20,9 +22,17 @@ public class AlarmInfoController {
private final AlarmInfoService alarmInfoService;
@AnonymousGetMapping("all")
public ApiResponse<Object> queryAllAlarm(@RequestParam String storeroomId) {
public ApiResponse<Object> queryAllAlarm() {
return ApiResponse.success(alarmInfoService.getAllAlarmInfo());
}
@AnonymousGetMapping("storeroom")
public ApiResponse<Object> queryStoreroomId(@RequestParam String storeroomId) {
if (StringUtils.isEmpty(storeroomId)){
throw new BaseException("库房id不能为空");
}
return ApiResponse.success(alarmInfoService.getStoreroomDevice(storeroomId));
}
}

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

@ -0,0 +1,32 @@
package com.storeroom.modules.storeroom3d.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.storeroom3d.service.DisplayConfigService;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/displayconfig/")
@Api(tags = "3d库房显示配置")
@RequiredArgsConstructor
public class DisplayConfigController {
private final DisplayConfigService displayConfigService;
@AnonymousGetMapping("deviceinfo")
@ApiOperation("查询设备")
public ApiResponse<Object> queryDevice(@RequestParam String storeroomId) {
if (StringUtils.isEmpty(storeroomId)) {
throw new BaseException("库房id不能为空");
}
return ApiResponse.success(displayConfigService.queryDevceInfo(storeroomId));
}
}

10
storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/SecurityDoorController.java

@ -1,6 +1,7 @@
package com.storeroom.modules.storeroom3d.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.storeroom3d.domain.SecurityDoor;
@ -14,6 +15,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@ -33,7 +35,15 @@ public class SecurityDoorController {
&& ObjectUtils.isEmpty(securityDoor.getAlarmLevel())) {
throw new BaseException("必填字段不能为空");
}
securityDoorService.create(securityDoor);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ApiOperation("通过库房id查询门禁")
@AnonymousGetMapping("storeroom")
public ApiResponse<Object> findAll() {
return ApiResponse.success(securityDoorService.queryStoreroom());
}
}

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

@ -0,0 +1,62 @@
package com.storeroom.modules.storeroom3d.domain;
import com.storeroom.base.BaseEntity;
import com.storeroom.modules.device.domain.DeviceInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;
import java.util.Set;
@Getter
@Setter
@Entity
@Table(name = "display_config")
public class DisplayConfig extends BaseEntity implements Serializable {
@Id
@Column(name = "id")
@NotNull(groups = BaseEntity.Update.class)
@ApiModelProperty(value = "id", hidden = true)
private String id;
@ManyToMany(fetch = FetchType.EAGER)
@ApiModelProperty(value = "设备信息")
@JoinTable(name = "display_device_info", joinColumns = {@JoinColumn(name = "display_config_id",referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "device_info_id",referencedColumnName = "id")})
private Set<DeviceInfo> deviceInfo;
@Column(name = "div_position")
@ApiModelProperty(name = "标签定位")
private String divPosition;
@Column(name = "is_display")
@ApiModelProperty(name = "是否显示")
private Boolean isDisplay;
@Column(name = "bind_state")
@ApiModelProperty(name = "绑定状态")
private Boolean bindState;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DisplayConfig that = (DisplayConfig) o;
return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(divPosition, that.divPosition) && Objects.equals(isDisplay, that.isDisplay) && Objects.equals(bindState, that.bindState);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceInfo, divPosition, isDisplay, bindState);
}
}

22
storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/SecurityDoor.java

@ -29,40 +29,44 @@ public class SecurityDoor extends BaseEntity implements Serializable {
@Column(name = "device_id")
@ApiModelProperty(value = "设备id",hidden = true)
@ApiModelProperty(value = "设备id")
private String deviceId;
@Column(name = "tid")
@ApiModelProperty(value = "标签id",hidden = true)
@ApiModelProperty(value = "标签id")
private String tid;
@Column(name = "alarm_event")
@ApiModelProperty(value = "0:出门;1:进门",hidden = true)
@ApiModelProperty(value = "0:出门;1:进门")
private Integer alarmEvent;
@Column(name = "user_id")
@ApiModelProperty(value = "用户id",hidden = true)
private Integer userId;
@ApiModelProperty(value = "用户id")
private String userId;
@Column(name = "alarm_level")
@ApiModelProperty(value = "0:异常;1:正常",hidden = true)
@ApiModelProperty(value = "0:异常;1:正常")
private Integer alarmLevel;
@Column(name = "alarm_msg")
@ApiModelProperty(value = "描述",hidden = true)
@ApiModelProperty(value = "描述")
private String alarmMsg;
@Column(name = "storeroom_id")
@ApiModelProperty(value = "库房id")
private String storeroomId;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SecurityDoor that = (SecurityDoor) o;
return Objects.equals(id, that.id) && Objects.equals(deviceId, that.deviceId) && Objects.equals(tid, that.tid) && Objects.equals(alarmEvent, that.alarmEvent) && Objects.equals(userId, that.userId) && Objects.equals(alarmLevel, that.alarmLevel) && Objects.equals(alarmMsg, that.alarmMsg);
return Objects.equals(id, that.id) && Objects.equals(deviceId, that.deviceId) && Objects.equals(tid, that.tid) && Objects.equals(alarmEvent, that.alarmEvent) && Objects.equals(userId, that.userId) && Objects.equals(alarmLevel, that.alarmLevel) && Objects.equals(alarmMsg, that.alarmMsg) && Objects.equals(storeroomId, that.storeroomId);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceId, tid, alarmEvent, userId, alarmLevel, alarmMsg);
return Objects.hash(id, deviceId, tid, alarmEvent, userId, alarmLevel, alarmMsg, storeroomId);
}
}

9
storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/SecurityDoorRepository.java

@ -5,5 +5,14 @@ import com.storeroom.modules.storeroom3d.domain.SecurityDoor;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
public interface SecurityDoorRepository extends JpaRepository<SecurityDoor, String>, JpaSpecificationExecutor<SecurityDoor> {
/**
* 根据库房id查询通道门
* @param storeroomId
* @return
*/
List<SecurityDoor> findByStoreroomId(String storeroomId);
}

27
storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java

@ -0,0 +1,27 @@
package com.storeroom.modules.storeroom3d.service;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.modules.storeroom3d.domain.DisplayConfig;
import java.util.List;
public interface DisplayConfigService {
/**
* 绑定参数
*
* @return
*/
DisplayConfig bind(DisplayConfig displayConfig);
/**
* 通过库房id查询设备
*
* @param storeroomId
* @return
*/
List<DeviceInfo> queryDevceInfo(String storeroomId);
}

4
storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/SecurityDoorService.java

@ -2,7 +2,11 @@ package com.storeroom.modules.storeroom3d.service;
import com.storeroom.modules.storeroom3d.domain.SecurityDoor;
import java.util.List;
public interface SecurityDoorService {
void create(SecurityDoor securityDoor);
List<SecurityDoor> queryStoreroom();
}

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

@ -1,7 +1,9 @@
package com.storeroom.modules.storeroom3d.service.impl;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.Storeroom;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.repository.StoreroomRepository;
import com.storeroom.modules.storeroom3d.domain.GetCurAlarm;
import com.storeroom.modules.storeroom3d.repository.GetCurAlarmRepository;
import com.storeroom.modules.storeroom3d.service.AlarmInfoService;
@ -26,6 +28,7 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
private final ThirdApiService thirdApiService;
private final GetCurAlarmMapper getCurAlarmMapper;
private final GetCurAlarmRepository getCurAlarmRepository;
private final StoreroomRepository storeroomRepository;
@Override
public Object getAllAlarmInfo() {
@ -48,6 +51,21 @@ public class AlarmInfoServiceImpl implements AlarmInfoService {
@Override
public Object getStoreroomDevice(String storeroomId) {
return null;
Storeroom storeroom = storeroomRepository.findById(storeroomId).orElseGet(Storeroom::new);
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByStoreroomId(storeroom);
List<GetCurAlarmDto> alarmDtos = thirdApiService.getAllDeviceAlarm();
List<GetCurAlarmDto> alarmDtos1 = new ArrayList<>();
//过滤设备id为空的数据
List<GetCurAlarmDto> alarmDtos2 = alarmDtos.stream().filter(getCurAlarmDto -> Objects.equals(getCurAlarmDto.getDevice_id(), "")).collect(Collectors.toList());
for (int i = 0; i < alarmDtos2.size(); i++) {
for (int k = 0; k < deviceInfoList.size(); k++) {
if (Objects.equals(alarmDtos.get(i).getDevice_id(), deviceInfoList.get(k).getDeviceId())) {
alarmDtos1.add(alarmDtos.get(i));
// GetCurAlarm getCurAlarm = getCurAlarmMapper.toEntity(alarmDtos.get(i));
}
}
}
return alarmDtos;
}
}

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

@ -0,0 +1,33 @@
package com.storeroom.modules.storeroom3d.service.impl;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.Storeroom;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.repository.StoreroomRepository;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.modules.storeroom3d.domain.DisplayConfig;
import com.storeroom.modules.storeroom3d.service.DisplayConfigService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class DisplayConfigImpl implements DisplayConfigService {
private final DeviceInfoRepository deviceInfoRepository;
private final StoreroomRepository storeroomRepository;
@Override
public DisplayConfig bind(DisplayConfig displayConfig) {
return null;
}
@Override
public List<DeviceInfo> queryDevceInfo(String storeroomId) {
Storeroom storeroom = storeroomRepository.findById(storeroomId).orElseGet(Storeroom::new);
return deviceInfoRepository.findByStoreroomId(storeroom);
}
}

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

@ -1,11 +1,19 @@
package com.storeroom.modules.storeroom3d.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.storeroom.modules.device.domain.Storeroom;
import com.storeroom.modules.device.repository.StoreroomRepository;
import com.storeroom.modules.storeroom3d.domain.SecurityDoor;
import com.storeroom.modules.storeroom3d.repository.SecurityDoorRepository;
import com.storeroom.modules.storeroom3d.service.SecurityDoorService;
import com.storeroom.utils.FastjsonUtils;
import com.storeroom.utils.NanoIdUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service
@ -14,10 +22,22 @@ public class SecurityDoorServiceImpl implements SecurityDoorService {
private final SecurityDoorRepository securityDoorRepository;
private final StoreroomRepository storeroomRepository;
@Override
@Transactional(rollbackFor = Exception.class)
public void create(SecurityDoor securityDoor) {
securityDoor.setId(NanoIdUtils.randomNanoId());
PushServiceImpl pushService = new PushServiceImpl();
Object obj = JSONObject.toJSON(securityDoor);
pushService.pushMsgToAll(obj.toString());
securityDoorRepository.save(securityDoor);
}
@Override
public List<SecurityDoor> queryStoreroom() {
return securityDoorRepository.findAll();
}
}
Loading…
Cancel
Save