From 11bf4ae1e5f53116679ff61d47560c8e89558e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Tue, 12 Jul 2022 18:54:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=9E=E8=BD=AC=E6=9F=9C?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=9B=9E=E8=BD=AC=E6=9F=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeseCabinetController.java | 2 +- .../controller/RotaryCabinetController.java | 73 ++++++++ .../modules/device/domain/DeseCabinet.java | 13 +- .../modules/device/domain/OperatingState.java | 6 +- .../modules/device/domain/RotaryCabinet.java | 79 +++++++++ .../modules/device/domain/Supplier.java | 4 + .../repository/RotaryCabinetRepository.java | 17 ++ .../device/service/RotaryCabinetService.java | 23 +++ .../device/service/dto/DeviceInfoDto.java | 2 + .../device/service/dto/SupplierDto.java | 2 + .../device/service/impl/DenseCabinetImpl.java | 26 ++- .../service/impl/RotaryCabinetImpl.java | 156 ++++++++++++++++++ .../device/service/impl/SupplierImpl.java | 4 +- .../service/mapstruct/DeseCabinetMapper.java | 6 +- 14 files changed, 382 insertions(+), 31 deletions(-) create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/controller/RotaryCabinetController.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/repository/RotaryCabinetRepository.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/RotaryCabinetService.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/device/service/impl/RotaryCabinetImpl.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 1206542..dd1e7c8 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 @@ -55,7 +55,7 @@ public class DeseCabinetController { /** * 必填字段验证 * - * @param deseCabinetDto / + * @param deseCabinet / */ private void verifyValues(@RequestBody DeseCabinet deseCabinet) { if (deseCabinet.getAreaNo() != null diff --git a/storeroom/src/main/java/com/storeroom/modules/device/controller/RotaryCabinetController.java b/storeroom/src/main/java/com/storeroom/modules/device/controller/RotaryCabinetController.java new file mode 100644 index 0000000..124af75 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/controller/RotaryCabinetController.java @@ -0,0 +1,73 @@ +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.domain.DeseCabinet; +import com.storeroom.modules.device.domain.RotaryCabinet; +import com.storeroom.modules.device.service.RotaryCabinetService; +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 +@Api(tags = "回转柜管理") +@RequiredArgsConstructor +@RequestMapping("/api/rotarycabinet/") +public class RotaryCabinetController { + + private final RotaryCabinetService rotaryCabinetService; + + + @ApiOperation("创建回转柜") + @AnonymousPostMapping("create") + public ApiResponse create(@RequestBody RotaryCabinet rotaryCabinet) { + if (!StringUtils.isEmpty(rotaryCabinet.getId())) { + throw new BaseException("id不为空"); + } + verifyValues(rotaryCabinet); + rotaryCabinetService.create(rotaryCabinet); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + @ApiOperation("修改回转柜") + @AnonymousPutMapping("update") + public ApiResponse update(@RequestBody RotaryCabinet rotaryCabinet) { + if (StringUtils.isEmpty(rotaryCabinet.getId())) { + throw new BaseException("id为空"); + } + verifyValues(rotaryCabinet); + rotaryCabinetService.update(rotaryCabinet); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + + + /** + * 必填字段验证 + * + * @param rotaryCabinet / + */ + private void verifyValues(@RequestBody RotaryCabinet rotaryCabinet) { + if (rotaryCabinet.getCupboardNo() != null + && rotaryCabinet.getRowNo() != null + && rotaryCabinet.getColumnRowNo() != null + && rotaryCabinet.getStoreroomCode() != null + && rotaryCabinet.getDeviceAccount() != null + && rotaryCabinet.getDevicePassword() != null + && StringUtils.isEmpty(rotaryCabinet.getDeviceInfo().getDeviceName()) + && StringUtils.isEmpty(rotaryCabinet.getDeviceInfo().getStoreroomId().getId()) + && StringUtils.isEmpty(rotaryCabinet.getDeviceInfo().getDeviceIp()) + && rotaryCabinet.getDeviceInfo().getDevicePort() != null + ) { + throw new BaseException("必填字段不能为空"); + } + } +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java index 2357e4c..87f3c32 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/DeseCabinet.java @@ -9,7 +9,6 @@ import lombok.Setter; import javax.persistence.*; import javax.validation.constraints.NotNull; import java.io.Serializable; -import java.util.List; import java.util.Objects; /** @@ -38,9 +37,6 @@ public class DeseCabinet extends BaseEntity implements Serializable { @ApiModelProperty(value = "库房代码") private String storeroomCode; - @Column(name = "device_id") - @ApiModelProperty(value = "设备id") - private String deviceId; @Column(name = "row_No") @ApiModelProperty(value = "层数") @@ -65,25 +61,28 @@ public class DeseCabinet extends BaseEntity implements Serializable { @Column(name = "is_notice") @ApiModelProperty(value = "下发通知") - private Integer isNotice; + private Boolean isNotice; @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; DeseCabinet that = (DeseCabinet) o; - 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(isNotice, that.isNotice) && Objects.equals(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback); + return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && Objects.equals(storeroomCode, that.storeroomCode) && 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(isNotice, that.isNotice); } @Override public int hashCode() { - return Objects.hash(id, deviceInfo, storeroomCode, deviceId, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isNotice, isLinkage, isCallback); + return Objects.hash(id, deviceInfo, storeroomCode, rowNo, areaNo, sumColumnNo, firstColumnNo, partNo, isNotice); } } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/OperatingState.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/OperatingState.java index 8b01269..a8cff96 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/domain/OperatingState.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/OperatingState.java @@ -23,10 +23,10 @@ public class OperatingState implements Serializable { @ApiModelProperty(value = "ID", hidden = true) private String id; - @ManyToOne(targetEntity = DeseCabinet.class) - @JoinColumn(name = "device_id",referencedColumnName = "id") + + @Column(name = "device_id") @ApiModelProperty(value = "密集架或回转柜id") - private DeseCabinet deviceId; + private String deviceId; @Column(name = "state_type") @ApiModelProperty(value = "操作状态 1.联动操作 2.回调操作") diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java new file mode 100644 index 0000000..7aa0726 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/RotaryCabinet.java @@ -0,0 +1,79 @@ +package com.storeroom.modules.device.domain; + + +import com.storeroom.base.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Objects; + +@Entity +@Getter +@Setter +@Table(name = "rotary_cabinet") +public class RotaryCabinet extends BaseEntity implements Serializable { + + @Id + @Column(name = "id") + @NotNull(groups = Update.class) + @ApiModelProperty(value = "ID", hidden = true) + private String id; + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "device_info_id", referencedColumnName = "id") + @ApiModelProperty(value = "设备信息") + private DeviceInfo deviceInfo; + + @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 = "row_No") + @ApiModelProperty(value = "层数") + private String rowNo; + + @Column(name = "is_notice") + @ApiModelProperty(value = "下发通知") + private Boolean isNotice; + + @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; + RotaryCabinet that = (RotaryCabinet) o; + return Objects.equals(id, that.id) && Objects.equals(deviceInfo, that.deviceInfo) && 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(rowNo, that.rowNo) && Objects.equals(isNotice, that.isNotice) && Objects.equals(isLinkage, that.isLinkage) && Objects.equals(isCallback, that.isCallback); + } + + @Override + public int hashCode() { + return Objects.hash(id, deviceInfo, storeroomCode, columnRowNo, deviceAccount, devicePassword, cupboardNo, rowNo, isNotice, isLinkage, isCallback); + } +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/domain/Supplier.java b/storeroom/src/main/java/com/storeroom/modules/device/domain/Supplier.java index a6c5222..59ce97e 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/domain/Supplier.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/domain/Supplier.java @@ -43,6 +43,10 @@ public class Supplier extends BaseEntity implements Serializable { @ApiModelProperty(value = "设备型号") private String deviceModel; + @Column(name = "sequence") + @ApiModelProperty(value = "序列排序") + private Integer sequence; + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/RotaryCabinetRepository.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/RotaryCabinetRepository.java new file mode 100644 index 0000000..bb970e3 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/RotaryCabinetRepository.java @@ -0,0 +1,17 @@ +package com.storeroom.modules.device.repository; + +import com.storeroom.modules.device.domain.RotaryCabinet; +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 RotaryCabinetRepository extends JpaRepository, JpaSpecificationExecutor { + + + @Query(value = "SELECT * FROM rotary_cabinet a JOIN device_info b ON a.device_info_id=b.id WHERE a.cupboard_No=?1 AND b.device_ip=?2 AND b.device_port=?3", nativeQuery = true) + List findIpAndPortAndAreaNo(Integer cupBoardNo, String ip, Integer port ); + + +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/RotaryCabinetService.java b/storeroom/src/main/java/com/storeroom/modules/device/service/RotaryCabinetService.java new file mode 100644 index 0000000..89c2672 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/RotaryCabinetService.java @@ -0,0 +1,23 @@ +package com.storeroom.modules.device.service; + +import com.storeroom.modules.device.domain.RotaryCabinet; + +/** + * 回转柜 + */ +public interface RotaryCabinetService { + + + /** + * 创建回转柜 + * @param rotaryCabinet / + */ + void create(RotaryCabinet rotaryCabinet); + + + /** + * 修改回转柜 + * @param rotaryCabinet / + */ + void update(RotaryCabinet rotaryCabinet); +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java index 7c0346f..6752583 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceInfoDto.java @@ -2,6 +2,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.Storeroom; import com.storeroom.modules.device.domain.Supplier; import lombok.Getter; @@ -21,6 +22,7 @@ public class DeviceInfoDto extends BaseDTO implements Serializable { private Storeroom storeroomId; + private DeviceType deviceTypeId; private String deviceName; diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/SupplierDto.java b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/SupplierDto.java index 1676d9d..65badfa 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/dto/SupplierDto.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/dto/SupplierDto.java @@ -22,6 +22,8 @@ public class SupplierDto extends BaseDTO implements Serializable { private String deviceModel; + private Integer sequence; + @Override public boolean equals(Object o) { if (this == o) return true; 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 2c2b637..f1d8e45 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 @@ -9,8 +9,6 @@ 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.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; @@ -26,27 +24,19 @@ import java.util.concurrent.ThreadLocalRandom; public class DenseCabinetImpl implements DeseCabinetService { private final DeseCabinetRepository deseCabinetRepository; - private final DeviceInfoRepository deviceInfoRepository; private final DeviceArchivesTagRepository deviceArchivesTagRepository; - private final DeseCabinetMapper deseCabinetMapper; private final OperatingStateRepository operatingStateRepository; @Override @Transactional(rollbackFor = Exception.class) public void create(DeseCabinet deseCabinet) { - // deseCabinetDto.setId(NanoIdUtils.randomNanoId()); - //转换密集架实体 - // DeseCabinet deseCabinet = deseCabinetMapper.toEntity(deseCabinetDto); -// deseCabinet.setId(deseCabinetDto.getId()); -// deseCabinet.setDeviceInfo(deseCabinetDto.getDeviceInfo()); -// deseCabinet.setStoreroomCode(deseCabinetDto); //根据IP和端口号查询设备 List deseCabinet1 = deseCabinetRepository.findIpAndPortAndAreaNo(deseCabinet.getAreaNo(), deseCabinet.getDeviceInfo().getDeviceIp(), deseCabinet.getDeviceInfo().getDevicePort()); //判断设备同一IP和端口下是否重复 if (!ObjectUtils.isEmpty(deseCabinet1)) { - throw new BaseException("同一IP和端口号下不能重复添加设备"); + throw new BaseException("区号IP端口不能重复添加设备"); } //创建密集架id deseCabinet.setId(NanoIdUtils.randomNanoId()); @@ -102,7 +92,7 @@ public class DenseCabinetImpl implements DeseCabinetService { private void IsLinkageState(DeseCabinet deseCabinet) { OperatingState operatingState = new OperatingState(); operatingState.setId(NanoIdUtils.randomNanoId()); - operatingState.getDeviceId().setId(deseCabinet.getId()); + operatingState.setDeviceId(deseCabinet.getId()); operatingState.setBorrow(deseCabinet.getIsLinkage().getBorrow()); operatingState.setInBound(deseCabinet.getIsLinkage().getInBound()); operatingState.setOutBound(deseCabinet.getIsLinkage().getOutBound()); @@ -118,7 +108,7 @@ public class DenseCabinetImpl implements DeseCabinetService { private void IsCallbackState(DeseCabinet deseCabinet) { OperatingState operatingState = new OperatingState(); operatingState.setId(NanoIdUtils.randomNanoId()); - operatingState.getDeviceId().setId(deseCabinet.getId()); + operatingState.setDeviceId(deseCabinet.getId()); operatingState.setBorrow(deseCabinet.getIsCallback().getBorrow()); operatingState.setInBound(deseCabinet.getIsCallback().getInBound()); operatingState.setOutBound(deseCabinet.getIsCallback().getOutBound()); @@ -145,10 +135,10 @@ public class DenseCabinetImpl implements DeseCabinetService { public void update(DeseCabinet deseCabinet) { List deseCabinet1 = deseCabinetRepository.findIpAndPortAndAreaNo(deseCabinet.getAreaNo(), deseCabinet.getDeviceInfo().getDeviceIp(), deseCabinet.getDeviceInfo().getDevicePort()); - if (!ObjectUtils.isEmpty(deseCabinet)) { - throw new BaseException("同一IP和端口号下不能重复添加设备"); + if (!ObjectUtils.isEmpty(deseCabinet1)) { + throw new BaseException("区号IP端口不能重复添加设备"); } -// DeseCabinet deseCabinet2 = deseCabinetMapper.toEntity(deseCabinetDto); + DeseCabinet deseCabinet2 = deseCabinetRepository.findById(deseCabinet.getId()).orElseGet(DeseCabinet::new); if (ObjectUtils.isEmpty(deseCabinet2)) { throw new BaseException("数据不存在"); @@ -158,6 +148,10 @@ public class DenseCabinetImpl implements DeseCabinetService { deseCabinet2.getDeviceInfo().setDeviceIp(deseCabinet.getDeviceInfo().getDeviceIp()); deseCabinet2.getDeviceInfo().setDevicePort(deseCabinet.getDeviceInfo().getDevicePort()); deseCabinet2.setStoreroomCode(deseCabinet.getStoreroomCode()); + OperatingState operatingState = operatingStateRepository.findById(deseCabinet.getIsLinkage().getId()).orElseGet(OperatingState::new); + OperatingState operatingState1 = operatingStateRepository.findById(deseCabinet.getIsCallback().getId()).orElseGet(OperatingState::new); + operatingStateRepository.save(operatingState); + operatingStateRepository.save(operatingState1); deseCabinetRepository.save(deseCabinet2); } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/RotaryCabinetImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/RotaryCabinetImpl.java new file mode 100644 index 0000000..a69db1b --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/RotaryCabinetImpl.java @@ -0,0 +1,156 @@ +package com.storeroom.modules.device.service.impl; + +import com.storeroom.exception.BaseException; +import com.storeroom.modules.device.domain.DeviceArchivesTag; +import com.storeroom.modules.device.domain.OperatingState; +import com.storeroom.modules.device.domain.RotaryCabinet; +import com.storeroom.modules.device.repository.DeviceArchivesTagRepository; +import com.storeroom.modules.device.repository.OperatingStateRepository; +import com.storeroom.modules.device.repository.RotaryCabinetRepository; +import com.storeroom.modules.device.service.RotaryCabinetService; +import com.storeroom.utils.NanoIdUtils; +import com.storeroom.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + +import java.util.List; + + +@Service +@RequiredArgsConstructor +public class RotaryCabinetImpl implements RotaryCabinetService { + + private final RotaryCabinetRepository rotaryCabinetRepository; + private final OperatingStateRepository operatingStateRepository; + private final DeviceArchivesTagRepository deviceArchivesTagRepository; + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RotaryCabinet rotaryCabinet) { + List rotaryCabinetList = rotaryCabinetRepository.findIpAndPortAndAreaNo(rotaryCabinet.getCupboardNo(), rotaryCabinet.getDeviceInfo().getDeviceIp(), rotaryCabinet.getDeviceInfo().getDevicePort()); + + if (!ObjectUtils.isEmpty(rotaryCabinetList)) { + throw new BaseException("同一IP和端口号下不能重复添加设备"); + } + rotaryCabinet.setId(NanoIdUtils.randomNanoId()); + rotaryCabinet.getDeviceInfo().setId(NanoIdUtils.randomNanoId()); + + String position = rotaryCabinet.getCupboardNo() + + "-" + + rotaryCabinet.getRowNo() + + "-" + + rotaryCabinet.getRowNo() + + "-" + + rotaryCabinet.getColumnRowNo(); + + String positionName = rotaryCabinet.getCupboardNo() + + "柜" + + rotaryCabinet.getRowNo() + + "层" + + rotaryCabinet.getColumnRowNo() + + "列"; + + DeviceArchivesTag deviceArchivesTag = new DeviceArchivesTag(); + + deviceArchivesTag.setId(NanoIdUtils.randomNanoId()); + deviceArchivesTag.setPosition(position); + deviceArchivesTag.setPosition_name(positionName); + deviceArchivesTag.setDeviceInfoId(rotaryCabinet.getDeviceInfo().getId()); + //创建联动操作状态对象 + IsLinkageState(rotaryCabinet); + IsCallbackState(rotaryCabinet); + + deviceArchivesTagRepository.save(deviceArchivesTag); + + rotaryCabinetRepository.save(rotaryCabinet); + + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RotaryCabinet rotaryCabinet) { + List rotaryCabinetList = rotaryCabinetRepository.findIpAndPortAndAreaNo(rotaryCabinet.getCupboardNo(), rotaryCabinet.getDeviceInfo().getDeviceIp(), rotaryCabinet.getDeviceInfo().getDevicePort()); + if (!ObjectUtils.isEmpty(rotaryCabinetList)) { + throw new BaseException("同一IP和端口号下不能重复添加设备"); + } + RotaryCabinet rotaryCabinet1 = rotaryCabinetRepository.findById(rotaryCabinet.getId()).orElseGet(RotaryCabinet::new); + if (ObjectUtils.isEmpty(rotaryCabinet1)) { + throw new BaseException("数据不存在"); + } + + rotaryCabinet1.setDeviceAccount(rotaryCabinet.getDeviceAccount()); + rotaryCabinet1.setDevicePassword(rotaryCabinet.getDevicePassword()); + rotaryCabinet1.getDeviceInfo().setDeviceName(rotaryCabinet.getDeviceInfo().getDeviceName()); + rotaryCabinet1.getDeviceInfo().setDeviceIp(rotaryCabinet.getDeviceInfo().getDeviceIp()); + rotaryCabinet1.getDeviceInfo().setDevicePort(rotaryCabinet.getDeviceInfo().getDevicePort()); + rotaryCabinet1.setStoreroomCode(rotaryCabinet.getStoreroomCode()); + IsLinkageState(rotaryCabinet); + IsCallbackState(rotaryCabinet); + rotaryCabinetRepository.save(rotaryCabinet1); + } + + + /** + * 保存联动操作状态 + * + * @param rotaryCabinet / + */ + private void IsLinkageState(RotaryCabinet rotaryCabinet) { + + if (StringUtils.isEmpty(rotaryCabinet.getIsLinkage().getId())){ + OperatingState operatingState = new OperatingState(); + operatingState.setId(NanoIdUtils.randomNanoId()); + operatingState.setDeviceId(rotaryCabinet.getId()); + operatingState.setBorrow(rotaryCabinet.getIsLinkage().getBorrow()); + operatingState.setInBound(rotaryCabinet.getIsLinkage().getInBound()); + operatingState.setOutBound(rotaryCabinet.getIsLinkage().getOutBound()); + operatingState.setLend(rotaryCabinet.getIsLinkage().getLend()); + operatingState.setStateType(rotaryCabinet.getIsLinkage().getStateType()); + operatingStateRepository.save(operatingState); + }else { + OperatingState operatingState1 = operatingStateRepository.findById(rotaryCabinet.getIsLinkage().getId()).orElseGet(OperatingState::new); + operatingState1.setDeviceId(rotaryCabinet.getId()); + operatingState1.setBorrow(rotaryCabinet.getIsLinkage().getBorrow()); + operatingState1.setInBound(rotaryCabinet.getIsLinkage().getInBound()); + operatingState1.setOutBound(rotaryCabinet.getIsLinkage().getOutBound()); + operatingState1.setLend(rotaryCabinet.getIsLinkage().getLend()); + operatingState1.setStateType(rotaryCabinet.getIsLinkage().getStateType()); + operatingStateRepository.save(operatingState1); + } + + } + + /** + * 保存回调操作状态 + * + * @param rotaryCabinet / + */ + private void IsCallbackState(RotaryCabinet rotaryCabinet) { + + if (StringUtils.isEmpty(rotaryCabinet.getIsCallback().getId())){ + OperatingState operatingState = new OperatingState(); + operatingState.setId(NanoIdUtils.randomNanoId()); + operatingState.setDeviceId(rotaryCabinet.getId()); + operatingState.setBorrow(rotaryCabinet.getIsCallback().getBorrow()); + operatingState.setInBound(rotaryCabinet.getIsCallback().getInBound()); + operatingState.setOutBound(rotaryCabinet.getIsCallback().getOutBound()); + operatingState.setLend(rotaryCabinet.getIsCallback().getLend()); + operatingState.setStateType(rotaryCabinet.getIsCallback().getStateType()); + operatingStateRepository.save(operatingState); + }else { + OperatingState operatingState1 = operatingStateRepository.findById(rotaryCabinet.getIsLinkage().getId()).orElseGet(OperatingState::new); + operatingState1.setDeviceId(rotaryCabinet.getId()); + operatingState1.setBorrow(rotaryCabinet.getIsCallback().getBorrow()); + operatingState1.setInBound(rotaryCabinet.getIsCallback().getInBound()); + operatingState1.setOutBound(rotaryCabinet.getIsCallback().getOutBound()); + operatingState1.setLend(rotaryCabinet.getIsCallback().getLend()); + operatingState1.setStateType(rotaryCabinet.getIsCallback().getStateType()); + operatingStateRepository.save(operatingState1); + } + + + } +} 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 index 0923f72..908b492 100644 --- 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 @@ -6,7 +6,9 @@ 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 io.lettuce.core.GeoArgs; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.util.List; @@ -21,7 +23,7 @@ public class SupplierImpl implements SupplierService { @Override public List getAll() { - List supplierList = supplierRepository.findAll(); + List supplierList = supplierRepository.findAll(Sort.by(Sort.Direction.ASC,"sequence")); List list = supplierMapper.toDto(supplierList); return list; } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeseCabinetMapper.java b/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeseCabinetMapper.java index c7e5a1e..fedce57 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeseCabinetMapper.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeseCabinetMapper.java @@ -6,6 +6,6 @@ import com.storeroom.modules.device.service.dto.DeseCabinetDto; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; -@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface DeseCabinetMapper extends BaseMapper { -} +//@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +//public interface DeseCabinetMapper extends BaseMapper { +//}