From 9061928b162c626ce1ad77c621ec325be201a9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Wed, 6 Jul 2022 17:30:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E9=9B=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeseCabinetController.java | 23 +++++++++++++-- .../device/controller/SupplierController.java | 27 ++++++++++++++++++ .../repository/DeseCabinetRepository.java | 13 ++++++++- .../device/service/SupplierService.java | 15 ++++++++++ .../device/service/impl/DenseCabinetImpl.java | 23 +++++++++++++-- .../device/service/impl/SupplierImpl.java | 28 +++++++++++++++++++ .../service/mapstruct/SupplierMapper.java | 11 ++++++++ 7 files changed, 133 insertions(+), 7 deletions(-) create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/controller/SupplierController.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/SupplierService.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/impl/SupplierImpl.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/SupplierMapper.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 8140fac..a00e72c 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 @@ -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.DeseCabinetService; import com.storeroom.modules.device.service.DeviceService; @@ -18,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor -@Api(tags = "密集架控制器") +@Api(tags = "密集架管理") @RequestMapping("/api/desecabinet/") public class DeseCabinetController { @@ -28,6 +29,24 @@ public class DeseCabinetController { @ApiOperation("新增密集架") @AnonymousPostMapping("create") public ApiResponse create(@RequestBody DeseCabinetDto deseCabinetDto) { + verifyDate(deseCabinetDto); + deseCabinetService.create(deseCabinetDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + @ApiOperation("新增密集架") + @AnonymousPutMapping("update") + public ApiResponse update(@RequestBody DeseCabinetDto deseCabinetDto) { + verifyDate(deseCabinetDto); + deseCabinetService.update(deseCabinetDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + /** + * 验证数据 + * @param deseCabinetDto + */ + private void verifyDate(DeseCabinetDto deseCabinetDto) { if (!StringUtils.isEmpty(deseCabinetDto.getId())) { throw new BaseException("id不为空"); } @@ -43,8 +62,6 @@ public class DeseCabinetController { ) { throw new BaseException("必填字段不能为空"); } - deseCabinetService.create(deseCabinetDto); - return ApiResponse.success(ResponseStatus.SUCCESS); } } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/SupplierController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/SupplierController.java new file mode 100644 index 0000000..e80ecbd --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/SupplierController.java @@ -0,0 +1,27 @@ +package com.storeroom.modules.device.controller; + + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.modules.device.service.SupplierService; +import com.storeroom.utils.ApiResponse; +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.RestController; + +@RestController +@Api(tags = "供应商管理") +@RequiredArgsConstructor +@RequestMapping("/api/supplier/") +public class SupplierController { + + private final SupplierService supplierService; + + @ApiOperation("新增设备-获取供应商下拉列表") + @AnonymousGetMapping("dropdown-list") + public ApiResponse getAll() { + return ApiResponse.success(supplierService.getAll()); + } + +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeseCabinetRepository.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeseCabinetRepository.java index c16d2f4..788e967 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeseCabinetRepository.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeseCabinetRepository.java @@ -3,9 +3,20 @@ package com.storeroom.modules.device.repository; import com.storeroom.modules.device.domain.DeseCabinet; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; -public interface DeseCabinetRepository extends JpaRepository, JpaSpecificationExecutor { +import java.util.List; +public interface DeseCabinetRepository extends JpaRepository, JpaSpecificationExecutor { + /** + * 区号,ip 端口号查询 + * @param areaNo + * @param ip + * @param port + * @return + */ + @Query(value = "SELECT * FROM dese_cabinet a JOIN device_info b ON a.device_info_id=b.id WHERE a.area_No=1? AND b.device_ip=2? AND b.device_port=3?", nativeQuery = true) + List findIpAndPortAndAreaNo(Integer areaNo, String ip, Integer port); } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/SupplierService.java b/storeroom/src/main/java/com/storeroom/modules/device/service/SupplierService.java new file mode 100644 index 0000000..7606832 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/SupplierService.java @@ -0,0 +1,15 @@ +package com.storeroom.modules.device.service; + +import com.storeroom.modules.device.service.dto.SupplierDto; + +import java.util.List; + +public interface SupplierService { + + /** + * 获取所有 + * @return + */ + List getAll(); + +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java index 2d9223b..16d8148 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java @@ -15,7 +15,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.w3c.dom.stylesheets.LinkStyle; +import java.util.List; import java.util.concurrent.ThreadLocalRandom; @@ -30,15 +32,15 @@ public class DenseCabinetImpl implements DeseCabinetService { @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void create(DeseCabinetDto deseCabinetDto) { //转换密集架实体 DeseCabinet deseCabinet = deseCabinetMapper.toEntity(deseCabinetDto); //根据IP和端口号查询设备 - DeviceInfo deviceInfo = deviceInfoRepository.findByDeviceIpAndDevicePort(deseCabinetDto.getDeviceInfo().getDeviceIp(), deseCabinetDto.getDeviceInfo().getDevicePort()); + List deseCabinet1 = deseCabinetRepository.findIpAndPortAndAreaNo(deseCabinetDto.getAreaNo(), deseCabinetDto.getDeviceInfo().getDeviceIp(), deseCabinetDto.getDeviceInfo().getDevicePort()); //判断设备同一IP和端口下是否重复 - if (!ObjectUtils.isEmpty(deviceInfo)) { + if (!ObjectUtils.isEmpty(deseCabinet1)) { throw new BaseException("同一IP和端口号下不能重复添加设备"); } //创建设备信息id @@ -83,8 +85,23 @@ public class DenseCabinetImpl implements DeseCabinetService { @Override + @Transactional(rollbackFor = Exception.class) public void update(DeseCabinetDto deseCabinetDto) { + List deseCabinet = deseCabinetRepository.findIpAndPortAndAreaNo(deseCabinetDto.getAreaNo(), deseCabinetDto.getDeviceInfo().getDeviceIp(), deseCabinetDto.getDeviceInfo().getDevicePort()); + if (!ObjectUtils.isEmpty(deseCabinet)) { + throw new BaseException("同一IP和端口号下不能重复添加设备"); + } + DeseCabinet deseCabinet1 = deseCabinetMapper.toEntity(deseCabinetDto); + DeseCabinet deseCabinet2 = deseCabinetRepository.findById(deseCabinet1.getId()).orElseGet(DeseCabinet::new); + if (ObjectUtils.isEmpty(deseCabinet2)) { + throw new BaseException("数据不存在"); + } + deseCabinet2.getDeviceInfo().setDeviceName(deseCabinetDto.getDeviceInfo().getDeviceName()); + deseCabinet2.getDeviceInfo().setDeviceIp(deseCabinetDto.getDeviceInfo().getDeviceIp()); + deseCabinet2.getDeviceInfo().setDevicePort(deseCabinetDto.getDeviceInfo().getDevicePort()); + deseCabinet2.setStoreroomCode(deseCabinetDto.getStoreroomCode()); + deseCabinetRepository.save(deseCabinet2); } @Override diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/SupplierImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/SupplierImpl.java new file mode 100644 index 0000000..0923f72 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/SupplierImpl.java @@ -0,0 +1,28 @@ +package com.storeroom.modules.device.service.impl; + + +import com.storeroom.modules.device.domain.Supplier; +import com.storeroom.modules.device.repository.SupplierRepository; +import com.storeroom.modules.device.service.SupplierService; +import com.storeroom.modules.device.service.dto.SupplierDto; +import com.storeroom.modules.device.service.mapstruct.SupplierMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class SupplierImpl implements SupplierService { + + + private final SupplierRepository supplierRepository; + private final SupplierMapper supplierMapper; + + @Override + public List getAll() { + List supplierList = supplierRepository.findAll(); + List list = supplierMapper.toDto(supplierList); + return list; + } +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/SupplierMapper.java b/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/SupplierMapper.java new file mode 100644 index 0000000..afada9c --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/SupplierMapper.java @@ -0,0 +1,11 @@ +package com.storeroom.modules.device.service.mapstruct; + +import com.storeroom.base.BaseMapper; +import com.storeroom.modules.device.domain.Supplier; +import com.storeroom.modules.device.service.dto.SupplierDto; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; + +@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SupplierMapper extends BaseMapper { +}