Browse Source

新增密集架

master
刘力 3 years ago
parent
commit
c03b371e32
  1. 24
      storeroom/src/main/java/com/storeroom/config/CallbackEnum.java
  2. 24
      storeroom/src/main/java/com/storeroom/config/LinkageEnum.java
  3. 50
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java
  4. 11
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java
  5. 10
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceArchivesTag.java
  6. 26
      storeroom/src/main/java/com/storeroom/modules/device/service/DeseCabinetService.java
  7. 6
      storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeseCabinetDto.java
  8. 2
      storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java
  9. 50
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java

24
storeroom/src/main/java/com/storeroom/config/CallbackEnum.java

@ -0,0 +1,24 @@
package com.storeroom.config;
import lombok.Getter;
/**
* 回调确认
*/
@Getter
public enum CallbackEnum {
LEND(1, "借出"),
BORROW(2, "归还"),
INBOUND(3, "入库"),
OUTBOUND(4, "出库");
private final Integer code;
private final String msg;
CallbackEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}

24
storeroom/src/main/java/com/storeroom/config/LinkageEnum.java

@ -0,0 +1,24 @@
package com.storeroom.config;
import lombok.Getter;
/**
* 联动操作
*/
@Getter
public enum LinkageEnum {
LEND(1, "借出"),
BORROW(2, "归还"),
INBOUND(3, "入库"),
OUTBOUND(4, "出库");
private final Integer code;
private final String msg;
LinkageEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}

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

@ -0,0 +1,50 @@
package com.storeroom.modules.device.controller;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.exception.BaseException;
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.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.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "密集架控制器")
@RequestMapping("/api/desecabinet/")
public class DeseCabinetController {
private final DeseCabinetService deseCabinetService;
@ApiOperation("新增密集架")
@AnonymousPostMapping("create")
public ApiResponse<Object> create(@RequestBody DeseCabinetDto deseCabinetDto) {
if (!StringUtils.isEmpty(deseCabinetDto.getId())) {
throw new BaseException("id不为空");
}
if (deseCabinetDto.getAreaNo() != null
&& deseCabinetDto.getRowNo() != null
&& deseCabinetDto.getSumColumnNo() != null
&& deseCabinetDto.getFirstColumnNo() != null
&& deseCabinetDto.getPartNo() != null
&& StringUtils.isEmpty(deseCabinetDto.getDeviceInfo().getDeviceName())
&& StringUtils.isEmpty(deseCabinetDto.getDeviceInfo().getStoreroomId().getId())
&& StringUtils.isEmpty(deseCabinetDto.getDeviceInfo().getDeviceIp())
&& deseCabinetDto.getDeviceInfo().getDevicePort() != null
) {
throw new BaseException("必填字段不能为空");
}
deseCabinetService.create(deseCabinetDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
}

11
storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java

@ -27,14 +27,11 @@ public class DeseCabinet extends BaseEntity implements Serializable {
@ApiModelProperty(value = "ID", hidden = true)
private String id;
@OneToOne
@JoinColumn(name = "device_info_id")
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "device_info_id",referencedColumnName = "id")
@ApiModelProperty(value = "设备信息")
private DeviceInfo deviceInfo;
@Column(name = "tid")
@ApiModelProperty(value = "设备标签")
private String tid;
@Column(name = "storeroom_code")
@ApiModelProperty(value = "库房代码")
@ -82,11 +79,11 @@ public class DeseCabinet extends BaseEntity implements Serializable {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeseCabinet that = (DeseCabinet) o;
return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(tid, that.tid) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(deviceId, that.deviceId) && 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(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback) && Objects.equals(isNotice, that.isNotice);
return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(deviceId, that.deviceId) && 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(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback) && Objects.equals(isNotice, that.isNotice);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceInfo, tid, storeroomCode, deviceId, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isLinkage, isCallback, isNotice);
return Objects.hash(id, deviceInfo, storeroomCode, deviceId, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isLinkage, isCallback, isNotice);
}
}

10
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceArchivesTag.java

@ -4,6 +4,8 @@ import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@ -25,10 +27,10 @@ public class DeviceArchivesTag extends BaseEntity implements Serializable {
@ApiModelProperty(value = "标签id")
private String tid;
@ManyToOne
@JoinColumn(name = "deviceinfo_id")
@ApiModelProperty(value = "设备id")
private DeviceInfo deviceInfoId;
@Column(name = "device_info_id")
@ApiModelProperty(value = "设备信息id")
private String deviceInfoId;
@Column(name = "position")
@ApiModelProperty(name = "层架位和柜架位")

26
storeroom/src/main/java/com/storeroom/modules/device/service/DeseCabinetService.java

@ -0,0 +1,26 @@
package com.storeroom.modules.device.service;
import com.storeroom.modules.device.service.dto.DeseCabinetDto;
public interface DeseCabinetService {
/**
* 设备新增
*/
void create(DeseCabinetDto deseCabinetDto);
/**
* 设备修改
*/
void update(DeseCabinetDto deseCabinetDto);
/**
* 删除
*/
void delete(String id);
/**
* 获取状态
* @return /
*/
Boolean getState();
}

6
storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeseCabinetDto.java

@ -19,8 +19,6 @@ public class DeseCabinetDto extends BaseDTO implements Serializable {
private DeviceInfoDto deviceInfo;
private String tid;
private String storeroomCode;
private String deviceId;
@ -46,11 +44,11 @@ public class DeseCabinetDto extends BaseDTO implements Serializable {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeseCabinetDto that = (DeseCabinetDto) o;
return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(tid, that.tid) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(deviceId, that.deviceId) && 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(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback) && Objects.equals(isNotice, that.isNotice);
return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(storeroomCode, that.storeroomCode) && Objects.equals(deviceId, that.deviceId) && 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(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback) && Objects.equals(isNotice, that.isNotice);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceInfo, tid, storeroomCode, deviceId, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isLinkage, isCallback, isNotice);
return Objects.hash(id, deviceInfo, storeroomCode, deviceId, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isLinkage, isCallback, isNotice);
}
}

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

@ -1,7 +1,7 @@
package com.storeroom.modules.device.service.dto;
import com.storeroom.base.BaseDTO;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.Storeroom;
import com.storeroom.modules.device.domain.Supplier;
import lombok.Getter;

50
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DenseCabinetImpl.java

@ -2,40 +2,86 @@ package com.storeroom.modules.device.service.impl;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.device.domain.DeseCabinet;
import com.storeroom.modules.device.domain.DeviceArchivesTag;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.repository.DeseCabinetRepository;
import com.storeroom.modules.device.repository.DeviceArchivesTagRepository;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.service.DeviceService;
import com.storeroom.modules.device.service.DeseCabinetService;
import com.storeroom.modules.device.service.dto.DeseCabinetDto;
import com.storeroom.modules.device.service.mapstruct.DeseCabinetMapper;
import com.storeroom.utils.NanoIdUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.concurrent.ThreadLocalRandom;
@Service
@RequiredArgsConstructor
public class DenseCabinetImpl implements DeviceService {
public class DenseCabinetImpl implements DeseCabinetService {
private final DeseCabinetRepository deseCabinetRepository;
private final DeviceInfoRepository deviceInfoRepository;
private final DeviceArchivesTagRepository deviceArchivesTagRepository;
private final DeseCabinetMapper deseCabinetMapper;
@Override
@Transactional
public void create(DeseCabinetDto deseCabinetDto) {
//转换密集架实体
DeseCabinet deseCabinet = deseCabinetMapper.toEntity(deseCabinetDto);
//根据IP和端口号查询设备
DeviceInfo deviceInfo = deviceInfoRepository.findByDeviceIpAndDevicePort(deseCabinetDto.getDeviceInfo().getDeviceIp(), deseCabinetDto.getDeviceInfo().getDevicePort());
//判断设备同一IP和端口下是否重复
if (!ObjectUtils.isEmpty(deviceInfo)) {
throw new BaseException("同一IP和端口号下不能重复添加设备");
}
//创建设备信息id
deseCabinet.getDeviceInfo().setId(NanoIdUtils.randomNanoId());
//创建密集架id
deseCabinet.setId(NanoIdUtils.randomNanoId());
//生成架位
String position = new StringBuilder()
.append(deseCabinet.getAreaNo())
.append("-")
.append(deseCabinet.getFirstColumnNo())
.append("-")
.append(deseCabinet.getPartNo())
.append("-")
.append(deseCabinet.getRowNo())
.append("-")
.append(GenerateNum())
.toString();
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
//生成架位标签表id
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setDeviceInfoId(deseCabinet.getDeviceInfo().getId());
//保存架位标签
deviceArchivesTagRepository.save(deviceArchivesTag);
//保存密集架
deseCabinetRepository.save(deseCabinet);
}
/**
* 生成架位左右位置
*
* @return
*/
private String GenerateNum() {
ThreadLocalRandom tlr = ThreadLocalRandom.current();
return String.valueOf(tlr.nextInt(1, 2));
}
@Override
public void update(DeseCabinetDto deseCabinetDto) {

Loading…
Cancel
Save