Browse Source

参数绑定

master
刘力 3 years ago
parent
commit
83cbe2017e
  1. 59
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceSpecParamController.java
  2. 60
      storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java
  3. 29
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceSpecParamRepository.java
  4. 29
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java
  5. 40
      storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceSpecParamDto.java
  6. 49
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceSpecParamImpl.java
  7. 11
      storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeviceSpecParamMapper.java

59
storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceSpecParamController.java

@ -0,0 +1,59 @@
package com.storeroom.modules.device.controller;
import com.storeroom.annotaion.rest.AnonymousDeleteMapping;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.device.service.DeviceSpecParamService;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.modules.device.service.dto.DeviceSpecParamDto;
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;
@RestController
@RequiredArgsConstructor
@Api(tags = "设备参数绑定")
@RequestMapping("/api/spec/")
public class DeviceSpecParamController {
private final DeviceSpecParamService deviceSpecParamService;
@ApiOperation("绑定参数")
@AnonymousPostMapping("bind")
public ApiResponse<Object> create(@RequestBody DeviceSpecParamDto deviceSpecParamDto) {
if (!StringUtils.isEmpty(deviceSpecParamDto.getId())) {
throw new BaseException("id不为空");
}
deviceSpecParamService.bind(deviceSpecParamDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ApiOperation("删除参数")
@AnonymousDeleteMapping("delete")
public ApiResponse<Object> delete(@RequestParam String id) {
if (StringUtils.isEmpty(id)) {
throw new BaseException("id不能为空");
}
deviceSpecParamService.delete(id);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ApiOperation("查询参数")
@AnonymousGetMapping("list")
public ApiResponse<Object> list(@RequestParam String deviceInfoId) {
if (StringUtils.isEmpty(deviceInfoId)) {
throw new BaseException("设备id不能为空");
}
return ApiResponse.success(deviceSpecParamService.findByDeviceId(deviceInfoId));
}
}

60
storeroom/src/main/java/com/storeroom/modules/device/domain/DeviceSpecParam.java

@ -0,0 +1,60 @@
package com.storeroom.modules.device.domain;
import com.alibaba.fastjson.annotation.JSONField;
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 = "device_spec_param")
public class DeviceSpecParam extends BaseEntity implements Serializable {
@Id
@Column(name = "id")
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true)
private String id;
@ManyToOne
@JoinColumn(name = "device_info_id",referencedColumnName = "id")
@ApiModelProperty(value = "设备信息id")
private DeviceInfo deviceInfoId;
@Column(name = "param_id")
@ApiModelProperty(value = "参数id")
private String paramId;
@Column(name = "param_name")
@ApiModelProperty(value = "参数名称")
private String paramName;
@Column(name = "unit")
@ApiModelProperty(value = "值单位")
private String unit;
@Column(name = "sequence")
@ApiModelProperty(value = "序号")
private Integer sequence;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeviceSpecParam that = (DeviceSpecParam) o;
return Objects.equals(id, that.id) && Objects.equals(deviceInfoId, that.deviceInfoId) && Objects.equals(paramId, that.paramId) && Objects.equals(paramName, that.paramName) && Objects.equals(unit, that.unit) && Objects.equals(sequence, that.sequence);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceInfoId, paramId, paramName, unit, sequence);
}
}

29
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceSpecParamRepository.java

@ -0,0 +1,29 @@
package com.storeroom.modules.device.repository;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.DeviceSpecParam;
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 DeviceSpecParamRepository extends JpaRepository<DeviceSpecParam, String>, JpaSpecificationExecutor<DeviceSpecParam> {
/**
* 获取数据最大值
*
* @return
*/
@Query(value = "SELECT MAX(sequence) AS maxsque FROM device_spec_param WHERE device_info_id =''", nativeQuery = true)
Integer findByMax(String deviceInfoId);
/**
* 根据设备id查询
* @param deviceInfoId
* @return
*/
@Query(value = "SELECT * FROM device_spec_param WHERE device_info_id =?1", nativeQuery = true)
List<DeviceSpecParam> findByDeviceInfoId(String deviceInfoId);
}

