Commit 5ef86aa5 authored by chenfm's avatar chenfm

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceInstanceService.java
#	src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceInstanceServiceImpl.java
parents 1bc9b7bf 5d7d561f
...@@ -6,6 +6,9 @@ import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity; ...@@ -6,6 +6,9 @@ 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.form.DeviceInstanceForm;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/** /**
* 设备实例表 * 设备实例表
* *
...@@ -26,4 +29,13 @@ public interface DeviceInstanceDao extends BaseMapper<DeviceInstanceEntity> { ...@@ -26,4 +29,13 @@ public interface DeviceInstanceDao extends BaseMapper<DeviceInstanceEntity> {
**/ **/
IPage select4Page(IPage page, DeviceInstanceForm queryObj); IPage select4Page(IPage page, DeviceInstanceForm queryObj);
/**
* @description 查询设备类型的实例数量
* @param queryObj:
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Long>>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/10 17:28
**/
List<Map<String, Long>> selectInstanceCountByType(Map<String, Object> queryObj);
} }
...@@ -89,6 +89,15 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> { ...@@ -89,6 +89,15 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> {
**/ **/
List<DeviceInstanceVO> getInstanceListByTypeId(Long deviceTypeId); List<DeviceInstanceVO> getInstanceListByTypeId(Long deviceTypeId);
/**
* @description 查询设备类型的实例数量
* @param deviceTypeId:
* @return java.util.Map<java.lang.String,java.lang.Long>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/10 17:30
**/
Map<String, Long> getInstanceCountByType(Long deviceTypeId);
/** /**
* description 根据通信id更新设备在线状态 * description 根据通信id更新设备在线状态
* param [communicationIdList] * param [communicationIdList]
......
...@@ -18,6 +18,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -18,6 +18,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -120,6 +121,22 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De ...@@ -120,6 +121,22 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De
return voList; return voList;
} }
@Override
public Map<String, Long> getInstanceCountByType(Long deviceTypeId) {
Map<String, Object> queryObj = new HashMap<>(1);
if (Objects.nonNull(deviceTypeId)) {
queryObj.put("deviceTypeId", deviceTypeId);
}
List<Map<String, Long>> instanceCountMapList = this.getBaseMapper().selectInstanceCountByType(queryObj);
Map<String, Long> instanceCountMap = new HashMap<>(instanceCountMapList.size());
for (Map<String, Long> map : instanceCountMapList) {
instanceCountMap.put(String.valueOf(map.get("device_type_id")), map.get("count"));
}
return instanceCountMap;
}
@Override @Override
public void changeDeviceOnlineState(List<String> communicationIdList) { public void changeDeviceOnlineState(List<String> communicationIdList) {
UpdateWrapper<DeviceInstanceEntity> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<DeviceInstanceEntity> updateWrapper = new UpdateWrapper<>();
......
...@@ -16,6 +16,7 @@ import com.esv.datacenter.iot.module.devicemodel.dao.DeviceTypeDao; ...@@ -16,6 +16,7 @@ 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.entity.DeviceTypeEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceTypeForm; import com.esv.datacenter.iot.module.devicemodel.form.DeviceTypeForm;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService; import com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceTypeService; import com.esv.datacenter.iot.module.devicemodel.service.DeviceTypeService;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeBriefVO; import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeBriefVO;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeVO; import com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeVO;
...@@ -26,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -26,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
...@@ -36,6 +38,8 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType ...@@ -36,6 +38,8 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType
private DeviceDataMapService deviceDataMapService; private DeviceDataMapService deviceDataMapService;
@Autowired @Autowired
private DataModelPropertyService dataModelPropertyService; private DataModelPropertyService dataModelPropertyService;
@Autowired
private DeviceInstanceService deviceInstanceService;
@Override @Override
public Long insertDeviceType(DeviceTypeForm form) { public Long insertDeviceType(DeviceTypeForm form) {
...@@ -84,14 +88,24 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType ...@@ -84,14 +88,24 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType
@Override @Override
public PageResultVO getType4Page(DeviceTypeForm form) { public PageResultVO getType4Page(DeviceTypeForm form) {
// 分页查询设备类型
IPage<DeviceTypeEntity> page = new Page<>(form.getPageNum(), form.getPageSize()); IPage<DeviceTypeEntity> page = new Page<>(form.getPageNum(), form.getPageSize());
this.baseMapper.select4Page(page, form); this.baseMapper.select4Page(page, form);
// 查询设备类型对应的实例数量
Map<String, Long> instanceCountMap = deviceInstanceService.getInstanceCountByType(null);
List<DeviceTypeEntity> entityList = page.getRecords(); List<DeviceTypeEntity> entityList = page.getRecords();
List<DeviceTypeVO> voList = new ArrayList<>(); List<DeviceTypeVO> voList = new ArrayList<>();
Long instanceCount;
for (DeviceTypeEntity entity : entityList) { for (DeviceTypeEntity entity : entityList) {
DeviceTypeVO vo = new DeviceTypeVO(); DeviceTypeVO vo = new DeviceTypeVO();
BeanUtils.copyProperties(entity, vo); BeanUtils.copyProperties(entity, vo);
instanceCount = instanceCountMap.get(String.valueOf(entity.getId()));
if (Objects.isNull(instanceCount)) {
instanceCount = 0L;
}
vo.setInstanceCount(instanceCount);
vo.setCreateTime(entity.getCreateTime().getTime()); vo.setCreateTime(entity.getCreateTime().getTime());
vo.setUpdateTime(entity.getUpdateTime().getTime()); vo.setUpdateTime(entity.getUpdateTime().getTime());
voList.add(vo); voList.add(vo);
......
...@@ -25,6 +25,10 @@ public class DeviceTypeVO { ...@@ -25,6 +25,10 @@ public class DeviceTypeVO {
* 描述 * 描述
*/ */
private String description; private String description;
/**
* 设备实例数量
*/
private Long instanceCount;
/** /**
* 创建者 * 创建者
*/ */
......
...@@ -3,8 +3,8 @@ spring: ...@@ -3,8 +3,8 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
druid: druid:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.31.248:3306/data_center?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false url: jdbc:mysql://192.168.0.17:3306/iot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
username: data_center username: iot
password: 123456 password: 123456
initial-size: 5 initial-size: 5
min-idle: 5 min-idle: 5
...@@ -23,7 +23,7 @@ spring: ...@@ -23,7 +23,7 @@ spring:
merge-sql: false merge-sql: false
redis: redis:
database: 0 database: 0
host: 192.168.31.248 host: 192.168.0.17
port: 6379 port: 6379
password: password:
timeout: 3000 timeout: 3000
...@@ -74,15 +74,15 @@ db: ...@@ -74,15 +74,15 @@ db:
map: 1-string,2-number,3-boolean map: 1-string,2-number,3-boolean
timescale: timescale:
data-source: data-source:
jdbc-url: jdbc:postgresql://192.168.31.248:5432/iot jdbc-url: jdbc:postgresql://192.168.0.17:54321/iot
driver-class-name: org.postgresql.Driver driver-class-name: org.postgresql.Driver
validation-query: SELECT 1 validation-query: SELECT 1
username: iot username: iot
password: 123456 password: 123456
connection-timeout: 10000 connection-timeout: 10000
minimum-idle: 1 minimum-idle: 5
maximum-pool-size: 1 maximum-pool-size: 10
max-lifetime: 0 max-lifetime: 0
table-field: table-field:
map: string-text,number-numeric,boolean-bit(1) map: string-text,number-numeric,integer-int8,boolean-bit(1),date-date,time-int4,datetime-timestamptz
table-prefix: iot_model_ table-prefix: iot_data_model_
\ No newline at end of file \ No newline at end of file
...@@ -80,8 +80,8 @@ timescale: ...@@ -80,8 +80,8 @@ timescale:
username: iot username: iot
password: 123456 password: 123456
connection-timeout: 10000 connection-timeout: 10000
minimum-idle: 1 minimum-idle: 5
maximum-pool-size: 1 maximum-pool-size: 10
max-lifetime: 0 max-lifetime: 0
table-field: table-field:
map: string-text,number-numeric,integer-int8,boolean-bit(1),date-date,time-int4,datetime-timestamptz map: string-text,number-numeric,integer-int8,boolean-bit(1),date-date,time-int4,datetime-timestamptz
......
...@@ -41,4 +41,14 @@ ...@@ -41,4 +41,14 @@
ORDER BY a.name ASC ORDER BY a.name ASC
</select> </select>
<select id="selectInstanceCountByType" parameterType="java.util.Map" resultType="java.util.Map">
select device_type_id, count(id) as count
from device_instance
where deleted = false
<if test="deviceTypeId != null">
and device_type_id = #{deviceTypeId}
</if>
group by device_type_id
</select>
</mapper> </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