Browse Source

批量生成架位

master
刘力 3 years ago
parent
commit
39a5e785b4
  1. 6
      APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java
  2. 2
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeseCabinetController.java
  3. 35
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceArchivesTagController.java
  4. 1
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java
  5. 33
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceArchivesTag.java
  6. 35
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceInfo.java
  7. 16
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java
  8. 15
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceInfoRepository.java
  9. 11
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceArchivesTagService.java
  10. 2
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java
  11. 6
      storeroom/src/main/java/com/storeroom/modules/device/service/StoreroomService.java
  12. 13
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java
  13. 237
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java
  14. 7
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java
  15. 2
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/OperatingStateImpl.java
  16. 9
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/StoreroomImpl.java
  17. 25
      storeroom/src/test/java/test.java

6
APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java

@ -41,7 +41,8 @@ public class ApiServiceImpl implements ApiService {
});
return access_token;
} else {
throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + "");
//throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + "");
return null;
}
}
@ -81,7 +82,8 @@ public class ApiServiceImpl implements ApiService {
});
return deviceAllDtoList;
} else {
throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + "");
//throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + "");
return null;
}
}
}

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

@ -1,7 +1,6 @@
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;
@ -16,7 +15,6 @@ 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

35
storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceArchivesTagController.java

@ -0,0 +1,35 @@
package com.storeroom.modules.device.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.device.service.DeviceArchivesTagService;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "层架位标签管理")
@RequestMapping("/api/tag/")
public class DeviceArchivesTagController {
private final DeviceArchivesTagService deviceArchivesTagService;
@ApiOperation("层架位标签列表")
@AnonymousGetMapping("list")
public ApiResponse<Object> list(@RequestParam String deviceInfoId, Pageable pageable) {
if (StringUtils.isEmpty(deviceInfoId)) {
throw new BaseException("id不能为空");
}
return ApiResponse.success(deviceArchivesTagService.queryTagList(deviceInfoId, pageable));
}
}

1
storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java

@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set;
@RestController

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

@ -39,6 +39,39 @@ public class DeviceArchivesTag extends BaseEntity implements Serializable {
private String position_name;
@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 = "cupboard_No")
@ApiModelProperty(value = "柜号")
private Integer cupboardNo;
@Override
public boolean equals(Object o) {
if (this == o) return true;

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

@ -70,33 +70,6 @@ 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 = "设备账号")
@ -106,10 +79,6 @@ public class DeviceInfo extends BaseEntity implements Serializable {
@ApiModelProperty(value = "设备密码")
private String devicePassword;
@Column(name = "cupboard_No")
@ApiModelProperty(value = "柜号")
private Integer cupboardNo;
@Column(name = "video_route")
@ApiModelProperty("视频频道")
@ -136,11 +105,11 @@ public class DeviceInfo extends BaseEntity implements Serializable {
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(deviceTypeId, that.deviceTypeId) && Objects.equals(deviceSpecParamId, that.deviceSpecParamId) && Objects.equals(deviceId, that.deviceId) && 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(videoRoute, that.videoRoute) && Objects.equals(isNotice, that.isNotice) && Objects.equals(sequence, that.sequence) && Objects.equals(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback);
return Objects.equals(id, that.id) && Objects.equals(supplierId, that.supplierId) && Objects.equals(storeroomId, that.storeroomId) && Objects.equals(deviceTypeId, that.deviceTypeId) && Objects.equals(deviceSpecParamId, that.deviceSpecParamId) && Objects.equals(deviceId, that.deviceId) && Objects.equals(deviceName, that.deviceName) && Objects.equals(deviceIp, that.deviceIp) && Objects.equals(devicePort, that.devicePort) && Objects.equals(deviceState, that.deviceState) && Objects.equals(deviceAccount, that.deviceAccount) && Objects.equals(devicePassword, that.devicePassword) && Objects.equals(videoRoute, that.videoRoute) && 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, deviceTypeId, deviceSpecParamId, deviceId, deviceName, deviceIp, devicePort, deviceState, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, storeroomCode, columnRowNo, deviceAccount, devicePassword, cupboardNo, videoRoute, isNotice, sequence, isLinkage, isCallback);
return Objects.hash(id, supplierId, storeroomId, deviceTypeId, deviceSpecParamId, deviceId, deviceName, deviceIp, devicePort, deviceState, deviceAccount, devicePassword, videoRoute, isNotice, sequence, isLinkage, isCallback);
}
}

