Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iot-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SuperHive
back-end
iot-service
Commits
b6750ef7
Commit
b6750ef7
authored
Aug 12, 2020
by
huangcb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加设备类型实例统计接口
parent
9b182977
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
142 additions
and
5 deletions
+142
-5
DeviceTypeController.java
...t/module/devicemodel/controller/DeviceTypeController.java
+11
-0
DeviceInstanceDao.java
...acenter/iot/module/devicemodel/dao/DeviceInstanceDao.java
+9
-0
DeviceInstanceService.java
...iot/module/devicemodel/service/DeviceInstanceService.java
+9
-0
DeviceTypeService.java
...ter/iot/module/devicemodel/service/DeviceTypeService.java
+9
-0
DeviceInstanceServiceImpl.java
...e/devicemodel/service/impl/DeviceInstanceServiceImpl.java
+5
-0
DeviceTypeServiceImpl.java
...odule/devicemodel/service/impl/DeviceTypeServiceImpl.java
+53
-4
DeviceTypeStatisticsVO.java
...ter/iot/module/devicemodel/vo/DeviceTypeStatisticsVO.java
+37
-0
DeviceInstanceDao.xml
src/main/resources/mapper/devicemodel/DeviceInstanceDao.xml
+9
-1
No files found.
src/main/java/com/esv/datacenter/iot/module/devicemodel/controller/DeviceTypeController.java
View file @
b6750ef7
...
...
@@ -162,4 +162,15 @@ public class DeviceTypeController {
return
EResponse
.
ok
();
}
/**
* @description 获取设备类型对应的实例数量统计
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/12 16:11
**/
@PostMapping
(
"/getDeviceTypeStatistics"
)
public
EResponse
getDeviceTypeStatistics
()
throws
EException
{
return
EResponse
.
ok
(
deviceTypeService
.
getDeviceTypeStatistics
());
}
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/dao/DeviceInstanceDao.java
View file @
b6750ef7
...
...
@@ -2,6 +2,7 @@ package com.esv.datacenter.iot.module.devicemodel.dao;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
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
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -37,5 +38,13 @@ public interface DeviceInstanceDao extends BaseMapper<DeviceInstanceEntity> {
* @createTime 2020/08/10 17:28
**/
List
<
Map
<
String
,
Long
>>
selectInstanceCountByType
(
Map
<
String
,
Object
>
queryObj
);
/**
* @description 查询设备列表
* @return java.util.List<com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/12 15:33
**/
List
<
DeviceInstanceDto
>
select4List
();
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceInstanceService.java
View file @
b6750ef7
...
...
@@ -2,6 +2,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.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.vo.DeviceInstanceVO
;
...
...
@@ -108,5 +109,13 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> {
**/
DeviceInstanceEntity
getInstanceByCommunicationId
(
String
communicationId
);
/**
* @description 查询设备列表
* @return java.util.List<com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/12 15:34
**/
List
<
DeviceInstanceDto
>
get4List
();
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceTypeService.java
View file @
b6750ef7
...
...
@@ -7,6 +7,7 @@ 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
;
import
com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeStatisticsVO
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -91,5 +92,13 @@ public interface DeviceTypeService extends IService<DeviceTypeEntity> {
**/
List
<
DataModelDetailVO
>
getDataModelByDeviceTypeId
(
Long
deviceTypeId
);
/**
* @description 获取设备类型对应的实例数量统计
* @return java.util.List<com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeStatisticsVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/12 15:06
**/
List
<
DeviceTypeStatisticsVO
>
getDeviceTypeStatistics
();
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceInstanceServiceImpl.java
View file @
b6750ef7
...
...
@@ -138,4 +138,9 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De
return
this
.
getBaseMapper
().
selectOne
(
new
LambdaQueryWrapper
<
DeviceInstanceEntity
>()
.
eq
(
DeviceInstanceEntity:
:
getCommunicationId
,
communicationId
));
}
@Override
public
List
<
DeviceInstanceDto
>
get4List
()
{
return
this
.
getBaseMapper
().
select4List
();
}
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceTypeServiceImpl.java
View file @
b6750ef7
...
...
@@ -13,22 +13,21 @@ 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.dto.DeviceInstanceDto
;
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.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.vo.DeviceTypeBriefVO
;
import
com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeStatisticsVO
;
import
com.esv.datacenter.iot.module.devicemodel.vo.DeviceTypeVO
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
@Service
(
"deviceTypeService"
)
...
...
@@ -152,4 +151,54 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeDao, DeviceType
return
voList
;
}
@Override
public
List
<
DeviceTypeStatisticsVO
>
getDeviceTypeStatistics
()
{
// 获取所有设备列表
List
<
DeviceInstanceDto
>
dtoList
=
deviceInstanceService
.
get4List
();
// TODO,获取所有在线设备通信ID
// 设置设备类型信息及设备实例数量信息
Long
deviceTypeId
;
Long
instanceOnlineCount
;
Long
instanceOfflineCount
;
Boolean
isOnline
=
false
;
Map
<
Long
,
DeviceTypeStatisticsVO
>
statisticsMap
=
new
HashMap
<>(
32
);
List
<
DeviceTypeStatisticsVO
>
voList
=
new
ArrayList
<>();
DeviceTypeStatisticsVO
vo
=
null
;
for
(
DeviceInstanceDto
dto
:
dtoList
)
{
deviceTypeId
=
dto
.
getDeviceTypeId
();
if
(
statisticsMap
.
containsKey
(
deviceTypeId
))
{
vo
=
statisticsMap
.
get
(
deviceTypeId
);
instanceOnlineCount
=
vo
.
getInstanceOnlineCount
();
instanceOfflineCount
=
vo
.
getInstanceOfflineCount
();
}
else
{
if
(
Objects
.
nonNull
(
vo
))
{
voList
.
add
(
vo
);
}
instanceOnlineCount
=
0L
;
instanceOfflineCount
=
0L
;
vo
=
new
DeviceTypeStatisticsVO
();
vo
.
setId
(
deviceTypeId
);
vo
.
setName
(
dto
.
getDeviceTypeName
());
}
// TODO,判断设备是否在线
if
(
isOnline
)
{
instanceOnlineCount
+=
1L
;
}
else
{
instanceOfflineCount
+=
1L
;
}
vo
.
setInstanceOnlineCount
(
instanceOnlineCount
);
vo
.
setInstanceOfflineCount
(
instanceOfflineCount
);
statisticsMap
.
put
(
deviceTypeId
,
vo
);
}
if
(
Objects
.
nonNull
(
vo
))
{
voList
.
add
(
vo
);
}
return
voList
;
}
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/module/devicemodel/vo/DeviceTypeStatisticsVO.java
0 → 100644
View file @
b6750ef7
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
vo
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/07 9:39
* @version:1.0
*/
@Data
public
class
DeviceTypeStatisticsVO
{
/**
*
*/
private
Long
id
;
/**
* 名称
*/
private
String
name
;
/**
* 设备实例数量-在线
*/
private
Long
instanceOnlineCount
;
/**
* 设备实例数量-离线
*/
private
Long
instanceOfflineCount
;
@Override
public
String
toString
()
{
return
ToStringBuilder
.
reflectionToString
(
this
,
ToStringStyle
.
JSON_STYLE
);
}
}
src/main/resources/mapper/devicemodel/DeviceInstanceDao.xml
View file @
b6750ef7
...
...
@@ -26,7 +26,7 @@
resultType=
"com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto"
>
select a.*, b.name as deviceTypeName
from device_instance a, device_type b
where a.device_type_id = b.id and a.deleted = false
where a.device_type_id = b.id and a.deleted = false
and b.deleted = false
<if
test=
"queryObj.deviceTypeId != null"
>
and a.device_type_id = #{queryObj.deviceTypeId}
</if>
...
...
@@ -52,4 +52,12 @@
group by device_type_id
</select>
<select
id=
"select4List"
resultType=
"com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto"
>
select a.id, a.device_type_id,a.communication_id,
b.name as deviceTypeName
from device_instance a, device_type b
where a.device_type_id = b.id and a.deleted = false and b.deleted = false
ORDER BY b.name ASC
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment