diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java index 621ba58..fede80d 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java @@ -2,13 +2,17 @@ package com.storeroom.modules.storeroom3d.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; import com.storeroom.exception.BaseException; +import com.storeroom.modules.storeroom3d.domain.DisplayConfig; import com.storeroom.modules.storeroom3d.service.DisplayConfigService; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -29,4 +33,23 @@ public class DisplayConfigController { } return ApiResponse.success(displayConfigService.queryDevceInfo(storeroomId)); } + + @AnonymousPostMapping("bind") + @ApiOperation("绑定参数") + public ApiResponse bind(@RequestBody DisplayConfig displayConfig) { + if (!StringUtils.isEmpty(displayConfig.getId())) { + throw new BaseException("id不为空"); + } + displayConfigService.bind(displayConfig); + return ApiResponse.success(ResponseStatus.SUCCESS); + } + + @AnonymousGetMapping("list") + @ApiOperation("获取列表") + public ApiResponse queryList(@RequestParam String storeroomId) { + if (StringUtils.isEmpty(storeroomId)) { + throw new BaseException("id不能为空"); + } + return ApiResponse.success(displayConfigService.getList(storeroomId)); + } } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java index 49eb941..958d17f 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayConfig.java @@ -3,6 +3,7 @@ package com.storeroom.modules.storeroom3d.domain; import com.storeroom.base.BaseEntity; import com.storeroom.modules.device.domain.DeviceInfo; +import com.storeroom.modules.device.domain.Storeroom; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -10,6 +11,7 @@ import lombok.Setter; import javax.persistence.*; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; import java.util.Objects; import java.util.Set; @@ -26,11 +28,20 @@ public class DisplayConfig extends BaseEntity implements Serializable { private String id; - @ManyToMany(fetch = FetchType.EAGER) + @ManyToOne(targetEntity = DeviceInfo.class) @ApiModelProperty(value = "设备信息") - @JoinTable(name = "display_device_info", joinColumns = {@JoinColumn(name = "display_config_id",referencedColumnName = "id")}, - inverseJoinColumns = {@JoinColumn(name = "device_info_id",referencedColumnName = "id")}) - private Set deviceInfo; + @JoinColumn(name = "device_info_id") + private DeviceInfo deviceInfo; + + @ManyToOne(targetEntity = Storeroom.class) + @ApiModelProperty(value = "库房id") + @JoinColumn(name = "storeroom_id") + private Storeroom storeroom; + + + @OneToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER) + @JoinColumn(name = "display_config_id") + private List displayParams; @Column(name = "div_position") diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayParam.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayParam.java new file mode 100644 index 0000000..a3b7e3d --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/domain/DisplayParam.java @@ -0,0 +1,39 @@ +package com.storeroom.modules.storeroom3d.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; + +@Getter +@Setter +@Entity +@Table(name = "display_param") +public class DisplayParam extends BaseEntity implements Serializable { + + @Id + @Column(name = "id") + @NotNull(groups = BaseEntity.Update.class) + @ApiModelProperty(value = "id", hidden = true) + private String id; + + @Column(name = "display_config_id") + @ApiModelProperty(value = "配置id", hidden = true) + private String displayConfigId; + + + @Column(name = "param_name") + @ApiModelProperty(value = "参数名称", hidden = true) + private String paramName; + + @Column(name = "param_value") + @ApiModelProperty(value = "参数值", hidden = true) + private String paramValue; + + +} diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayConfigRepository.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayConfigRepository.java new file mode 100644 index 0000000..9b3b48e --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayConfigRepository.java @@ -0,0 +1,13 @@ +package com.storeroom.modules.storeroom3d.repository; + +import com.storeroom.modules.storeroom3d.domain.DisplayConfig; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +import java.util.List; + + +public interface DisplayConfigRepository extends JpaRepository, JpaSpecificationExecutor { + + List findByStoreroomId(String deviceInfoid); +} diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayParamsRepository.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayParamsRepository.java new file mode 100644 index 0000000..bc0ce8d --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/repository/DisplayParamsRepository.java @@ -0,0 +1,8 @@ +package com.storeroom.modules.storeroom3d.repository; + +import com.storeroom.modules.storeroom3d.domain.DisplayParam; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +public interface DisplayParamsRepository extends JpaRepository, JpaSpecificationExecutor { +} diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java index b8f61c1..68d5906 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/DisplayConfigService.java @@ -14,7 +14,7 @@ public interface DisplayConfigService { * * @return */ - DisplayConfig bind(DisplayConfig displayConfig); + void bind(DisplayConfig displayConfig); /** @@ -24,4 +24,12 @@ public interface DisplayConfigService { * @return */ List queryDevceInfo(String storeroomId); + + + /** + * 通过库房查询绑定配置 + * @param storeroomId + * @return + */ + List getList(String storeroomId); } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java index d33a887..bfe321d 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java @@ -4,11 +4,13 @@ import com.storeroom.modules.device.domain.DeviceInfo; import com.storeroom.modules.device.domain.Storeroom; import com.storeroom.modules.device.repository.DeviceInfoRepository; import com.storeroom.modules.device.repository.StoreroomRepository; -import com.storeroom.modules.device.service.dto.DeviceInfoDto; import com.storeroom.modules.storeroom3d.domain.DisplayConfig; +import com.storeroom.modules.storeroom3d.repository.DisplayConfigRepository; import com.storeroom.modules.storeroom3d.service.DisplayConfigService; +import com.storeroom.utils.NanoIdUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -18,11 +20,20 @@ public class DisplayConfigImpl implements DisplayConfigService { private final DeviceInfoRepository deviceInfoRepository; private final StoreroomRepository storeroomRepository; + private final DisplayConfigRepository displayConfigRepository; @Override - public DisplayConfig bind(DisplayConfig displayConfig) { - return null; + @Transactional(rollbackFor = Exception.class) + public void bind(DisplayConfig displayConfig) { + displayConfig.setId(NanoIdUtils.randomNanoId()); + displayConfig.setBindState(true); + displayConfig.getDisplayParams().forEach(item -> { + item.setId(NanoIdUtils.randomNanoId()); + item.setDisplayConfigId(displayConfig.getId()); + }); + displayConfig.setStoreroom(displayConfig.getDeviceInfo().getStoreroomId()); + displayConfigRepository.save(displayConfig); } @Override @@ -30,4 +41,9 @@ public class DisplayConfigImpl implements DisplayConfigService { Storeroom storeroom = storeroomRepository.findById(storeroomId).orElseGet(Storeroom::new); return deviceInfoRepository.findByStoreroomId(storeroom); } + + @Override + public List getList(String storeroomId) { + return displayConfigRepository.findByStoreroomId(storeroomId); + } }