16
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java

@ -36,4 +36,20 @@ public interface DeviceArchivesTagRepository extends JpaRepository<DeviceArchive
value = "select * from device_archives_tag order by device_info_id asc,position asc")
Page<DeviceArchivesTag> findAllByPage(Pageable page);
/**
* 通过设备类型查询标签
* @param deviceInfoId /
* @return /
*/
List<DeviceArchivesTag> findByDeviceInfoId(String deviceInfoId,Pageable pageable);
/**
* 根据区号查询
* @param areaNo
* @return
*/
List<DeviceArchivesTag> findByAreaNo(Integer areaNo);
}

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

@ -3,7 +3,6 @@ package com.storeroom.modules.device.repository;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.DeviceType;
import com.storeroom.modules.device.domain.Storeroom;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
@ -15,8 +14,14 @@ import java.util.List;
public interface DeviceInfoRepository extends JpaRepository<DeviceInfo, String>, JpaSpecificationExecutor<DeviceInfo> {
/**
* 根据库房查询
* @param storeroomId /
* @return
*/
List<DeviceInfo> findByStoreroomId(Storeroom storeroomId);
/**
* 根据ip 端口号 查询
*
@ -35,15 +40,14 @@ public interface DeviceInfoRepository extends JpaRepository<DeviceInfo, String>,
/**
* 查询区号 ip 端口号
* 查询 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);
@Query(value = "SELECT * FROM device_info WHERE device_ip=?1 AND device_port=?2", nativeQuery = true)
List<DeviceInfo> findByDeviceIpAndAndDevicePort(String ip, Integer port);
/**
@ -66,6 +70,7 @@ public interface DeviceInfoRepository extends JpaRepository<DeviceInfo, String>,
*/
List<DeviceInfo> findByDeviceIdAndDeviceTypeId(String deviceId, DeviceType deviceTypeId);
/**
* 查询排序最大值
*

11
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceArchivesTagService.java

@ -3,10 +3,21 @@ package com.storeroom.modules.device.service;
import com.storeroom.modules.device.domain.DeviceArchivesTag;
import org.springframework.data.domain.Pageable;
import java.util.List;
public interface DeviceArchivesTagService {
//根据层架位id获取设备id
String findDeviceIdByShelfId(String shelfId);
DeviceArchivesTag findByDeviceInfoIdAndPosition(String deviceInfoId, String position);
//根据分页获取全部层架位信息
Object findAll(Pageable page);
/**
* 根据设备类型查询列表
* @param deviceInfoId 设备类型
* @return /
*/
List<Object> queryTagList(String deviceInfoId,Pageable pageable);
}

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

@ -143,4 +143,6 @@ public interface DeviceService {
*/
void Delete(Set<String> deviceInfoId);
}

6
storeroom/src/main/java/com/storeroom/modules/device/service/StoreroomService.java

@ -29,4 +29,10 @@ public interface StoreroomService {
void update(StoreroomDto storeroomDto);
List<Storeroom> buildTree();
/**
*
* @return /
*/
List<Storeroom> tagMenuTree();
}

13
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java

