From f336d564bf13f6badad9da152d9e3a8898d2b5ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Thu, 14 Jul 2022 13:36:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=80=E6=9C=89=E8=AE=BE=E5=A4=87=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeseCabinetController.java | 20 +++---- .../controller/InsideDevicesController.java | 27 ++++++--- .../controller/OutsideDevicesController.java | 60 +++++++++++++++++++ .../repository/DeviceInfoRepository.java | 9 +++ .../modules/device/service/DeviceService.java | 13 ++++ .../device/service/impl/DeviceImpl.java | 25 ++++++++ 6 files changed, 137 insertions(+), 17 deletions(-) create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java index 5fc40db..2c90ca7 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java @@ -12,6 +12,7 @@ import com.storeroom.utils.enums.ResponseStatus; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.RestController; @@ -49,22 +50,21 @@ public class DeseCabinetController { } - /** * 必填字段验证 * * @param deviceInfoDto / */ private void verifyValues(@RequestBody DeviceInfoDto deviceInfoDto) { - if (deviceInfoDto.getAreaNo() != null - && deviceInfoDto.getRowNo() != null - && deviceInfoDto.getSumColumnNo() != null - && deviceInfoDto.getFirstColumnNo() != null - && deviceInfoDto.getPartNo() != null - && StringUtils.isEmpty(deviceInfoDto.getDeviceName()) - && StringUtils.isEmpty(deviceInfoDto.getStoreroomId().getId()) - && StringUtils.isEmpty(deviceInfoDto.getDeviceIp()) - && deviceInfoDto.getDevicePort() != null + if (ObjectUtils.isEmpty(deviceInfoDto.getAreaNo()) + || ObjectUtils.isEmpty(deviceInfoDto.getRowNo()) + || ObjectUtils.isEmpty(deviceInfoDto.getSumColumnNo()) + || ObjectUtils.isEmpty(deviceInfoDto.getFirstColumnNo()) + || ObjectUtils.isEmpty(deviceInfoDto.getPartNo()) + || StringUtils.isEmpty(deviceInfoDto.getDeviceName()) + || StringUtils.isEmpty(deviceInfoDto.getStoreroomId().getId()) + || StringUtils.isEmpty(deviceInfoDto.getDeviceIp()) + || ObjectUtils.isEmpty(deviceInfoDto.getDevicePort()) ) { throw new BaseException("必填字段不能为空"); } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/InsideDevicesController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/InsideDevicesController.java index 2c86a25..b78b719 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/controller/InsideDevicesController.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/InsideDevicesController.java @@ -2,6 +2,7 @@ package com.storeroom.modules.device.controller; import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.annotaion.rest.AnonymousPutMapping; import com.storeroom.exception.BaseException; import com.storeroom.modules.device.service.DeviceService; import com.storeroom.modules.device.service.dto.DeviceInfoDto; @@ -11,6 +12,7 @@ import com.storeroom.utils.enums.ResponseStatus; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.RestController; @@ -35,19 +37,30 @@ public class InsideDevicesController { return ApiResponse.success(ResponseStatus.SUCCESS); } + @ApiOperation("修改环控设备") + @AnonymousPutMapping("update") + public ApiResponse update(@RequestBody DeviceInfoDto deviceInfoDto) { + if (StringUtils.isEmpty(deviceInfoDto.getId())) { + throw new BaseException("id为空"); + } + verifyValues(deviceInfoDto); + deviceService.updateInsideDevices(deviceInfoDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + /** * 验证必填值 * - * @param deviceInfoDto + * @param deviceInfoDto / */ private void verifyValues(DeviceInfoDto deviceInfoDto) { - if (StringUtils.isEmpty(deviceInfoDto.getDeviceName()) && - StringUtils.isEmpty(deviceInfoDto.getDeviceIp()) && - deviceInfoDto.getDevicePort() != null && - StringUtils.isEmpty(deviceInfoDto.getDeviceId()) && - deviceInfoDto.getDeviceTypeId() != null) { - throw new BaseException("必填字段不能为空"); + if (StringUtils.isEmpty(deviceInfoDto.getDeviceName()) || + StringUtils.isEmpty(deviceInfoDto.getDeviceIp()) || + ObjectUtils.isEmpty(deviceInfoDto.getDevicePort()) || + StringUtils.isEmpty(deviceInfoDto.getDeviceId()) || + ObjectUtils.isEmpty(deviceInfoDto.getDeviceTypeId())) { + throw new BaseException("必填字段不能为空"); } } } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java new file mode 100644 index 0000000..0443904 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java @@ -0,0 +1,60 @@ +package com.storeroom.modules.device.controller; + + +import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.annotaion.rest.AnonymousPutMapping; +import com.storeroom.exception.BaseException; +import com.storeroom.modules.device.service.DeviceService; +import com.storeroom.modules.device.service.dto.DeviceInfoDto; +import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.StringUtils; +import com.storeroom.utils.enums.ResponseStatus; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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.RestController; + +@RestController +@Api(tags = "外置设备管理") +@RequiredArgsConstructor +@RequestMapping("/api/outsidedevices/") +public class OutsideDevicesController { + + private final DeviceService deviceService; + + @ApiOperation("创建外置设备:通道门,手持式RFID读写器") + @AnonymousPostMapping("create") + public ApiResponse create(@RequestBody DeviceInfoDto deviceInfoDto){ + if (!StringUtils.isEmpty(deviceInfoDto.getId())){ + throw new BaseException("id不为空"); + } + verifyValues(deviceInfoDto); + deviceService.createOutsideDevices(deviceInfoDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + @ApiOperation("创建外置设备:通道门,手持式RFID读写器") + @AnonymousPutMapping("update") + public ApiResponse update(@RequestBody DeviceInfoDto deviceInfoDto){ + if (StringUtils.isEmpty(deviceInfoDto.getId())){ + throw new BaseException("id不能为空"); + } + verifyValues(deviceInfoDto); + deviceService.updateOutsideDevices(deviceInfoDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + /** + * 验证必填值 + * @param deviceInfoDto / + */ + private void verifyValues(DeviceInfoDto deviceInfoDto){ + if (StringUtils.isEmpty(deviceInfoDto.getDeviceId()) || ObjectUtils.isEmpty(deviceInfoDto.getSupplierId())){ + throw new BaseException("必填字段不能为空"); + } + + } +} 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 e43ca45..46f439b 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 @@ -52,6 +52,15 @@ public interface DeviceInfoRepository extends JpaRepository, */ List findByDeviceIpAndDevicePortAndDeviceId(String deviceIp, Integer devicePort, String deviceId); + + /** + * 根据第三方设备id和设备类型查询 + * @param deviceId + * @param deviceTypeId + * @return + */ + List findByDeviceIdAndDeviceTypeId(String deviceId,DeviceType deviceTypeId); + /** * 查询排序最大值 * 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 f1300d5..f934493 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 @@ -66,4 +66,17 @@ public interface DeviceService { void updateInsideDevices(DeviceInfoDto deviceInfoDto); + /** + * 新增 通道门,手持RFID读写器 + * @param deviceInfoDto / + */ + void createOutsideDevices(DeviceInfoDto deviceInfoDto); + + /** + * 修改 通道门,手持RFID读写器 + * @param deviceInfoDto / + */ + void updateOutsideDevices(DeviceInfoDto deviceInfoDto); + + } 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 4225391..e3e988b 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 @@ -246,6 +246,31 @@ public class DeviceImpl implements DeviceService { } + @Override + public void createOutsideDevices(DeviceInfoDto deviceInfoDto) { + List deviceInfoList = deviceInfoRepository.findByDeviceIdAndDeviceTypeId(deviceInfoDto.getDeviceId(), deviceInfoDto.getDeviceTypeId()); + if (deviceInfoList.size() != 0) { + throw new BaseException("同一类型和同一设备id不能重复添加"); + } + DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto); + deviceInfo.setId(NanoIdUtils.randomNanoId()); + Integer num = deviceInfoRepository.findByMax(); + if (num == 0) { + deviceInfo.setSequence(1); + } + deviceInfo.setSequence(num + 1); + deviceInfoRepository.save(deviceInfo); + } + + @Override + public void updateOutsideDevices(DeviceInfoDto deviceInfoDto) { + + DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto); + DeviceInfo deviceInfo1 = deviceInfoRepository.findById(deviceInfo.getId()).orElseGet(DeviceInfo::new); + deviceInfo1.setDeviceName(deviceInfo.getDeviceName()); + deviceInfoRepository.save(deviceInfo1); + } + /** * 生成架位左右位置 *