diff --git a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java index d625e1f..a4d6d22 100644 --- a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java +++ b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java @@ -75,7 +75,7 @@ public class ApiServiceImpl implements ApiService { deviceAllDtoList.add(deviceAllDto); } } else { - throw new BaseException("没有数据"); + throw new BaseException("数据异常"); } } }); diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java index 0073ca8..5446e53 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java @@ -2,9 +2,7 @@ package com.storeroom.modules.device.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; -import com.storeroom.exception.BaseException; import com.storeroom.modules.device.service.DeviceService; -import com.storeroom.modules.device.service.dto.DeviceQueryCriteria; import com.storeroom.utils.ApiResponse; import com.storeroom.utils.StringUtils; import io.swagger.annotations.Api; @@ -27,7 +25,7 @@ public class DeviceController { @AnonymousGetMapping("list") public ApiResponse list(String storeroomId, String deviceTypeId, Pageable pageable) { if (!StringUtils.isEmpty(storeroomId) && !StringUtils.isEmpty(deviceTypeId)) { - return ApiResponse.success(deviceService.queryAll(pageable)); + return ApiResponse.success(deviceService.queryStoreroomAndDevice(storeroomId, deviceTypeId, pageable)); } if (StringUtils.isEmpty(storeroomId) && !StringUtils.isEmpty(deviceTypeId)) { return ApiResponse.success(deviceService.queryDeviceType(deviceTypeId, pageable)); diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java index 285e216..2f04f00 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java @@ -42,6 +42,11 @@ public class DeviceInfo extends BaseEntity implements Serializable { @ApiModelProperty(value = "设备类型id") private DeviceType deviceTypeId; + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "device_spec_param_id",referencedColumnName = "id") + @ApiModelProperty(value = "设备参数id") + private DeviceSpecParam deviceSpecParamId; + @Column(name = "device_id") @ApiModelProperty(value = "第三方设备id") private String deviceId; diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java index bbb04a6..ecd9dd1 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java @@ -23,10 +23,10 @@ public class DeviceSpecParam extends BaseEntity implements Serializable { @ApiModelProperty(value = "ID", hidden = true) private String id; - @ManyToOne - @JoinColumn(name = "device_info_id",referencedColumnName = "id") + + @Column(name = "device_info_id") @ApiModelProperty(value = "设备信息id") - private DeviceInfo deviceInfoId; + private String deviceInfoId; @Column(name = "param_id") @ApiModelProperty(value = "参数id") diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java index 0e1b76b..ac5797a 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java @@ -82,8 +82,8 @@ public interface DeviceInfoRepository extends JpaRepository, * @param pageable 分页 * @return 列表 */ - @Query(value = "select * from device_info where storeroom_id=?1 or device_type_id=?2", nativeQuery = true) - Page findList(String storeroomId, String deviceTypeId, Pageable pageable); + @Query(value = "select * from device_info where storeroom_id=?1 and device_type_id=?2", nativeQuery = true) + Page findStoreroomIdAndDeviceTypeId(String storeroomId, String deviceTypeId, Pageable pageable); /** @@ -96,9 +96,9 @@ public interface DeviceInfoRepository extends JpaRepository, Page findAllList(Pageable pageable); /** - * 根据设备类型查询 + * 根据库房id查询 * - * @param deviceTypeId + * @param storeroomId * @param pageable * @return */ diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java index 61e63eb..521d8ad 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java @@ -2,10 +2,7 @@ package com.storeroom.modules.device.service.dto; import com.storeroom.base.BaseDTO; -import com.storeroom.modules.device.domain.DeviceType; -import com.storeroom.modules.device.domain.OperatingState; -import com.storeroom.modules.device.domain.Storeroom; -import com.storeroom.modules.device.domain.Supplier; +import com.storeroom.modules.device.domain.*; import lombok.Getter; import lombok.Setter; @@ -25,6 +22,8 @@ public class DeviceInfoDto extends BaseDTO implements Serializable { private DeviceType deviceTypeId; + private DeviceSpecParam deviceSpecParamId; + private String deviceId; private String deviceName; diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java index 19e11fb..2d674ab 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java @@ -6,12 +6,12 @@ import com.storeroom.modules.device.repository.*; import com.storeroom.modules.device.service.DeviceService; import com.storeroom.modules.device.service.dto.DeviceInfoDto; import com.storeroom.modules.device.service.mapstruct.DeviceInfoMapper; +import com.storeroom.service.ApiService; import com.storeroom.utils.*; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; + import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -29,32 +29,73 @@ public class DeviceImpl implements DeviceService { private final DeviceInfoMapper deviceInfoMapper; private final OperatingStateRepository operatingStateRepository; private final DeviceArchivesTagRepository deviceArchivesTagRepository; + private final ApiService apiService; @Override public Object queryStoreroomAndDevice(String storeroomId, String deviceTypeId, Pageable pageable) { - PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); - Page page = deviceInfoRepository.findList(storeroomId, deviceTypeId,pageRequest); + // PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); + Page page = deviceInfoRepository.findStoreroomIdAndDeviceTypeId(storeroomId, deviceTypeId, pageable); + if (getState()) { + + page.forEach(item -> { + item.setDeviceState(1); + }); + } else { + page.forEach(item -> { + item.setDeviceState(0); + }); + } return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); } @Override public Object queryStoreroomDevice(String storeroomId, Pageable pageable) { - PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); - Page page = deviceInfoRepository.findStoreroomId(storeroomId,pageRequest); + //PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); + Page page = deviceInfoRepository.findStoreroomId(storeroomId, pageable); + if (getState()) { + + page.forEach(item -> { + item.setDeviceState(1); + }); + } else { + page.forEach(item -> { + item.setDeviceState(0); + }); + } return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); } @Override public Object queryDeviceType(String deviceTypeId, Pageable pageable) { - PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); - Page page = deviceInfoRepository.findDeviceTypeList(deviceTypeId,pageRequest); + //PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); + Page page = deviceInfoRepository.findDeviceTypeList(deviceTypeId, pageable); + if (getState()) { + + page.forEach(item -> { + item.setDeviceState(1); + }); + } else { + page.forEach(item -> { + item.setDeviceState(0); + }); + } return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); } @Override public Object queryAll(Pageable pageable) { - PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); - Page page = deviceInfoRepository.findAllList(pageRequest); + // PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC); + Page page = deviceInfoRepository.findAllList(pageable); + if (getState()) { + + page.forEach(item -> { + item.setDeviceState(1); + }); + } else { + page.forEach(item -> { + item.setDeviceState(0); + }); + } return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); } @@ -195,7 +236,6 @@ public class DeviceImpl implements DeviceService { IsLinkageState(deviceInfo1); IsCallbackState(deviceInfo1); deviceInfoRepository.save(deviceInfo); - } @Override @@ -316,6 +356,16 @@ public class DeviceImpl implements DeviceService { return String.valueOf(tlr.nextInt(1, 2)); } + /** + * 判断第三方接口状态 + * + * @return / + */ + private Boolean getState() { + String token = apiService.getToken(); + return token != null; + } + /** * 保存联动操作状态 * diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java index 5f2a162..b1bad0d 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java @@ -31,7 +31,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService { public void bind(DeviceSpecParamDto deviceSpecParamDto) { DeviceSpecParam deviceSpecParam = deviceSpecParamMapper.toEntity(deviceSpecParamDto); - Integer num = deviceSpecParamRepository.findByMax(deviceSpecParam.getDeviceInfoId().getId()); + Integer num = deviceSpecParamRepository.findByMax(deviceSpecParam.getDeviceInfoId()); if (ObjectUtils.isEmpty(num)) { deviceSpecParam.setSequence(1); } else { @@ -59,7 +59,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService { DeviceSpecParam deviceSpecParam = new DeviceSpecParam(); deviceSpecParam.setId(NanoIdUtils.randomNanoId()); deviceSpecParam.setMacAddress(deviceMacDto.getMacAddress()); - deviceSpecParam.setDeviceInfoId(deviceInfo); + deviceSpecParam.setDeviceInfoId(deviceInfo.getId()); deviceSpecParamRepository.save(deviceSpecParam); } }