29
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceSpecParamService.java

@ -0,0 +1,29 @@
package com.storeroom.modules.device.service;
import com.storeroom.modules.device.service.dto.DeviceSpecParamDto;
import java.util.List;
public interface DeviceSpecParamService {
/**
* 绑定参数
*/
void bind(DeviceSpecParamDto deviceSpecParamDto);
/**
* 删除参数
* @param id 参数id
*/
void delete(String id);
/**
* 通过设备信息id 查询绑定参数列表
* @param deviceInfoId
* @return
*/
List<DeviceSpecParamDto> findByDeviceId(String deviceInfoId);
}

40
storeroom/src/main/java/com/storeroom/modules/device/service/dto/DeviceSpecParamDto.java

@ -0,0 +1,40 @@
package com.storeroom.modules.device.service.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.storeroom.base.BaseDTO;
import com.storeroom.modules.device.domain.DeviceInfo;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Objects;
@Getter
@Setter
public class DeviceSpecParamDto extends BaseDTO implements Serializable {
private String id;
private DeviceInfo deviceInfoId;
private String paramId;
private String paramName;
private String unit;
private Integer sequence;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeviceSpecParamDto that = (DeviceSpecParamDto) o;
return Objects.equals(id, that.id) && Objects.equals(deviceInfoId, that.deviceInfoId) && Objects.equals(paramId, that.paramId) && Objects.equals(paramName, that.paramName) && Objects.equals(unit, that.unit) && Objects.equals(sequence, that.sequence);
}
@Override
public int hashCode() {
return Objects.hash(id, deviceInfoId, paramId, paramName, unit, sequence);
}
}

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

@ -0,0 +1,49 @@
package com.storeroom.modules.device.service.impl;
import com.storeroom.modules.device.domain.DeviceSpecParam;
import com.storeroom.modules.device.repository.DeviceSpecParamRepository;
import com.storeroom.modules.device.service.DeviceSpecParamService;
import com.storeroom.modules.device.service.dto.DeviceSpecParamDto;
import com.storeroom.modules.device.service.mapstruct.DeviceSpecParamMapper;
import com.storeroom.utils.NanoIdUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
@Service
@RequiredArgsConstructor
public class DeviceSpecParamImpl implements DeviceSpecParamService {
private final DeviceSpecParamRepository deviceSpecParamRepository;
private final DeviceSpecParamMapper deviceSpecParamMapper;
@Override
public void bind(DeviceSpecParamDto deviceSpecParamDto) {
DeviceSpecParam deviceSpecParam = deviceSpecParamMapper.toEntity(deviceSpecParamDto);
Integer num = deviceSpecParamRepository.findByMax(deviceSpecParam.getDeviceInfoId().getId());
if (ObjectUtils.isEmpty(num)) {
deviceSpecParam.setSequence(1);
} else {
deviceSpecParam.setSequence(num + 1);
}
deviceSpecParam.setId(NanoIdUtils.randomNanoId());
deviceSpecParamRepository.save(deviceSpecParam);
}
@Override
public void delete(String id) {
deviceSpecParamRepository.deleteById(id);
}
@Override
public List<DeviceSpecParamDto> findByDeviceId(String deviceInfoId) {
List<DeviceSpecParam> deviceSpecParamList = deviceSpecParamRepository.findByDeviceInfoId(deviceInfoId);
return deviceSpecParamMapper.toDto(deviceSpecParamList);
}
}

11
storeroom/src/main/java/com/storeroom/modules/device/service/mapstruct/DeviceSpecParamMapper.java

@ -0,0 +1,11 @@
package com.storeroom.modules.device.service.mapstruct;
import com.storeroom.base.BaseMapper;
import com.storeroom.modules.device.domain.DeviceSpecParam;
import com.storeroom.modules.device.service.dto.DeviceSpecParamDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeviceSpecParamMapper extends BaseMapper<DeviceSpecParamDto, DeviceSpecParam> {
}
Loading…
Cancel
Save