@ -3,6 +3,7 @@ package com.storeroom.modules.device.service.impl;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.device.domain.DeviceArchivesTag;
import com.storeroom.modules.device.repository.DeviceArchivesTagRepository;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.service.DeviceArchivesTagService;
import com.storeroom.utils.PageUtil;
import com.storeroom.utils.StringUtils;
@ -10,6 +11,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@ -19,6 +21,7 @@ public class DeviceArchivesTagImpl implements DeviceArchivesTagService {
private final DeviceArchivesTagRepository deviceArchivesTagRepository;
private final DeviceInfoRepository deviceInfoRepository;
@Override
public String findDeviceIdByShelfId(String shelfId) {
@ -32,11 +35,19 @@ public class DeviceArchivesTagImpl implements DeviceArchivesTagService {
throw new BaseException("查询数据异常");
}
List<DeviceArchivesTag> deviceArchivesTags = deviceArchivesTagRepository.findByDeviceInfoIdAndAndPosition(deviceInfoId, position);
return deviceArchivesTags.size() == 0 ? null:deviceArchivesTags.get(0);
return deviceArchivesTags.size() == 0 ? null : deviceArchivesTags.get(0);
}
@Override
public Object findAll(Pageable page) {
return PageUtil.toPage(deviceArchivesTagRepository.findAllByPage(page));
}
@Override
public List<Object> queryTagList(String deviceInfoId, Pageable pageable) {
List<DeviceArchivesTag> deviceArchivesTagList = deviceArchivesTagRepository.findByDeviceInfoId(deviceInfoId, pageable);
List<Object> list = new ArrayList<>(deviceArchivesTagList);
list.add(deviceInfoRepository.findById(deviceInfoId));
return list;
}
}

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

