Browse Source

修改新增设备

master
刘力 3 years ago
parent
commit
b2855e0fb7
  1. 41
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java
  2. 55
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java
  3. 2
      storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java
  4. 32
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java
  5. 13
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java
  6. 31
      storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java
  7. 142
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java

41
storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java

@ -8,6 +8,7 @@ import com.storeroom.modules.device.domain.DeseCabinet;
import com.storeroom.modules.device.service.DeseCabinetService;
import com.storeroom.modules.device.service.DeviceService;
import com.storeroom.modules.device.service.dto.DeseCabinetDto;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.StringUtils;
import com.storeroom.utils.enums.ResponseStatus;
@ -25,28 +26,28 @@ import org.springframework.web.bind.annotation.RestController;
public class DeseCabinetController {
private final DeseCabinetService deseCabinetService;
private final DeviceService deviceService;
@ApiOperation("新增密集架")
@AnonymousPostMapping("create")
public ApiResponse<Object> create(@RequestBody DeseCabinet deseCabinet) {
public ApiResponse<Object> create(@RequestBody DeviceInfoDto deviceInfoDto) {
if (!StringUtils.isEmpty(deseCabinet.getId())) {
if (!StringUtils.isEmpty(deviceInfoDto.getId())) {
throw new BaseException("id不为空");
}
verifyValues(deseCabinet);
deseCabinetService.create(deseCabinet);
verifyValues(deviceInfoDto);
deviceService.createDeseCabinet(deviceInfoDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ApiOperation("修改密集架")
@AnonymousPutMapping("update")
public ApiResponse<Object> update(@RequestBody DeseCabinet deseCabinet) {
if (StringUtils.isEmpty(deseCabinet.getId())) {
public ApiResponse<Object> update(@RequestBody DeviceInfoDto deviceInfoDto) {
if (StringUtils.isEmpty(deviceInfoDto.getId())) {
throw new BaseException("id不能为空");
}
verifyValues(deseCabinet);
deseCabinetService.update(deseCabinet);
verifyValues(deviceInfoDto);
deviceService.updateDeseCabinet(deviceInfoDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ -55,18 +56,18 @@ public class DeseCabinetController {
/**
* 必填字段验证
*
* @param deseCabinet /
* @param deviceInfoDto /
*/
private void verifyValues(@RequestBody DeseCabinet deseCabinet) {
if (deseCabinet.getAreaNo() != null
&& deseCabinet.getRowNo() != null
&& deseCabinet.getSumColumnNo() != null
&& deseCabinet.getFirstColumnNo() != null
&& deseCabinet.getPartNo() != null
&& StringUtils.isEmpty(deseCabinet.getDeviceInfo().getDeviceName())
&& StringUtils.isEmpty(deseCabinet.getDeviceInfo().getStoreroomId().getId())
&& StringUtils.isEmpty(deseCabinet.getDeviceInfo().getDeviceIp())
&& deseCabinet.getDeviceInfo().getDevicePort() != null
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
) {
throw new BaseException("必填字段不能为空");
}

55
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java

@ -58,21 +58,72 @@ public class DeviceInfo extends BaseEntity implements Serializable {
@ApiModelProperty(value = "设备状态")
private Integer deviceState;
@Column(name = "row_No")
@ApiModelProperty(value = "层数")
private Integer rowNo;
@Column(name = "area_No")
@ApiModelProperty(value = "区号")
private Integer areaNo;
@Column(name = "sum_column_No")
@ApiModelProperty(value = "总列数")
private Integer sumColumnNo;
@Column(name = "first_column_No")
@ApiModelProperty(value = "起始列号")
private Integer firstColumnNo;
@Column(name = "part_No")
@ApiModelProperty(value = "节数")
private Integer partNo;
@Column(name = "storeroom_code")
@ApiModelProperty(value = "库房代码")
private String storeroomCode;
@Column(name = "column_row_No")
@ApiModelProperty(value = "每层列数")
private Integer columnRowNo;
@Column(name = "device_account")
@ApiModelProperty(value = "设备账号")
private String deviceAccount;
@Column(name = "device_password")
@ApiModelProperty(value = "设备密码")
private String devicePassword;
@Column(name = "cupboard_No")
@ApiModelProperty(value = "柜号")
private Integer cupboardNo;
@Column(name = "is_notice")
@ApiModelProperty(value = "下发通知")
private Boolean isNotice;
@Column(name = "sequence")
@ApiModelProperty(value = "序号")
private Integer sequence;
@Transient
@ApiModelProperty(value = "联动操作")
private OperatingState isLinkage;
@Transient
@ApiModelProperty(value = "是否回调")
private OperatingState isCallback;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeviceInfo that = (DeviceInfo) o;
return Objects.equals(id, that.id) && Objects.equals(supplierId, that.supplierId) && Objects.equals(storeroomId, that.storeroomId) && Objects.equals(deviceName, that.deviceName) && Objects.equals(deviceIp, that.deviceIp) && Objects.equals(devicePort, that.devicePort) && Objects.equals(deviceState, that.deviceState) && Objects.equals(sequence, that.sequence);
return Objects.equals(id, that.id) && Objects.equals(supplierId, that.supplierId) && Objects.equals(storeroomId, that.storeroomId) && Objects.equals(deviceTypeId, that.deviceTypeId) && Objects.equals(deviceName, that.deviceName) && Objects.equals(deviceIp, that.deviceIp) && Objects.equals(devicePort, that.devicePort) && Objects.equals(deviceState, that.deviceState) && Objects.equals(rowNo, that.rowNo) && Objects.equals(areaNo, that.areaNo) && Objects.equals(sumColumnNo, that.sumColumnNo) && Objects.equals(firstColumnNo, that.firstColumnNo) && Objects.equals(partNo, that.partNo) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(columnRowNo, that.columnRowNo) && Objects.equals(deviceAccount, that.deviceAccount) && Objects.equals(devicePassword, that.devicePassword) && Objects.equals(cupboardNo, that.cupboardNo) && Objects.equals(isNotice, that.isNotice) && Objects.equals(sequence, that.sequence) && Objects.equals(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback);
}
@Override
public int hashCode() {
return Objects.hash(id, supplierId, storeroomId, deviceName, deviceIp, devicePort, deviceState, sequence);
return Objects.hash(id, supplierId, storeroomId, deviceTypeId, deviceName, deviceIp, devicePort, deviceState, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, storeroomCode, columnRowNo, deviceAccount, devicePassword, cupboardNo, isNotice, sequence, isLinkage, isCallback);
}
}

2
storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java

@ -33,7 +33,7 @@ public class RotaryCabinet extends BaseEntity implements Serializable {
private String storeroomCode;
@Column(name = "column_row_No")
@ApiModelProperty(value = "层数")
@ApiModelProperty(value = "数")
private Integer columnRowNo;
@Column(name = "device_account")

32
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java

@ -4,19 +4,33 @@ import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.Storeroom;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface DeviceInfoRepository extends JpaRepository<DeviceInfo,String>, JpaSpecificationExecutor<DeviceInfo> {
public interface DeviceInfoRepository extends JpaRepository<DeviceInfo, String>, JpaSpecificationExecutor<DeviceInfo> {
List<DeviceInfo> findByStoreroomId(Storeroom storeroomId);
List<DeviceInfo> findByStoreroomId(Storeroom storeroomId);
/**
* 根据ip 端口号 查询
* @param ip
* @param port
* @return
*/
DeviceInfo findByDeviceIpAndDevicePort(String ip,Integer port);
/**
* 根据ip 端口号 查询
*
* @param ip
* @param port
* @return
*/
List<DeviceInfo> findByDeviceIpAndDevicePort(String ip, Integer port);
/**
* 查询区号 ip 端口号
*
* @param areaNo 区号
* @param ip 设备ip
* @param port 设备端口号
* @return
*/
@Query(value = "SELECT * FROM device_info WHERE area_No = ?1 AND device_ip=?2 AND device_port=?3", nativeQuery = true)
List<DeviceInfo> findByAreaNoAndAndDeviceIpAndAndDevicePort(Integer areaNo, String ip, Integer port);
}

13
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java

@ -1,6 +1,6 @@
package com.storeroom.modules.device.service;
import com.storeroom.modules.device.service.dto.DeseCabinetDto;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import java.util.List;
@ -13,5 +13,16 @@ public interface DeviceService {
*/
List<DeviceInfoDto> findByDevice(String StoreRoomId);
/**
* 创建设备
* @param deviceInfoDto /
*/
void createDeseCabinet(DeviceInfoDto deviceInfoDto);
/**
* 修改设备
* @param deviceInfoDto /
*/
void updateDeseCabinet(DeviceInfoDto deviceInfoDto);
}

31
storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java

@ -3,6 +3,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 lombok.Getter;
@ -32,18 +33,44 @@ public class DeviceInfoDto extends BaseDTO implements Serializable {
private Integer deviceState;
private Integer rowNo;
private Integer areaNo;
private Integer sumColumnNo;
private Integer firstColumnNo;
private Integer partNo;
private String storeroomCode;
private Integer columnRowNo;
private String deviceAccount;
private String devicePassword;
private Integer cupboardNo;
private Boolean isNotice;
private Integer sequence;
private OperatingState isLinkage;
private OperatingState isCallback;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeviceInfoDto that = (DeviceInfoDto) o;
return Objects.equals(id, that.id) && Objects.equals(supplierId, that.supplierId) && Objects.equals(storeroomId, that.storeroomId) && Objects.equals(deviceName, that.deviceName) && Objects.equals(deviceIp, that.deviceIp) && Objects.equals(devicePort, that.devicePort) && Objects.equals(deviceState, that.deviceState) && Objects.equals(sequence, that.sequence);
return Objects.equals(id, that.id) && Objects.equals(supplierId, that.supplierId) && Objects.equals(storeroomId, that.storeroomId) && Objects.equals(deviceTypeId, that.deviceTypeId) && Objects.equals(deviceName, that.deviceName) && Objects.equals(deviceIp, that.deviceIp) && Objects.equals(devicePort, that.devicePort) && Objects.equals(deviceState, that.deviceState) && Objects.equals(rowNo, that.rowNo) && Objects.equals(areaNo, that.areaNo) && Objects.equals(sumColumnNo, that.sumColumnNo) && Objects.equals(firstColumnNo, that.firstColumnNo) && Objects.equals(partNo, that.partNo) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(columnRowNo, that.columnRowNo) && Objects.equals(deviceAccount, that.deviceAccount) && Objects.equals(devicePassword, that.devicePassword) && Objects.equals(cupboardNo, that.cupboardNo) && Objects.equals(isNotice, that.isNotice) && Objects.equals(sequence, that.sequence) && Objects.equals(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback);
}
@Override
public int hashCode() {
return Objects.hash(id, supplierId, storeroomId, deviceName, deviceIp, devicePort, deviceState, sequence);
return Objects.hash(id, supplierId, storeroomId, deviceTypeId, deviceName, deviceIp, devicePort, deviceState, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, storeroomCode, columnRowNo, deviceAccount, devicePassword, cupboardNo, isNotice, sequence, isLinkage, isCallback);
}
}

142
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java

@ -1,11 +1,21 @@
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.service.DeviceService;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.modules.device.service.mapstruct.DeviceInfoMapper;
import com.storeroom.utils.NanoIdUtils;
import com.storeroom.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
@Service
@ -13,8 +23,140 @@ import java.util.List;
public class DeviceImpl implements DeviceService {
private final DeviceInfoRepository deviceInfoRepository;
private final DeviceInfoMapper deviceInfoMapper;
private final OperatingStateRepository operatingStateRepository;
private final DeviceArchivesTagRepository deviceArchivesTagRepository;
@Override
public List<DeviceInfoDto> findByDevice(String StoreRoomId) {
return null;
}
@Override
public void createDeseCabinet(DeviceInfoDto deviceInfoDto) {
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByAreaNoAndAndDeviceIpAndAndDevicePort(deviceInfo.getAreaNo(), deviceInfo.getDeviceIp(), deviceInfo.getDevicePort());
if (deviceInfoList.size() != 0) {
throw new BaseException("区号IP端口不能重复添加设备");
}
//创建密集架id
deviceInfo.setId(NanoIdUtils.randomNanoId());
//生成架位
String position = deviceInfo.getAreaNo() +
"-" +
deviceInfo.getFirstColumnNo() +
"-" +
deviceInfo.getPartNo() +
"-" +
deviceInfo.getRowNo() +
"-" +
GenerateNum();
String leftOrRight;
if (GenerateNum().equals("1")) {
leftOrRight = "左";
} else {
leftOrRight = "右";
}
String positionName = deviceInfo.getAreaNo() +
"区" +
deviceInfo.getFirstColumnNo() +
"列" +
deviceInfo.getPartNo() +
"节" +
deviceInfo.getRowNo() +
"层" +
leftOrRight;
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
//生成架位标签表id
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setDeviceInfoId(deviceInfo.getId());
deviceArchivesTag.setPosition_name(positionName);
//创建联动操作状态对象
IsLinkageState(deviceInfo);
IsCallbackState(deviceInfo);
deviceArchivesTagRepository.save(deviceArchivesTag);
deviceInfoRepository.save(deviceInfo);
}
@Override
public void updateDeseCabinet(DeviceInfoDto deviceInfoDto) {
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByAreaNoAndAndDeviceIpAndAndDevicePort(deviceInfo.getAreaNo(), deviceInfo.getDeviceIp(), deviceInfo.getDevicePort());
if (!ObjectUtils.isEmpty(deviceInfoList)){
throw new BaseException("区号IP端口不能重复添加设备");
}
}
/**
* 生成架位左右位置
*
* @return
*/
private String GenerateNum() {
ThreadLocalRandom tlr = ThreadLocalRandom.current();
return String.valueOf(tlr.nextInt(1, 2));
}
/**
* 保存联动操作状态
*
* @param deviceInfo /
*/
private void IsLinkageState(DeviceInfo deviceInfo) {
if (StringUtils.isEmpty(deviceInfo.getIsLinkage().getId())){
OperatingState operatingState = new OperatingState();
operatingState.setId(NanoIdUtils.randomNanoId());
operatingState.setDeviceId(deviceInfo.getId());
operatingState.setBorrow(deviceInfo.getIsLinkage().getBorrow());
operatingState.setInBound(deviceInfo.getIsLinkage().getInBound());
operatingState.setOutBound(deviceInfo.getIsLinkage().getOutBound());
operatingState.setLend(deviceInfo.getIsLinkage().getLend());
operatingState.setStateType(deviceInfo.getIsLinkage().getStateType());
operatingStateRepository.save(operatingState);
}else {
OperatingState operatingState1 = operatingStateRepository.findById(deviceInfo.getIsLinkage().getId()).orElseGet(OperatingState::new);
operatingState1.setDeviceId(deviceInfo.getId());
operatingState1.setBorrow(deviceInfo.getIsLinkage().getBorrow());
operatingState1.setInBound(deviceInfo.getIsLinkage().getInBound());
operatingState1.setOutBound(deviceInfo.getIsLinkage().getOutBound());
operatingState1.setLend(deviceInfo.getIsLinkage().getLend());
operatingState1.setStateType(deviceInfo.getIsLinkage().getStateType());
operatingStateRepository.save(operatingState1);
}
}
/**
* 保存回调操作状态
*
* @param deviceInfo /
*/
private void IsCallbackState(DeviceInfo deviceInfo) {
if (StringUtils.isEmpty(deviceInfo.getIsCallback().getId())) {
OperatingState operatingState = new OperatingState();
operatingState.setId(NanoIdUtils.randomNanoId());
operatingState.setDeviceId(deviceInfo.getId());
operatingState.setBorrow(deviceInfo.getIsCallback().getBorrow());
operatingState.setInBound(deviceInfo.getIsCallback().getInBound());
operatingState.setOutBound(deviceInfo.getIsCallback().getOutBound());
operatingState.setLend(deviceInfo.getIsCallback().getLend());
operatingState.setStateType(deviceInfo.getIsCallback().getStateType());
operatingStateRepository.save(operatingState);
} else {
OperatingState operatingState1 = operatingStateRepository.findById(deviceInfo.getIsLinkage().getId()).orElseGet(OperatingState::new);
operatingState1.setDeviceId(deviceInfo.getId());
operatingState1.setBorrow(deviceInfo.getIsCallback().getBorrow());
operatingState1.setInBound(deviceInfo.getIsCallback().getInBound());
operatingState1.setOutBound(deviceInfo.getIsCallback().getOutBound());
operatingState1.setLend(deviceInfo.getIsCallback().getLend());
operatingState1.setStateType(deviceInfo.getIsCallback().getStateType());
operatingStateRepository.save(operatingState1);
}
}
}
Loading…
Cancel
Save