diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/BindDeviceController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/BindDeviceController.java new file mode 100644 index 0000000..ba98371 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/BindDeviceController.java @@ -0,0 +1,48 @@ +package com.storeroom.modules.device.controller; + + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.exception.BaseException; +import com.storeroom.modules.device.service.DeviceService; +import com.storeroom.modules.device.service.DeviceSpecParamService; +import com.storeroom.modules.device.service.dto.DeviceMacDto; +import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.MacUtil; +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.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "设备Mac地址") +@RequestMapping("/api/mac/") +public class BindDeviceController { + + private final DeviceSpecParamService deviceSpecParamService; + + @ApiOperation("获取mac地址") + @AnonymousGetMapping("get") + public ApiResponse getMacAddress() throws Exception{ + return ApiResponse.success(MacUtil.getMac()); + } + + + @ApiOperation("绑定Mac地址") + @AnonymousPostMapping("bind") + public ApiResponse bind(@RequestBody DeviceMacDto deviceMacDto){ + if (StringUtils.isEmpty(deviceMacDto.getDeviceId()) || StringUtils.isEmpty(deviceMacDto.getMacAddress())){ + throw new BaseException("设备id或Mac地址不能为空"); + } + deviceSpecParamService.bindMac(deviceMacDto); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + + +} 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 index 0443904..08be32d 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/OutsideDevicesController.java @@ -1,6 +1,7 @@ package com.storeroom.modules.device.controller; +import com.storeroom.annotaion.rest.AnonymousGetMapping; import com.storeroom.annotaion.rest.AnonymousPostMapping; import com.storeroom.annotaion.rest.AnonymousPutMapping; import com.storeroom.exception.BaseException; @@ -15,6 +16,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 @@ -47,6 +49,7 @@ public class OutsideDevicesController { return ApiResponse.success(ResponseStatus.SUCCESS); } + /** * 验证必填值 * @param deviceInfoDto / @@ -55,6 +58,5 @@ public class OutsideDevicesController { if (StringUtils.isEmpty(deviceInfoDto.getDeviceId()) || ObjectUtils.isEmpty(deviceInfoDto.getSupplierId())){ throw new BaseException("必填字段不能为空"); } - } } 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 eb49296..bbb04a6 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 @@ -41,6 +41,10 @@ public class DeviceSpecParam extends BaseEntity implements Serializable { @ApiModelProperty(value = "值单位") private String unit; + @Column(name = "mac_address") + @ApiModelProperty(value = "Mac地址") + private String macAddress; + @Column(name = "sequence") @ApiModelProperty(value = "序号") private Integer sequence; 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 df55d62..2a76a74 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,6 +2,7 @@ package com.storeroom.modules.device.service; import com.storeroom.modules.device.service.dto.DeviceInfoDto; +import com.storeroom.modules.device.service.dto.DeviceMacDto; import java.util.List; @@ -97,4 +98,5 @@ public interface DeviceService { DeviceInfoDto findById(String id); + } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java b/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java index ae12244..38d0305 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java @@ -1,5 +1,6 @@ package com.storeroom.modules.device.service; +import com.storeroom.modules.device.service.dto.DeviceMacDto; import com.storeroom.modules.device.service.dto.DeviceSpecParamDto; import java.util.List; @@ -26,4 +27,10 @@ public interface DeviceSpecParamService { * @return */ List findByDeviceId(String deviceInfoId); + + /** + * 绑定mac地址 + * @param deviceMacDto / + */ + void bindMac(DeviceMacDto deviceMacDto); } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceAllDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceAllDto.java deleted file mode 100644 index b768532..0000000 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceAllDto.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.storeroom.modules.device.service.dto; - -import com.storeroom.modules.device.domain.Storeroom; -import com.storeroom.modules.device.domain.Supplier; - -/** - * 所有设备属性 - */ -public class DeviceAllDto { - - private String id; - - private Supplier supplierId; - - private Storeroom storeroomId; - - private String deviceName; - - private String deviceIp; - - private Integer devicePort; - - private Integer deviceState; - - private Integer sequence; - - private String storeroomCode; - - private String deviceId; - - private Integer rowNo; - - private Integer areaNo; - - private Integer sumColumnNo; - - private Integer firstColumnNo; - - private Integer partNo; - - private Integer isLinkage; - - private Integer isCallback; - - private Integer isNotice; - -} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceMacDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceMacDto.java new file mode 100644 index 0000000..e591ffa --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceMacDto.java @@ -0,0 +1,14 @@ +package com.storeroom.modules.device.service.dto; + + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class DeviceMacDto { + + private String deviceId; + + private String macAddress; +} 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 fa4f591..b99e358 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 @@ -7,6 +7,7 @@ import com.storeroom.modules.device.repository.DeviceInfoRepository; import com.storeroom.modules.device.repository.OperatingStateRepository; 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; @@ -280,6 +281,8 @@ public class DeviceImpl implements DeviceService { return deviceInfoMapper.toDto(deviceInfo); } + + /** * 生成架位左右位置 * 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 9ff5bcb..5f2a162 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 @@ -1,8 +1,11 @@ package com.storeroom.modules.device.service.impl; +import com.storeroom.modules.device.domain.DeviceInfo; import com.storeroom.modules.device.domain.DeviceSpecParam; +import com.storeroom.modules.device.repository.DeviceInfoRepository; import com.storeroom.modules.device.repository.DeviceSpecParamRepository; import com.storeroom.modules.device.service.DeviceSpecParamService; +import com.storeroom.modules.device.service.dto.DeviceMacDto; import com.storeroom.modules.device.service.dto.DeviceSpecParamDto; import com.storeroom.modules.device.service.mapstruct.DeviceSpecParamMapper; import com.storeroom.utils.MacUtil; @@ -21,6 +24,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService { private final DeviceSpecParamRepository deviceSpecParamRepository; private final DeviceSpecParamMapper deviceSpecParamMapper; + private final DeviceInfoRepository deviceInfoRepository; @Override @@ -48,4 +52,14 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService { List deviceSpecParamList = deviceSpecParamRepository.findByDeviceInfoId(deviceInfoId); return deviceSpecParamMapper.toDto(deviceSpecParamList); } + + @Override + public void bindMac(DeviceMacDto deviceMacDto) { + DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceMacDto.getDeviceId()).orElseGet(DeviceInfo::new); + DeviceSpecParam deviceSpecParam = new DeviceSpecParam(); + deviceSpecParam.setId(NanoIdUtils.randomNanoId()); + deviceSpecParam.setMacAddress(deviceMacDto.getMacAddress()); + deviceSpecParam.setDeviceInfoId(deviceInfo); + deviceSpecParamRepository.save(deviceSpecParam); + } }