@ -11,19 +11,17 @@ import com.storeroom.modules.device.service.mapstruct.DeviceTypeMapper;
import com.storeroom.service.ApiService;
import com.storeroom.utils.*;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.http.HttpResponse;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.ThreadLocalRandom;
@Service
@ -92,7 +90,6 @@ public class DeviceImpl implements DeviceService {
@Override
public Object queryAll(Pageable pageable) {
// PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC);
Page<DeviceInfo> page = deviceInfoRepository.findAllList(pageable);
if (getState()) {
@ -111,53 +108,62 @@ public class DeviceImpl implements DeviceService {
@Override
@Transactional(rollbackFor = Exception.class)
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) {
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndAndDevicePort(deviceInfoDto.getDeviceIp(), deviceInfoDto.getDevicePort());
List<DeviceArchivesTag> deviceArchivesTagList = deviceArchivesTagRepository.findByAreaNo(deviceInfoDto.getAreaNo());
if (ObjectUtils.isEmpty(deviceInfoList.size()) && ObjectUtils.isEmpty(deviceArchivesTagList.size())) {
throw new BaseException("区号IP端口不能重复添加设备");
}
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
//创建密集架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 = "右";
deviceInfoDto.setId(NanoIdUtils.randomNanoId());
for (int i = deviceInfoDto.getFirstColumnNo(); i <= deviceInfoDto.getSumColumnNo() + deviceInfoDto.getFirstColumnNo(); i++) {
for (int k = 1; k <= deviceInfoDto.getPartNo(); k++) {
for (int n = 1; n <= deviceInfoDto.getRowNo(); n++) {
Boolean boolLeftOrRight = GenerateNum();
String leftOrRight;
Integer numLeftOrRight;
if (boolLeftOrRight) {
leftOrRight = "左";
numLeftOrRight = 1;
} else {
leftOrRight = "右";
numLeftOrRight = 2;
}
//架位
String position = deviceInfoDto.getAreaNo() + "-" +
i + "-" + k + "-" + n + "-" + numLeftOrRight;
String positionName = deviceInfoDto.getAreaNo() + "区" +
i + "列" + k + "节" + n + "层" + leftOrRight;
//生成架位标签表id
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setDeviceInfoId(deviceInfoDto.getId());
deviceArchivesTag.setPosition_name(positionName);
deviceArchivesTag.setAreaNo(deviceInfoDto.getAreaNo());
deviceArchivesTag.setFirstColumnNo(deviceInfoDto.getFirstColumnNo());
deviceArchivesTag.setColumnRowNo(i);
deviceArchivesTag.setPartNo(k);
deviceArchivesTag.setRowNo(n);
deviceArchivesTag.setSumColumnNo(deviceInfoDto.getSumColumnNo());
deviceArchivesTag.setStoreroomCode(deviceInfoDto.getStoreroomCode());
deviceArchivesTagRepository.save(deviceArchivesTag);
}
}
}
String positionName = deviceInfo.getAreaNo() +
"区" +
deviceInfo.getFirstColumnNo() +
"列" +
deviceInfo.getPartNo() +
"节" +
deviceInfo.getRowNo() +
"层" +
leftOrRight;
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
Integer num = deviceInfoRepository.findByMax();
if (num == 0) {
deviceInfo.setSequence(1);
deviceInfoDto.setSequence(1);
}
deviceInfo.setSequence(num + 1);
//生成架位标签表id
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setDeviceInfoId(deviceInfo.getId());
deviceArchivesTag.setPosition_name(positionName);
deviceInfoDto.setSequence(num + 1);
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
//创建联动操作状态对象
IsLinkageState(deviceInfo);
IsCallbackState(deviceInfo);
deviceArchivesTagRepository.save(deviceArchivesTag);
IsLinkageState(deviceInfoDto);
IsCallbackState(deviceInfoDto);
deviceInfoRepository.save(deviceInfo);
}
@ -166,20 +172,19 @@ public class DeviceImpl implements DeviceService {
@Transactional(rollbackFor = Exception.class)
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端口不能重复添加设备");
}
// List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByAreaNoAndAndDeviceIpAndAndDevicePort(deviceInfo.getAreaNo(), deviceInfo.getDeviceIp(), deviceInfo.getDevicePort());
// if (!ObjectUtils.isEmpty(deviceInfoList)) {
// throw new BaseException("区号IP端口不能重复添加设备");
// }
DeviceInfo deviceInfo1 = deviceInfoRepository.findById(deviceInfo.getId()).orElseGet(DeviceInfo::new);
if (ObjectUtils.isEmpty(deviceInfo1)) {
throw new BaseException("数据不存在");
}
deviceInfo1.setDeviceName(deviceInfo.getDeviceName());
deviceInfo1.setDeviceIp(deviceInfo.getDeviceIp());
deviceInfo1.setDevicePort(deviceInfo.getDevicePort());
deviceInfo1.setStoreroomCode(deviceInfo.getStoreroomCode());
IsLinkageState(deviceInfo);
IsCallbackState(deviceInfo);
deviceInfo1.setDeviceName(deviceInfoDto.getDeviceName());
deviceInfo1.setDeviceIp(deviceInfoDto.getDeviceIp());
deviceInfo1.setDevicePort(deviceInfoDto.getDevicePort());
IsLinkageState(deviceInfoDto);
IsCallbackState(deviceInfoDto);
deviceInfoRepository.save(deviceInfo1);
}
@ -191,59 +196,62 @@ public class DeviceImpl implements DeviceService {
if (!ObjectUtils.isEmpty(rotaryCabinetList)) {
throw new BaseException("同一IP和端口号下不能重复添加设备");
}
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
deviceInfo.setId(NanoIdUtils.randomNanoId());
String position = deviceInfo.getCupboardNo() +
"-" +
deviceInfoDto.getRowNo() +
"-" +
deviceInfoDto.getRowNo() +
"-" +
deviceInfoDto.getColumnRowNo();
String positionName = deviceInfo.getCupboardNo() +
"柜" +
deviceInfoDto.getRowNo() +
"层" +
deviceInfoDto.getColumnRowNo() +
"列";
deviceInfoDto.setId(NanoIdUtils.randomNanoId());
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
for (int i = 1; i < deviceInfoDto.getCupboardNo(); i++) {
for (int k = 1; k < deviceInfoDto.getRowNo(); k++) {
for (int n = 1; n < deviceInfoDto.getColumnRowNo(); n++) {
String position = i + "-" + k + "-" + n;
String positionName = i + "柜" + k + "层" + n + "列";
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setPosition_name(positionName);
deviceArchivesTag.setDeviceInfoId(deviceInfoDto.getId());
deviceArchivesTag.setCupboardNo(i);
deviceArchivesTag.setRowNo(k);
deviceArchivesTag.setColumnRowNo(n);
deviceArchivesTag.setStoreroomCode(deviceInfoDto.getStoreroomCode());
deviceArchivesTagRepository.save(deviceArchivesTag);
}
}
}
deviceArchivesTag.setId(NanoIdUtils.randomNanoId());
deviceArchivesTag.setPosition(position);
deviceArchivesTag.setPosition_name(positionName);
deviceArchivesTag.setDeviceInfoId(deviceInfoDto.getId());
Integer num = deviceInfoRepository.findByMax();
if (num == 0) {
deviceInfo.setSequence(1);
deviceInfoDto.setSequence(1);
}
deviceInfo.setSequence(num + 1);
IsLinkageState(deviceInfo);
IsCallbackState(deviceInfo);
deviceInfoDto.setSequence(num + 1);
IsLinkageState(deviceInfoDto);
IsCallbackState(deviceInfoDto);
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
deviceInfoRepository.save(deviceInfo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateRotaryCabinet(DeviceInfoDto deviceInfoDto) {
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePort(deviceInfoDto.getDeviceIp(), deviceInfoDto.getDevicePort());
if (!ObjectUtils.isEmpty(deviceInfoList)) {
throw new BaseException("同一IP和端口号下不能重复添加设备");
}
// List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePort(deviceInfoDto.getDeviceIp(), deviceInfoDto.getDevicePort());
// if (!ObjectUtils.isEmpty(deviceInfoList)) {
// throw new BaseException("同一IP和端口号下不能重复添加设备");
// }
DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceInfoDto.getId()).orElseGet(DeviceInfo::new);
if (ObjectUtils.isEmpty(deviceInfo)) {
throw new BaseException("数据不存在");
}
DeviceInfo deviceInfo1 = deviceInfoMapper.toEntity(deviceInfoDto);
deviceInfo.setDeviceAccount(deviceInfo1.getDeviceAccount());
deviceInfo.setDevicePassword(deviceInfo1.getDevicePassword());
deviceInfo.setDeviceName(deviceInfo1.getDeviceName());
deviceInfo.setDeviceIp(deviceInfo1.getDeviceIp());
deviceInfo.setDevicePort(deviceInfo1.getDevicePort());
deviceInfo.setStoreroomCode(deviceInfo1.getStoreroomCode());
IsLinkageState(deviceInfo1);
IsCallbackState(deviceInfo1);
DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag();
deviceInfo.setDeviceAccount(deviceInfoDto.getDeviceAccount());
deviceInfo.setDevicePassword(deviceInfoDto.getDevicePassword());
deviceInfo.setDeviceName(deviceInfoDto.getDeviceName());
deviceInfo.setDeviceIp(deviceInfoDto.getDeviceIp());
deviceInfo.setDevicePort(deviceInfoDto.getDevicePort());
deviceArchivesTag.setStoreroomCode(deviceInfoDto.getStoreroomCode());
IsLinkageState(deviceInfoDto);
IsCallbackState(deviceInfoDto);
deviceInfoRepository.save(deviceInfo);
}
@ -270,14 +278,14 @@ public class DeviceImpl implements DeviceService {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateCamera(DeviceInfoDto deviceInfoDto) {
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePortAndVideoRouteAndDeviceTypeId(deviceInfoDto.getDeviceIp(),
deviceInfoDto.getDevicePort(),
deviceInfoDto.getVideoRoute(),
deviceInfoDto.getDeviceTypeId());
if (!ObjectUtils.isEmpty(deviceInfoList)) {
throw new BaseException("同一IP和端口号下不能重复添加设备");
}
// List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePortAndVideoRouteAndDeviceTypeId(deviceInfoDto.getDeviceIp(),
// deviceInfoDto.getDevicePort(),
// deviceInfoDto.getVideoRoute(),
// deviceInfoDto.getDeviceTypeId());
//
// if (!ObjectUtils.isEmpty(deviceInfoList)) {
// throw new BaseException("同一IP和端口号下不能重复添加设备");
// }
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
DeviceInfo deviceInfo1 = deviceInfoRepository.findById(deviceInfo.getId()).orElseGet(DeviceInfo::new);
deviceInfo1.setDeviceName(deviceInfo.getDeviceName());
@ -311,10 +319,10 @@ public class DeviceImpl implements DeviceService {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateInsideDevices(DeviceInfoDto deviceInfoDto) {
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePortAndDeviceId(deviceInfoDto.getDeviceIp(), deviceInfoDto.getDevicePort(), deviceInfoDto.getDeviceId());
if (!ObjectUtils.isEmpty(deviceInfoList)) {
throw new BaseException("同一IP和端口号下不能重复添加设备");
}
// List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIpAndDevicePortAndDeviceId(deviceInfoDto.getDeviceIp(), deviceInfoDto.getDevicePort(), deviceInfoDto.getDeviceId());
// if (!ObjectUtils.isEmpty(deviceInfoList)) {
// throw new BaseException("同一IP和端口号下不能重复添加设备");
// }
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
DeviceInfo deviceInfo1 = deviceInfoRepository.findById(deviceInfo.getId()).orElseGet(DeviceInfo::new);
deviceInfo1.setDeviceName(deviceInfo.getDeviceName());
@ -327,10 +335,10 @@ public class DeviceImpl implements DeviceService {
@Override
@Transactional(rollbackFor = Exception.class)
public void createOutsideDevices(DeviceInfoDto deviceInfoDto) {
List<DeviceInfo> deviceInfoList = deviceInfoRepository.findByDeviceIdAndDeviceTypeId(deviceInfoDto.getDeviceId(), deviceInfoDto.getDeviceTypeId());
if (deviceInfoList.size() != 0) {
throw new BaseException("同一类型和同一设备id不能重复添加");
}
// List<DeviceInfo> 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();
@ -348,6 +356,7 @@ public class DeviceImpl implements DeviceService {
DeviceInfo deviceInfo = deviceInfoMapper.toEntity(deviceInfoDto);
DeviceInfo deviceInfo1 = deviceInfoRepository.findById(deviceInfo.getId()).orElseGet(DeviceInfo::new);
deviceInfo1.setDeviceName(deviceInfo.getDeviceName());
deviceInfo1.setDeviceId(deviceInfo.getDeviceId());
deviceInfoRepository.save(deviceInfo1);
}
@ -385,9 +394,9 @@ public class DeviceImpl implements DeviceService {
*
* @return
*/
private String GenerateNum() {
ThreadLocalRandom tlr = ThreadLocalRandom.current();
return String.valueOf(tlr.nextInt(1, 2));
private Boolean GenerateNum() {
Random random = new Random();
return random.nextBoolean();
}
/**
@ -405,7 +414,7 @@ public class DeviceImpl implements DeviceService {
*
* @param deviceInfo /
*/
private void IsLinkageState(DeviceInfo deviceInfo) {
private void IsLinkageState(DeviceInfoDto deviceInfo) {
if (StringUtils.isEmpty(deviceInfo.getIsLinkage().getId())) {
OperatingState isLinkageState = new OperatingState();
@ -436,7 +445,7 @@ public class DeviceImpl implements DeviceService {
*
* @param deviceInfo /
*/
private void IsCallbackState(DeviceInfo deviceInfo) {
private void IsCallbackState(DeviceInfoDto deviceInfo) {
if (StringUtils.isEmpty(deviceInfo.getIsCallback().getId())) {
OperatingState isCallbackState = new OperatingState();
@ -460,4 +469,6 @@ public class DeviceImpl implements DeviceService {
operatingStateRepository.save(isCallbackState1);
}
}
}

7
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java

@ -12,6 +12,7 @@ import com.storeroom.utils.MacUtil;
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.List;
@ -28,6 +29,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService {
@Override
@Transactional(rollbackFor = Exception.class)
public void bind(DeviceSpecParamDto deviceSpecParamDto) {
DeviceSpecParam deviceSpecParam = deviceSpecParamMapper.toEntity(deviceSpecParamDto);
@ -38,10 +40,14 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService {
deviceSpecParam.setSequence(num + 1);
}
deviceSpecParam.setId(NanoIdUtils.randomNanoId());
DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceSpecParamDto.getDeviceInfoId()).orElseGet(DeviceInfo::new);
deviceInfo.setDeviceSpecParamId(deviceSpecParam);
deviceInfoRepository.save(deviceInfo);
deviceSpecParamRepository.save(deviceSpecParam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
deviceSpecParamRepository.deleteById(id);
@ -54,6 +60,7 @@ public class DeviceSpecParamImpl implements DeviceSpecParamService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void bindMac(DeviceMacDto deviceMacDto) {
DeviceInfo deviceInfo = deviceInfoRepository.findById(deviceMacDto.getDeviceId()).orElseGet(DeviceInfo::new);
DeviceSpecParam deviceSpecParam = new DeviceSpecParam();

2
storeroom/src/main/java/com/storeroom/modules/device/service/impl/OperatingStateImpl.java

@ -3,11 +3,9 @@ package com.storeroom.modules.device.service.impl;
import com.storeroom.modules.device.domain.OperatingState;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.device.repository.DeviceTypeReposityory;
import com.storeroom.modules.device.repository.OperatingStateRepository;
import com.storeroom.modules.device.service.OperatingStateService;
import com.storeroom.modules.device.service.mapstruct.OperatingStateMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

9
storeroom/src/main/java/com/storeroom/modules/device/service/impl/StoreroomImpl.java

@ -29,6 +29,7 @@ public class StoreroomImpl implements StoreroomService {
private final DeviceInfoRepository deviceInfoRepository;
@Override
@Transactional(rollbackFor = Exception.class)
public void create(StoreroomDto storeroomDto) {
Storeroom storeroom = storeroomMapper.toEntity(storeroomDto);
List<Storeroom> storeroom1 = storeroomRepository.findByName(storeroom.getName());
@ -40,6 +41,7 @@ public class StoreroomImpl implements StoreroomService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String id) {
Storeroom storeroom = storeroomRepository.findById(id).orElseGet(Storeroom::new);
Object obj = deviceInfoRepository.findByStoreroomId(storeroom);
@ -76,10 +78,17 @@ public class StoreroomImpl implements StoreroomService {
.collect(Collectors.toList());
}
private List<Storeroom> getChildren(String id, List<Storeroom> list) {
return list.stream().filter(item -> item.getPid().equals(id))
.map(item -> item.setChildren(getChildren(item.getId(), list)))
.collect(Collectors.toList());
}
@Override
public List<Storeroom> tagMenuTree() {
return null;
}
}

25
storeroom/src/test/java/test.java

@ -0,0 +1,25 @@
import org.junit.jupiter.api.Test;
public class test {
@Test
public void sum() {
int a = 50;
int b = 22;
int c = 4;
int d = 5;
int f = 59;
for (int i = a; i <= b + a; i++) {
for (int k = 1; k <= c; k++) {
for (int s = 1; s <= d; s++) {
String name = f + "区号" + ":" + i + "列" + k + "节" + s + "层";
System.out.println(name);
}
}
}
}
}
Loading…
Cancel
Save