Commit 30ed0144 authored by huangcb's avatar huangcb

调整设备实例接口

parent 28f9e05d
package com.esv.datacenter.iot.common.validator.groups;
import javax.validation.groups.Default;
/**
* @description: 参数校验分组:通过ID获取记录列表
* @project: SpringCloudTemplate
* @name: com.esv.springcloud.template.common.validator.groups.ValidatorDelete
* @author: 黄朝斌
* @email: huangchaobin@esvtek.com
* @createTime: 2020/03/12 17:58
* @version:1.0
*/
public interface ValidatorListById extends Default {
}
package com.esv.datacenter.iot.module.datamodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/10 14:44
* @version:1.0
*/
@Data
public class DataModelDetailVO extends DataModelBriefVO {
List<DataModelPropertyVO> propertyList;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
......@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.common.validator.groups.ValidatorDelete;
import com.esv.datacenter.iot.common.validator.groups.ValidatorInsert;
import com.esv.datacenter.iot.common.validator.groups.ValidatorList;
import com.esv.datacenter.iot.common.validator.groups.ValidatorUpdate;
import com.esv.datacenter.iot.common.validator.groups.*;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceTypeService;
......@@ -105,4 +102,20 @@ public class DeviceInstanceController {
public EResponse list(@RequestBody @Validated(ValidatorList.class) DeviceInstanceForm form) throws EException {
return EResponse.ok(deviceInstanceService.getInstance4Page(form));
}
/**
* @description 通过设备类型ID获取设备列表
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/10 10:24
**/
@PostMapping("/getInstanceByDeviceTypeId")
public EResponse getInstanceByDeviceTypeId(@RequestBody @Validated(ValidatorListById.class) DeviceInstanceForm form) throws EException {
if (!deviceTypeService.isValidTypeId(form.getDeviceTypeId())) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的设备类型ID");
}
return EResponse.ok(deviceInstanceService.getInstanceListByTypeId(form.getDeviceTypeId()));
}
}
package com.esv.datacenter.iot.module.devicemodel.form;
import com.esv.datacenter.iot.common.validator.groups.ValidatorDelete;
import com.esv.datacenter.iot.common.validator.groups.ValidatorInsert;
import com.esv.datacenter.iot.common.validator.groups.ValidatorList;
import com.esv.datacenter.iot.common.validator.groups.ValidatorUpdate;
import com.esv.datacenter.iot.common.validator.groups.*;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
......@@ -30,7 +27,7 @@ public class DeviceInstanceForm {
/**
* 设备类型ID
*/
@NotNull(message = "[设备类型ID]不能为空", groups = {ValidatorInsert.class, ValidatorList.class})
@NotNull(message = "[设备类型ID]不能为空", groups = {ValidatorInsert.class, ValidatorList.class, ValidatorListById.class})
private Long deviceTypeId;
/**
* 设备名称
......@@ -47,7 +44,7 @@ public class DeviceInstanceForm {
/**
* 设备业务ID
*/
@Length(max = 50, message = "[设备名称]长度不合法", groups = {ValidatorInsert.class, ValidatorUpdate.class, ValidatorList.class})
@Length(max = 50, message = "[设备业务ID]长度不合法", groups = {ValidatorInsert.class, ValidatorUpdate.class, ValidatorList.class})
private String businessId;
/**
* 设备型号
......
......@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO;
import java.util.List;
/**
* 设备实例Service
......@@ -77,5 +80,14 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> {
**/
PageResultVO getInstance4Page(DeviceInstanceForm form);
/**
* @description 查询指定设备类型ID的设备实例列表
* @param deviceTypeId:
* @return int
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 20:25
**/
List<DeviceInstanceVO> getInstanceListByTypeId(Long deviceTypeId);
}
......@@ -3,6 +3,7 @@ package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelBriefVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelDetailVO;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceTypeEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceTypeForm;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeBriefVO;
......@@ -84,11 +85,11 @@ public interface DeviceTypeService extends IService<DeviceTypeEntity> {
/**
* @description 通过设备类型ID获取对应的数据模型列表
* @param deviceTypeId:
* @return java.util.List<com.esv.datacenter.iot.module.datamodel.vo.DataModelBriefVO>
* @return java.util.List<com.esv.datacenter.iot.module.datamodel.vo.DataModelDetailVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/07 14:34
**/
List<DataModelBriefVO> getDataModelByDeviceTypeId(Long deviceTypeId);
List<DataModelDetailVO> getDataModelByDeviceTypeId(Long deviceTypeId);
}
......@@ -12,6 +12,7 @@ import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -88,9 +89,9 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De
this.baseMapper.select4Page(page, form);
List<DeviceInstanceDto> entityList = page.getRecords();
List<DeviceTypeVO> voList = new ArrayList<>();
List<DeviceInstanceVO> voList = new ArrayList<>();
for (DeviceInstanceDto entity : entityList) {
DeviceTypeVO vo = new DeviceTypeVO();
DeviceInstanceVO vo = new DeviceInstanceVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
......@@ -99,4 +100,22 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De
return new PageResultVO(page, voList);
}
@Override
public List<DeviceInstanceVO> getInstanceListByTypeId(Long deviceTypeId) {
List<DeviceInstanceEntity> entityList = this.getBaseMapper().selectList(new LambdaQueryWrapper<DeviceInstanceEntity>()
.eq(DeviceInstanceEntity::getDeviceTypeId, deviceTypeId)
.orderByAsc(DeviceInstanceEntity::getName));
List<DeviceInstanceVO> voList = new ArrayList<>();
for (DeviceInstanceEntity entity : entityList) {
DeviceInstanceVO vo = new DeviceInstanceVO();
BeanUtils.copyProperties(entity, vo);
vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime());
voList.add(vo);
}
return voList;
}
}
\ No newline at end of file
......@@ -8,7 +8,10 @@ import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelBriefVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelDetailVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelPropertyVO;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceTypeDao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceTypeEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceTypeForm;
......@@ -31,6 +34,8 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType
@Autowired
private DeviceDataMapService deviceDataMapService;
@Autowired
private DataModelPropertyService dataModelPropertyService;
@Override
public Long insertDeviceType(DeviceTypeForm form) {
......@@ -120,13 +125,14 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType
}
@Override
public List<DataModelBriefVO> getDataModelByDeviceTypeId(Long deviceTypeId) {
public List<DataModelDetailVO> getDataModelByDeviceTypeId(Long deviceTypeId) {
List<DataModelEntity> entityList = deviceDataMapService.getDataModelByDeviceTypeId(deviceTypeId);
List<DataModelBriefVO> voList = new ArrayList<>();
List<DataModelDetailVO> voList = new ArrayList<>();
for (DataModelEntity entity : entityList) {
DataModelBriefVO vo = new DataModelBriefVO();
DataModelDetailVO vo = new DataModelDetailVO();
BeanUtils.copyProperties(entity, vo);
vo.setPropertyList(dataModelPropertyService.getModelPropertyList(entity.getId()));
voList.add(vo);
}
......
......@@ -27,18 +27,18 @@
from device_instance a, device_type b
where a.device_type_id = b.id and a.deleted = false
<if test="queryObj.deviceTypeId != null">
and device_type_id = #{queryObj.deviceTypeId}
and a.device_type_id = #{queryObj.deviceTypeId}
</if>
<if test="queryObj.name != null">
and name like CONCAT('%', #{queryObj.name}, '%')
and a.name like CONCAT('%', #{queryObj.name}, '%')
</if>
<if test="queryObj.businessId != null">
and business_id like CONCAT('%', #{queryObj.businessId}, '%')
and a.business_id like CONCAT('%', #{queryObj.businessId}, '%')
</if>
<if test="queryObj.deviceModel != null">
and device_model like CONCAT('%', #{queryObj.deviceModel}, '%')
and a.device_model like CONCAT('%', #{queryObj.deviceModel}, '%')
</if>
ORDER BY name ASC
ORDER BY a.name ASC
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment