From 9523c7aa3c4c963556afd3a37d3898e6653b3da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Fri, 15 Jul 2022 17:31:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=A8=A1=E5=9D=97=EF=BC=8C=E8=AE=BE=E5=A4=87=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APIService/pom.xml | 20 +++++++ pom.xml | 1 + storeroom/pom.xml | 5 ++ .../device/controller/DeviceController.java | 40 ++++++++++++++ .../repository/DeviceInfoRepository.java | 53 +++++++++++++++++-- .../repository/DeviceTypeReposityory.java | 9 ++++ .../modules/device/service/DeviceService.java | 30 +++++++++-- .../service/dto/DeviceQueryCriteria.java | 16 ++++++ .../device/service/dto/DeviceQueryDto.java | 23 ++++++++ .../device/service/impl/DeviceImpl.java | 47 +++++++++++----- system/pom.xml | 5 ++ 11 files changed, 230 insertions(+), 19 deletions(-) create mode 100644 APIService/pom.xml create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceTypeReposityory.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryCriteria.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryDto.java diff --git a/APIService/pom.xml b/APIService/pom.xml new file mode 100644 index 0000000..5d20796 --- /dev/null +++ b/APIService/pom.xml @@ -0,0 +1,20 @@ + + + + yxk_StoreroomSystem + com.storeroom + 1.0 + + 4.0.0 + + APIService + 第三方接口服务 + + + 17 + 17 + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 1e75d5c..f213645 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ logging archives storeroom + APIService 智能库房综合管理系统 diff --git a/storeroom/pom.xml b/storeroom/pom.xml index 505f4bb..c5ae271 100644 --- a/storeroom/pom.xml +++ b/storeroom/pom.xml @@ -23,6 +23,11 @@ common 1.0 + + com.storeroom + APIService + 1.0 + \ No newline at end of file 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 new file mode 100644 index 0000000..0073ca8 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java @@ -0,0 +1,40 @@ +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; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "设备管理") +@RequestMapping("/api/device/") +public class DeviceController { + + private final DeviceService deviceService; + + + @ApiOperation("通过id获取设备列表") + @AnonymousGetMapping("list") + public ApiResponse list(String storeroomId, String deviceTypeId, Pageable pageable) { + if (!StringUtils.isEmpty(storeroomId) && !StringUtils.isEmpty(deviceTypeId)) { + return ApiResponse.success(deviceService.queryAll(pageable)); + } + if (StringUtils.isEmpty(storeroomId) && !StringUtils.isEmpty(deviceTypeId)) { + return ApiResponse.success(deviceService.queryDeviceType(deviceTypeId, pageable)); + } + if (StringUtils.isEmpty(deviceTypeId) && !StringUtils.isEmpty(storeroomId)) { + return ApiResponse.success(deviceService.queryStoreroomDevice(storeroomId, pageable)); + } + return ApiResponse.success(deviceService.queryAll(pageable)); + } +} 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 46f439b..0e1b76b 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 @@ -3,6 +3,9 @@ package com.storeroom.modules.device.repository; import com.storeroom.modules.device.domain.DeviceInfo; import com.storeroom.modules.device.domain.DeviceType; import com.storeroom.modules.device.domain.Storeroom; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -17,7 +20,7 @@ public interface DeviceInfoRepository extends JpaRepository, /** * 根据ip 端口号 查询 * - * @param ip 根据ip + * @param ip 根据ip * @param port 端口号 * @return / */ @@ -45,9 +48,10 @@ public interface DeviceInfoRepository extends JpaRepository, /** * 通过 ip 端口号 第三方设备id 查询 - * @param deviceIp ip + * + * @param deviceIp ip * @param devicePort 端口号 - * @param deviceId 第三方设备id + * @param deviceId 第三方设备id * @return / */ List findByDeviceIpAndDevicePortAndDeviceId(String deviceIp, Integer devicePort, String deviceId); @@ -55,11 +59,12 @@ public interface DeviceInfoRepository extends JpaRepository, /** * 根据第三方设备id和设备类型查询 + * * @param deviceId * @param deviceTypeId * @return */ - List findByDeviceIdAndDeviceTypeId(String deviceId,DeviceType deviceTypeId); + List findByDeviceIdAndDeviceTypeId(String deviceId, DeviceType deviceTypeId); /** * 查询排序最大值 @@ -69,4 +74,44 @@ public interface DeviceInfoRepository extends JpaRepository, @Query(value = "SELECT MAX(sequence) AS maxsque FROM device_info", nativeQuery = true) Integer findByMax(); + /** + * 通过库房id和设备类型id 查询 + * + * @param storeroomId 库房id + * @param deviceTypeId 设备类型id + * @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); + + + /** + * 查询所有列表 + * + * @param pageable / + * @return / + */ + @Query(value = "select * from device_info", nativeQuery = true) + Page findAllList(Pageable pageable); + + /** + * 根据设备类型查询 + * + * @param deviceTypeId + * @param pageable + * @return + */ + @Query(value = "select * from device_info where storeroom_id=?1", nativeQuery = true) + Page findStoreroomId(String storeroomId, Pageable pageable); + + /** + * 通过设备类型查询 + * @param deviceTypeId 、 + * @param pageable 、 + * @return 、 + */ + @Query(value = "select * from device_info where device_type_id=?1", nativeQuery = true) + Page findDeviceTypeList(String deviceTypeId, Pageable pageable); + } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceTypeReposityory.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceTypeReposityory.java new file mode 100644 index 0000000..319fc3d --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceTypeReposityory.java @@ -0,0 +1,9 @@ +package com.storeroom.modules.device.repository; + + +import com.storeroom.modules.device.domain.DeviceType; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +public interface DeviceTypeReposityory extends JpaRepository, JpaSpecificationExecutor { +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java b/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java index 2a76a74..aa91ef7 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java @@ -2,7 +2,8 @@ package com.storeroom.modules.device.service; import com.storeroom.modules.device.service.dto.DeviceInfoDto; -import com.storeroom.modules.device.service.dto.DeviceMacDto; +import com.storeroom.modules.device.service.dto.DeviceQueryCriteria; +import org.springframework.data.domain.Pageable; import java.util.List; @@ -12,7 +13,31 @@ public interface DeviceService { /* * 通过库房id 查询设备 */ - List findByDevice(String StoreRoomId); + Object queryStoreroomAndDevice(String storeroomId, String deviceTypeId, Pageable pageable); + + + /** + * 通过库房id查询 + * @param storeroomId / + * @param pageable / + * @return / + */ + Object queryStoreroomDevice(String storeroomId,Pageable pageable); + + /** + * 通过设备类型id 查询 + * @param deviceTypeId / + * @param pageable / + * @return / + */ + Object queryDeviceType(String deviceTypeId,Pageable pageable); + + /** + * 查询全部列表 + * @param pageable + * @return + */ + Object queryAll(Pageable pageable); /** * 新增密集架 @@ -98,5 +123,4 @@ public interface DeviceService { DeviceInfoDto findById(String id); - } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryCriteria.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryCriteria.java new file mode 100644 index 0000000..a1cbbc2 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryCriteria.java @@ -0,0 +1,16 @@ +package com.storeroom.modules.device.service.dto; + +import com.storeroom.annotaion.Query; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class DeviceQueryCriteria implements Serializable { + + @Query + private String storeroomId; + + @Query + private String deviceTypeId; +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryDto.java new file mode 100644 index 0000000..58bd0a9 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceQueryDto.java @@ -0,0 +1,23 @@ +package com.storeroom.modules.device.service.dto; + + +import com.storeroom.annotaion.Query; +import com.storeroom.modules.device.domain.DeviceType; +import com.storeroom.modules.device.domain.Storeroom; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Data +@Getter +@Setter +public class DeviceQueryDto implements Serializable { + + @Query + private Storeroom storeroomDto; + + @Query + private DeviceType deviceType; +} 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 b99e358..19e11fb 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 @@ -2,16 +2,16 @@ package com.storeroom.modules.device.service.impl; import com.storeroom.exception.BaseException; import com.storeroom.modules.device.domain.*; -import com.storeroom.modules.device.repository.DeviceArchivesTagRepository; -import com.storeroom.modules.device.repository.DeviceInfoRepository; -import com.storeroom.modules.device.repository.OperatingStateRepository; +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.dto.DeviceMacDto; import com.storeroom.modules.device.service.mapstruct.DeviceInfoMapper; -import com.storeroom.utils.NanoIdUtils; -import com.storeroom.utils.StringUtils; +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; @@ -31,10 +31,34 @@ public class DeviceImpl implements DeviceService { private final DeviceArchivesTagRepository deviceArchivesTagRepository; @Override - public List findByDevice(String StoreRoomId) { - return null; + 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); + 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); + 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); + 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); + return PageUtil.toPage(page.map(deviceInfoMapper::toDto)); + } + + @Override @Transactional(rollbackFor = Exception.class) public void createDeseCabinet(DeviceInfoDto deviceInfoDto) { @@ -274,15 +298,14 @@ public class DeviceImpl implements DeviceService { @Override public DeviceInfoDto findById(String id) { - if (StringUtils.isEmpty(id)){ - throw new BaseException("id不能为空"); + if (StringUtils.isEmpty(id)) { + throw new BaseException("id不能为空"); } - DeviceInfo deviceInfo=deviceInfoRepository.findById(id).orElseGet(DeviceInfo::new); + DeviceInfo deviceInfo = deviceInfoRepository.findById(id).orElseGet(DeviceInfo::new); return deviceInfoMapper.toDto(deviceInfo); } - /** * 生成架位左右位置 * diff --git a/system/pom.xml b/system/pom.xml index 17de476..c3d2daf 100644 --- a/system/pom.xml +++ b/system/pom.xml @@ -91,6 +91,11 @@ storeroom 1.0 + + com.storeroom + APIService + 1.0 +