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
fe41d5ac
Commit
fe41d5ac
authored
Aug 06, 2020
by
huangcb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化数据模型告警规则功能代码
parent
453a1f05
Changes
31
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
761 additions
and
38 deletions
+761
-38
ApplicationLoadRunner.java
...atacenter/iot/common/component/ApplicationLoadRunner.java
+15
-0
RedisComponent.java
...m/esv/datacenter/iot/common/component/RedisComponent.java
+19
-0
ReqUtils.java
...ain/java/com/esv/datacenter/iot/common/util/ReqUtils.java
+18
-3
DataPermHandler.java
...om/esv/datacenter/iot/config/mybatis/DataPermHandler.java
+1
-1
DataModelAlarmRuleController.java
...le/datamodel/controller/DataModelAlarmRuleController.java
+15
-6
DataModelAlarmRuleDao.java
...enter/iot/module/datamodel/dao/DataModelAlarmRuleDao.java
+13
-2
DataModelAlarmRuleDto.java
...enter/iot/module/datamodel/dto/DataModelAlarmRuleDto.java
+66
-0
DataModelAlarmRuleEntity.java
...iot/module/datamodel/entity/DataModelAlarmRuleEntity.java
+8
-1
DataModelAlarmRuleService.java
...t/module/datamodel/service/DataModelAlarmRuleService.java
+20
-0
DataModelAlarmRuleServiceImpl.java
...datamodel/service/impl/DataModelAlarmRuleServiceImpl.java
+70
-2
DataModelServiceImpl.java
...t/module/datamodel/service/impl/DataModelServiceImpl.java
+15
-0
DataModelPropertyVO.java
...tacenter/iot/module/datamodel/vo/DataModelPropertyVO.java
+0
-20
DeviceDataMapDao.java
...tacenter/iot/module/devicemodel/dao/DeviceDataMapDao.java
+17
-0
DeviceInstanceDao.java
...acenter/iot/module/devicemodel/dao/DeviceInstanceDao.java
+17
-0
DeviceTypeDao.java
.../datacenter/iot/module/devicemodel/dao/DeviceTypeDao.java
+17
-0
DeviceDataMapEntity.java
...er/iot/module/devicemodel/entity/DeviceDataMapEntity.java
+66
-0
DeviceInstanceEntity.java
...r/iot/module/devicemodel/entity/DeviceInstanceEntity.java
+80
-0
DeviceTypeEntity.java
...enter/iot/module/devicemodel/entity/DeviceTypeEntity.java
+68
-0
DeviceTypeForm.java
...atacenter/iot/module/devicemodel/from/DeviceTypeForm.java
+57
-0
DeviceDataMapService.java
.../iot/module/devicemodel/service/DeviceDataMapService.java
+25
-0
DeviceInstanceService.java
...iot/module/devicemodel/service/DeviceInstanceService.java
+16
-0
DeviceTypeService.java
...ter/iot/module/devicemodel/service/DeviceTypeService.java
+16
-0
DeviceDataMapServiceImpl.java
...le/devicemodel/service/impl/DeviceDataMapServiceImpl.java
+19
-0
DeviceInstanceServiceImpl.java
...e/devicemodel/service/impl/DeviceInstanceServiceImpl.java
+14
-0
DeviceTypeServiceImpl.java
...odule/devicemodel/service/impl/DeviceTypeServiceImpl.java
+14
-0
DataModelAlarmRuleDao.xml
...main/resources/mapper/datamodel/DataModelAlarmRuleDao.xml
+7
-0
DataModelDao.xml
src/main/resources/mapper/datamodel/DataModelDao.xml
+2
-2
DataModelPropertyDao.xml
src/main/resources/mapper/datamodel/DataModelPropertyDao.xml
+1
-1
DeviceDataMapDao.xml
src/main/resources/mapper/devicemodel/DeviceDataMapDao.xml
+20
-0
DeviceInstanceDao.xml
src/main/resources/mapper/devicemodel/DeviceInstanceDao.xml
+24
-0
DeviceTypeDao.xml
src/main/resources/mapper/devicemodel/DeviceTypeDao.xml
+21
-0
No files found.
src/main/java/com/esv/datacenter/iot/common/component/ApplicationLoadRunner.java
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
common
.
component
;
package
com
.
esv
.
datacenter
.
iot
.
common
.
component
;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationRunner
;
import
org.springframework.boot.ApplicationRunner
;
...
@@ -22,8 +24,21 @@ public class ApplicationLoadRunner implements ApplicationRunner {
...
@@ -22,8 +24,21 @@ public class ApplicationLoadRunner implements ApplicationRunner {
@Value
(
"${spring.application.name}"
)
@Value
(
"${spring.application.name}"
)
private
String
applicationName
;
private
String
applicationName
;
@Autowired
private
DataModelAlarmRuleService
dataModelAlarmRuleService
;
@Override
@Override
public
void
run
(
ApplicationArguments
var
)
{
public
void
run
(
ApplicationArguments
var
)
{
log
.
info
(
"-------------------- [{}]初始化完成 --------------------"
,
applicationName
);
log
.
info
(
"-------------------- [{}]初始化完成 --------------------"
,
applicationName
);
// 初始化缓存数据模型告警规则
try
{
dataModelAlarmRuleService
.
cacheInitAlarmRule
();
log
.
info
(
"-------------------- 缓存数据模型告警规则初始化成功 --------------------"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"-------------------- 缓存数据模型告警规则初始化失败 --------------------"
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
}
}
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/common/component/RedisComponent.java
View file @
fe41d5ac
...
@@ -2,6 +2,7 @@ package com.esv.datacenter.iot.common.component;
...
@@ -2,6 +2,7 @@ package com.esv.datacenter.iot.common.component;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
...
@@ -126,6 +127,24 @@ public class RedisComponent {
...
@@ -126,6 +127,24 @@ public class RedisComponent {
}
}
}
}
/**
* @description 普通缓存放入(缓存时间不过期,慎用!!!)
* @param key:
* @param value:
* @return boolean
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 19:27
**/
public
boolean
set
(
String
key
,
Object
value
)
{
try
{
redisTemplate
.
opsForValue
().
set
(
key
,
value
);
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
false
;
}
}
/**
/**
* 递增
* 递增
*
*
...
...
src/main/java/com/esv/datacenter/iot/common/util/ReqUtils.java
View file @
fe41d5ac
...
@@ -75,9 +75,24 @@ public class ReqUtils {
...
@@ -75,9 +75,24 @@ public class ReqUtils {
* createTime 2020/05/25 13:55
* createTime 2020/05/25 13:55
**/
**/
public
static
Long
getRequestTenantId
()
{
public
static
Long
getRequestTenantId
()
{
String
userId
=
getRequestHeader
(
GatewayHeaders
.
TENANT_ID
);
String
tenantId
=
getRequestHeader
(
GatewayHeaders
.
TENANT_ID
);
if
(
StringUtils
.
isNotBlank
(
userId
))
{
if
(
StringUtils
.
isNotBlank
(
tenantId
))
{
return
Long
.
parseLong
(
userId
);
return
Long
.
parseLong
(
tenantId
);
}
else
{
return
null
;
}
}
/**
* @description 获取当前请求的部门ID
* @return java.lang.Long
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 15:56
**/
public
static
Long
getRequestDepartmentId
()
{
String
departmentId
=
getRequestHeader
(
GatewayHeaders
.
DEPARTMENT_ID
);
if
(
StringUtils
.
isNotBlank
(
departmentId
))
{
return
Long
.
parseLong
(
departmentId
);
}
else
{
}
else
{
return
null
;
return
null
;
}
}
...
...
src/main/java/com/esv/datacenter/iot/config/mybatis/DataPermHandler.java
View file @
fe41d5ac
...
@@ -26,7 +26,7 @@ public class DataPermHandler implements TenantHandler {
...
@@ -26,7 +26,7 @@ public class DataPermHandler implements TenantHandler {
/**
/**
* 不需要数据权限查询的表
* 不需要数据权限查询的表
**/
**/
private
final
List
<
String
>
filterTableNames
=
Arrays
.
asList
(
""
);
private
final
List
<
String
>
filterTableNames
=
Arrays
.
asList
(
"
data_model_alarm_rule
"
);
@Override
@Override
public
Expression
getTenantId
(
boolean
where
)
{
public
Expression
getTenantId
(
boolean
where
)
{
...
...
src/main/java/com/esv/datacenter/iot/module/datamodel/controller/DataModelAlarmRuleController.java
View file @
fe41d5ac
...
@@ -10,13 +10,10 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService
...
@@ -10,13 +10,10 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService
import
com.esv.datacenter.iot.module.datamodel.service.DataModelService
;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
/**
* @description:
* @description:
数据模型告警规则Controller
* @author: huangchaobin@esvtek.com
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/05 16:27
* @createTime: 2020/08/05 16:27
* @version:1.0
* @version:1.0
...
@@ -36,7 +33,7 @@ public class DataModelAlarmRuleController {
...
@@ -36,7 +33,7 @@ public class DataModelAlarmRuleController {
}
}
/**
/**
* @description 保存告警规则
* @description 保存
数据模型
告警规则
* @param form:
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @author huangChaobin@esvtek.com
...
@@ -71,4 +68,16 @@ public class DataModelAlarmRuleController {
...
@@ -71,4 +68,16 @@ public class DataModelAlarmRuleController {
return
EResponse
.
ok
(
dataModelAlarmRuleService
.
getAlarmRuleList
(
form
.
getModelId
()));
return
EResponse
.
ok
(
dataModelAlarmRuleService
.
getAlarmRuleList
(
form
.
getModelId
()));
}
}
/**
* @description 缓存数据模型告警规则
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 15:58
**/
@GetMapping
(
"/updateCache"
)
public
EResponse
updateCache
()
throws
EException
{
dataModelAlarmRuleService
.
cacheInitAlarmRule
();
return
EResponse
.
ok
();
}
}
}
src/main/java/com/esv/datacenter/iot/module/datamodel/dao/DataModelAlarmRuleDao.java
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
dao
;
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
dao
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.esv.datacenter.iot.module.datamodel.dto.DataModelAlarmRuleDto
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
/**
* 数据模型告警规则表
* 数据模型告警规则表
*
*
...
@@ -13,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -13,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
*/
*/
@Mapper
@Mapper
public
interface
DataModelAlarmRuleDao
extends
BaseMapper
<
DataModelAlarmRuleEntity
>
{
public
interface
DataModelAlarmRuleDao
extends
BaseMapper
<
DataModelAlarmRuleEntity
>
{
/**
* @description 查询所有数据模型告警规则
* @return java.util.List<com.esv.datacenter.iot.module.datamodel.dto.DataModelAlarmRuleDto>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 15:48
**/
List
<
DataModelAlarmRuleDto
>
selectAll
();
}
}
src/main/java/com/esv/datacenter/iot/module/datamodel/dto/DataModelAlarmRuleDto.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
dto
;
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/06 14:47
* @version:1.0
*/
@Data
public
class
DataModelAlarmRuleDto
{
/**
*
*/
private
Long
id
;
/**
* 模型ID
*/
private
Long
modelId
;
/**
* 模型属性ID
*/
private
Long
propertyId
;
/**
* 判定规则代码(字典表)
*/
private
Integer
ruleExpression
;
/**
* 告警等级(字典表)
*/
private
Integer
alarmLevel
;
/**
* 阈值
*/
private
String
threshold
;
/**
* 属性代码
*/
private
String
propertyCode
;
/**
* 属性名称
*/
private
String
propertyName
;
/**
* 属性类型(字典表)
*/
private
Integer
propertyType
;
/**
* 属性默认值
*/
private
String
propertyDefaultValue
;
/**
* 属性单位
*/
private
String
propertyUnit
;
@Override
public
String
toString
()
{
return
ToStringBuilder
.
reflectionToString
(
this
,
ToStringStyle
.
JSON_STYLE
);
}
}
src/main/java/com/esv/datacenter/iot/module/datamodel/entity/DataModelAlarmRuleEntity.java
View file @
fe41d5ac
...
@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
...
@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
import
lombok.Data
;
/**
/**
* 数据模型告警规则表
* 数据模型告警规则表
...
@@ -79,4 +81,9 @@ public class DataModelAlarmRuleEntity implements Serializable {
...
@@ -79,4 +81,9 @@ public class DataModelAlarmRuleEntity implements Serializable {
*/
*/
private
Date
updateTime
;
private
Date
updateTime
;
@Override
public
String
toString
()
{
return
ToStringBuilder
.
reflectionToString
(
this
,
ToStringStyle
.
JSON_STYLE
);
}
}
}
src/main/java/com/esv/datacenter/iot/module/datamodel/service/DataModelAlarmRuleService.java
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
service
;
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.esv.datacenter.iot.module.datamodel.dto.DataModelAlarmRuleDto
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
com.esv.datacenter.iot.module.datamodel.form.AlarmRuleItemForm
;
import
com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm
;
import
com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm
;
import
com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO
;
import
com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO
;
...
@@ -34,5 +36,23 @@ public interface DataModelAlarmRuleService extends IService<DataModelAlarmRuleEn
...
@@ -34,5 +36,23 @@ public interface DataModelAlarmRuleService extends IService<DataModelAlarmRuleEn
**/
**/
List
<
AlarmRuleItemVO
>
getAlarmRuleList
(
Long
modelId
);
List
<
AlarmRuleItemVO
>
getAlarmRuleList
(
Long
modelId
);
/**
* @description 缓存数据模型告警规则
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 14:49
**/
void
cacheInitAlarmRule
();
/**
* @description 设置缓存数据模型告警规则
* @param modelId:
* @param alarmRuleItemList:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 14:49
**/
void
setCacheAlarmRule
(
Long
modelId
,
List
<
DataModelAlarmRuleDto
>
alarmRuleItemList
);
}
}
src/main/java/com/esv/datacenter/iot/module/datamodel/service/impl/DataModelAlarmRuleServiceImpl.java
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
service
.
impl
;
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.esv.datacenter.iot.common.component.RedisComponent
;
import
com.esv.datacenter.iot.common.util.ReqUtils
;
import
com.esv.datacenter.iot.common.util.ReqUtils
;
import
com.esv.datacenter.iot.module.datamodel.dao.DataModelAlarmRuleDao
;
import
com.esv.datacenter.iot.module.datamodel.dao.DataModelAlarmRuleDao
;
import
com.esv.datacenter.iot.module.datamodel.dto.DataModelAlarmRuleDto
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity
;
import
com.esv.datacenter.iot.module.datamodel.form.AlarmRuleItemForm
;
import
com.esv.datacenter.iot.module.datamodel.form.AlarmRuleItemForm
;
import
com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm
;
import
com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm
;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService
;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService
;
import
com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO
;
import
com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.List
;
@Service
(
"dataModelAlarmRuleService"
)
@Service
(
"dataModelAlarmRuleService"
)
public
class
DataModelAlarmRuleServiceImpl
extends
ServiceImpl
<
DataModelAlarmRuleDao
,
DataModelAlarmRuleEntity
>
implements
DataModelAlarmRuleService
{
public
class
DataModelAlarmRuleServiceImpl
extends
ServiceImpl
<
DataModelAlarmRuleDao
,
DataModelAlarmRuleEntity
>
implements
DataModelAlarmRuleService
{
@Value
(
"${spring.application.name}"
)
private
String
applicationName
;
@Autowired
private
RedisComponent
redisComponent
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveAlarmRule
(
DataModelAlarmRuleForm
form
)
{
public
void
saveAlarmRule
(
DataModelAlarmRuleForm
form
)
{
...
@@ -31,6 +42,7 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
...
@@ -31,6 +42,7 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
// 新增模型告警规则
// 新增模型告警规则
String
[]
notBlandParams
=
new
String
[]{
"propertyId"
,
"ruleExpression"
,
"alarmLevel"
,
"threshold"
};
String
[]
notBlandParams
=
new
String
[]{
"propertyId"
,
"ruleExpression"
,
"alarmLevel"
,
"threshold"
};
List
<
AlarmRuleItemForm
>
alarmRuleItemList
=
form
.
getAlarmRuleItemList
();
List
<
AlarmRuleItemForm
>
alarmRuleItemList
=
form
.
getAlarmRuleItemList
();
List
<
DataModelAlarmRuleDto
>
alarmRuleDtoList
=
new
ArrayList
<>();
for
(
AlarmRuleItemForm
ruleItemForm
:
alarmRuleItemList
)
{
for
(
AlarmRuleItemForm
ruleItemForm
:
alarmRuleItemList
)
{
// 告警规则必填校验
// 告警规则必填校验
ReqUtils
.
checkParamsNotBlank
(
JSON
.
parseObject
(
ruleItemForm
.
toString
()),
notBlandParams
);
ReqUtils
.
checkParamsNotBlank
(
JSON
.
parseObject
(
ruleItemForm
.
toString
()),
notBlandParams
);
...
@@ -38,6 +50,8 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
...
@@ -38,6 +50,8 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
DataModelAlarmRuleEntity
entity
=
new
DataModelAlarmRuleEntity
();
DataModelAlarmRuleEntity
entity
=
new
DataModelAlarmRuleEntity
();
BeanUtils
.
copyProperties
(
ruleItemForm
,
entity
);
BeanUtils
.
copyProperties
(
ruleItemForm
,
entity
);
entity
.
setModelId
(
form
.
getModelId
());
entity
.
setModelId
(
form
.
getModelId
());
entity
.
setTenantId
(
ReqUtils
.
getRequestTenantId
());
entity
.
setDepartmentId
(
ReqUtils
.
getRequestDepartmentId
());
this
.
getBaseMapper
().
insert
(
entity
);
this
.
getBaseMapper
().
insert
(
entity
);
// 更新排序
// 更新排序
...
@@ -45,7 +59,15 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
...
@@ -45,7 +59,15 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
sortEntity
.
setId
(
entity
.
getId
());
sortEntity
.
setId
(
entity
.
getId
());
sortEntity
.
setSortNum
(
entity
.
getId
());
sortEntity
.
setSortNum
(
entity
.
getId
());
this
.
getBaseMapper
().
updateById
(
sortEntity
);
this
.
getBaseMapper
().
updateById
(
sortEntity
);
// 设置缓存数据
DataModelAlarmRuleDto
dto
=
new
DataModelAlarmRuleDto
();
BeanUtils
.
copyProperties
(
entity
,
dto
);
alarmRuleDtoList
.
add
(
dto
);
}
}
// 缓存数据模型告警规则
this
.
setCacheAlarmRule
(
modelId
,
alarmRuleDtoList
);
}
}
@Override
@Override
...
@@ -63,4 +85,50 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
...
@@ -63,4 +85,50 @@ public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRul
return
voList
;
return
voList
;
}
}
@Override
public
void
cacheInitAlarmRule
()
{
List
<
DataModelAlarmRuleDto
>
dataModelAlarmRuleDtoList
=
this
.
getBaseMapper
().
selectAll
();
if
(
Objects
.
isNull
(
dataModelAlarmRuleDtoList
)
||
0
==
dataModelAlarmRuleDtoList
.
size
())
{
return
;
}
Long
modelId
=
-
99L
;
List
<
DataModelAlarmRuleDto
>
alarmRuleDtoList
=
null
;
Map
<
Long
,
Object
>
alarmRuleMap
=
new
HashMap
<>(
32
);
for
(
DataModelAlarmRuleDto
entity
:
dataModelAlarmRuleDtoList
)
{
if
(!
entity
.
getModelId
().
equals
(
modelId
))
{
if
(
null
!=
alarmRuleDtoList
&&
0
<
alarmRuleDtoList
.
size
())
{
alarmRuleMap
.
put
(
modelId
,
alarmRuleDtoList
);
}
alarmRuleDtoList
=
new
ArrayList
<>();
}
modelId
=
entity
.
getModelId
();
DataModelAlarmRuleDto
dto
=
new
DataModelAlarmRuleDto
();
BeanUtils
.
copyProperties
(
entity
,
dto
);
alarmRuleDtoList
.
add
(
dto
);
}
if
(!
alarmRuleMap
.
containsKey
(
modelId
))
{
alarmRuleMap
.
put
(
modelId
,
alarmRuleDtoList
);
}
// 初始化缓存数据模型告警规则
for
(
Map
.
Entry
<
Long
,
Object
>
entry
:
alarmRuleMap
.
entrySet
()){
this
.
setCacheAlarmRule
(
entry
.
getKey
(),
(
List
<
DataModelAlarmRuleDto
>)
entry
.
getValue
());
}
}
@Override
public
void
setCacheAlarmRule
(
Long
modelId
,
List
<
DataModelAlarmRuleDto
>
alarmRuleItemList
)
{
String
cacheKey
=
applicationName
+
"::data_model::alarm_rule::"
+
modelId
;
if
(
null
==
alarmRuleItemList
||
0
==
alarmRuleItemList
.
size
())
{
redisComponent
.
del
(
cacheKey
);
}
else
{
JSONArray
jsonArray
=
new
JSONArray
();
alarmRuleItemList
.
forEach
(
dto
->
{
jsonArray
.
add
(
JSONObject
.
parse
(
dto
.
toString
()));
});
redisComponent
.
set
(
cacheKey
,
jsonArray
.
toString
());
}
}
}
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/module/datamodel/service/impl/DataModelServiceImpl.java
View file @
fe41d5ac
...
@@ -18,6 +18,7 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
...
@@ -18,6 +18,7 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelService
;
import
com.esv.datacenter.iot.module.datamodel.service.DataModelService
;
import
com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO
;
import
com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO
;
import
com.esv.datacenter.iot.module.datamodel.vo.DataModelVO
;
import
com.esv.datacenter.iot.module.datamodel.vo.DataModelVO
;
import
com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -34,6 +35,8 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
...
@@ -34,6 +35,8 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
private
TimescaleComponent
timescaleComponent
;
private
TimescaleComponent
timescaleComponent
;
@Autowired
@Autowired
private
DataModelPropertyService
dataModelPropertyService
;
private
DataModelPropertyService
dataModelPropertyService
;
@Autowired
private
DeviceDataMapService
deviceDataMapService
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -122,6 +125,12 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
...
@@ -122,6 +125,12 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
// 判断是否修改模型属性并校验
// 判断是否修改模型属性并校验
List
<
DataModelPropertyForm
>
propertyList
=
form
.
getPropertyList
();
List
<
DataModelPropertyForm
>
propertyList
=
form
.
getPropertyList
();
if
(
null
!=
propertyList
&&
0
<
propertyList
.
size
())
{
if
(
null
!=
propertyList
&&
0
<
propertyList
.
size
())
{
// 如果有设备模型使用,不能更新
int
count
=
deviceDataMapService
.
getCountByDataModelId
(
modelId
);
if
(
0
<
count
)
{
throw
new
EException
(
ECode
.
BIZ_PARAM_ERROR
.
code
(),
"改模型已被设备使用,不能修改属性"
);
}
// 保存模型属性
// 保存模型属性
this
.
dataModelPropertyService
.
saveModelProperty
(
modelId
,
propertyList
);
this
.
dataModelPropertyService
.
saveModelProperty
(
modelId
,
propertyList
);
...
@@ -136,6 +145,12 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
...
@@ -136,6 +145,12 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteModel
(
Long
modelId
)
{
public
void
deleteModel
(
Long
modelId
)
{
// 如果有设备模型使用,不能删除
int
count
=
deviceDataMapService
.
getCountByDataModelId
(
modelId
);
if
(
0
<
count
)
{
throw
new
EException
(
ECode
.
BIZ_PARAM_ERROR
.
code
(),
"改模型已被设备使用,不能删除"
);
}
// 逻辑删除模型
// 逻辑删除模型
DataModelEntity
modelEntity
=
new
DataModelEntity
();
DataModelEntity
modelEntity
=
new
DataModelEntity
();
modelEntity
.
setId
(
modelId
);
modelEntity
.
setId
(
modelId
);
...
...
src/main/java/com/esv/datacenter/iot/module/datamodel/vo/DataModelPropertyVO.java
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
vo
;
package
com
.
esv
.
datacenter
.
iot
.
module
.
datamodel
.
vo
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
...
@@ -18,16 +14,7 @@ public class DataModelPropertyVO {
...
@@ -18,16 +14,7 @@ public class DataModelPropertyVO {
/**
/**
*
*
*/
*/
@TableId
private
Long
id
;
private
Long
id
;
/**
* 租户ID
*/
private
Long
tenantId
;
/**
* 部门ID
*/
private
Long
departmentId
;
/**
/**
* 模型ID
* 模型ID
*/
*/
...
@@ -56,20 +43,13 @@ public class DataModelPropertyVO {
...
@@ -56,20 +43,13 @@ public class DataModelPropertyVO {
* 排列序号
* 排列序号
*/
*/
private
Long
sortNum
;
private
Long
sortNum
;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private
Boolean
deleted
;
/**
/**
* 创建者
* 创建者
*/
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
String
createUser
;
private
String
createUser
;
/**
/**
* 修改者
* 修改者
*/
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
updateUser
;
private
String
updateUser
;
/**
/**
* 创建时间
* 创建时间
...
...
src/main/java/com/esv/datacenter/iot/module/devicemodel/dao/DeviceDataMapDao.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
dao
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 设备类型-数据模型映射表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Mapper
public
interface
DeviceDataMapDao
extends
BaseMapper
<
DeviceDataMapEntity
>
{
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/dao/DeviceInstanceDao.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
dao
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 设备实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Mapper
public
interface
DeviceInstanceDao
extends
BaseMapper
<
DeviceInstanceEntity
>
{
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/dao/DeviceTypeDao.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
dao
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceTypeEntity
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 设备类型表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Mapper
public
interface
DeviceTypeDao
extends
BaseMapper
<
DeviceTypeEntity
>
{
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/entity/DeviceDataMapEntity.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
entity
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 设备类型-数据模型映射表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Data
@TableName
(
"device_data_map"
)
public
class
DeviceDataMapEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
@TableId
private
Long
id
;
/**
* 租户ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
tenantId
;
/**
* 部门ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
departmentId
;
/**
* 设备类型ID
*/
private
Long
deviceTypeId
;
/**
* 数据模型ID
*/
private
Long
dataModelId
;
/**
* 创建者
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
String
createUser
;
/**
* 修改者
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
updateUser
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/entity/DeviceInstanceEntity.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 设备实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Data
@TableName
(
"device_instance"
)
public
class
DeviceInstanceEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
@TableId
private
Long
id
;
/**
* 租户ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
tenantId
;
/**
* 部门ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
departmentId
;
/**
* 设备类型ID
*/
private
Long
deviceTypeId
;
/**
* 设备名称
*/
private
String
name
;
/**
* 设备描述
*/
private
String
description
;
/**
* 设备业务ID
*/
private
String
businessId
;
/**
* 设备型号
*/
private
String
deviceModel
;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private
Boolean
deleted
;
/**
* 创建者
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
String
createUser
;
/**
* 修改者
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
updateUser
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/entity/DeviceTypeEntity.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 设备类型表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
@Data
@TableName
(
"device_type"
)
public
class
DeviceTypeEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
@TableId
private
Long
id
;
/**
* 租户ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
tenantId
;
/**
* 部门ID
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
departmentId
;
/**
* 名称
*/
private
String
name
;
/**
* 描述
*/
private
String
description
;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private
Boolean
deleted
;
/**
* 创建者
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
String
createUser
;
/**
* 修改者
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
updateUser
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/from/DeviceTypeForm.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
from
;
import
com.esv.datacenter.iot.common.validator.groups.ValidatorInsert
;
import
com.esv.datacenter.iot.common.validator.groups.ValidatorList
;
import
lombok.Data
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.Range
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/06 16:34
* @version:1.0
*/
@Data
public
class
DeviceTypeForm
{
/**
*
*/
private
Long
id
;
/**
* 名称
*/
@Length
(
max
=
50
,
message
=
"[设备名称]长度不合法"
,
groups
=
{
ValidatorInsert
.
class
})
@NotBlank
(
message
=
"[设备名称]不能为空"
,
groups
=
{
ValidatorInsert
.
class
})
private
String
name
;
/**
* 描述
*/
@Length
(
max
=
200
,
message
=
"[设备描述]长度不合法"
,
groups
=
{
ValidatorInsert
.
class
})
@NotBlank
(
message
=
"[设备描述]不能为空"
,
groups
=
{
ValidatorInsert
.
class
})
private
String
description
;
/**
* 页码
**/
@Range
(
min
=
1
,
max
=
65535
,
message
=
"无效的pageNum"
,
groups
=
{
ValidatorList
.
class
})
@NotNull
(
message
=
"参数pageNum不能为空"
,
groups
=
{
ValidatorList
.
class
})
private
Integer
pageNum
;
/**
* 每页记录条数
**/
@Range
(
min
=
1
,
max
=
100
,
message
=
"pageSize"
,
groups
=
{
ValidatorList
.
class
})
@NotNull
(
message
=
"参数pageSize不能为空"
,
groups
=
{
ValidatorList
.
class
})
private
Integer
pageSize
;
@Override
public
String
toString
()
{
return
ToStringBuilder
.
reflectionToString
(
this
,
ToStringStyle
.
JSON_STYLE
);
}
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceDataMapService.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity
;
/**
* 设备类型-数据模型映射Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
public
interface
DeviceDataMapService
extends
IService
<
DeviceDataMapEntity
>
{
/**
* @description 统计指定数据模型的使用数量
* @param dataModelId:
* @return int
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 16:25
**/
int
getCountByDataModelId
(
Long
dataModelId
);
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceInstanceService.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity
;
/**
* 设备实例Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
public
interface
DeviceInstanceService
extends
IService
<
DeviceInstanceEntity
>
{
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/DeviceTypeService.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceTypeEntity
;
/**
* 设备类型Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 16:15:13
*/
public
interface
DeviceTypeService
extends
IService
<
DeviceTypeEntity
>
{
}
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceDataMapServiceImpl.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.esv.datacenter.iot.module.devicemodel.dao.DeviceDataMapDao
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity
;
import
com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService
;
import
org.springframework.stereotype.Service
;
@Service
(
"deviceDataMapService"
)
public
class
DeviceDataMapServiceImpl
extends
ServiceImpl
<
DeviceDataMapDao
,
DeviceDataMapEntity
>
implements
DeviceDataMapService
{
@Override
public
int
getCountByDataModelId
(
Long
dataModelId
)
{
return
this
.
getBaseMapper
().
selectCount
(
new
LambdaQueryWrapper
<
DeviceDataMapEntity
>()
.
eq
(
DeviceDataMapEntity:
:
getDataModelId
,
dataModelId
));
}
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceInstanceServiceImpl.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.esv.datacenter.iot.module.devicemodel.dao.DeviceInstanceDao
;
import
com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity
;
import
com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService
;
import
org.springframework.stereotype.Service
;
@Service
(
"deviceInstanceService"
)
public
class
DeviceInstanceServiceImpl
extends
ServiceImpl
<
DeviceInstanceDao
,
DeviceInstanceEntity
>
implements
DeviceInstanceService
{
}
\ No newline at end of file
src/main/java/com/esv/datacenter/iot/module/devicemodel/service/impl/DeviceTypeServiceImpl.java
0 → 100644
View file @
fe41d5ac
package
com
.
esv
.
datacenter
.
iot
.
module
.
devicemodel
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
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.service.DeviceTypeService
;
import
org.springframework.stereotype.Service
;
@Service
(
"deviceTypeService"
)
public
class
DeviceTypeServiceImpl
extends
ServiceImpl
<
DeviceTypeDao
,
DeviceTypeEntity
>
implements
DeviceTypeService
{
}
\ No newline at end of file
src/main/resources/mapper/datamodel/DataModelAlarmRuleDao.xml
View file @
fe41d5ac
...
@@ -20,5 +20,12 @@
...
@@ -20,5 +20,12 @@
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
</resultMap>
<select
id=
"selectAll"
resultType=
"com.esv.datacenter.iot.module.datamodel.dto.DataModelAlarmRuleDto"
>
select a.id, a.model_id, a.property_id, a.rule_expression, a.alarm_level, a.threshold,
b.property_code, b.property_code, b.property_name, b.property_default_value, b.property_unit
from data_model_alarm_rule a, data_model_property b
where a.model_id = b.model_id and a.property_id = b.id
ORDER BY model_id ASC
</select>
</mapper>
</mapper>
\ No newline at end of file
src/main/resources/mapper/datamodel/DataModelDao.xml
View file @
fe41d5ac
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<select
id=
"select4Page"
parameterType=
"com.esv.datacenter.iot.module.datamodel.form.DataModelForm"
<select
id=
"select4Page"
parameterType=
"com.esv.datacenter.iot.module.datamodel.form.DataModelForm"
resultType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity"
>
resultType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity"
>
select *
select *
from
base_object
_model
from
data
_model
where deleted = false
where deleted = false
<if
test=
"queryObj.name != null"
>
<if
test=
"queryObj.name != null"
>
and name like #{queryObj.name}
and name like #{queryObj.name}
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
</select>
</select>
<update
id=
"logicDeleteModel"
parameterType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity"
>
<update
id=
"logicDeleteModel"
parameterType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity"
>
update
base_object
_model
update
data
_model
set deleted = #{deleted}
set deleted = #{deleted}
where id = #{id}
where id = #{id}
</update>
</update>
...
...
src/main/resources/mapper/datamodel/DataModelPropertyDao.xml
View file @
fe41d5ac
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
</resultMap>
</resultMap>
<update
id=
"logicDeleteModelProperty"
parameterType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity"
>
<update
id=
"logicDeleteModelProperty"
parameterType=
"com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity"
>
update
base_object
_model_property
update
data
_model_property
set deleted = #{deleted}
set deleted = #{deleted}
where model_id = #{modelId}
where model_id = #{modelId}
</update>
</update>
...
...
src/main/resources/mapper/devicemodel/DeviceDataMapDao.xml
0 → 100644
View file @
fe41d5ac
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.esv.datacenter.iot.module.devicemodel.dao.DeviceDataMapDao"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity"
id=
"deviceDataMapMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"tenantId"
column=
"tenant_id"
/>
<result
property=
"departmentId"
column=
"department_id"
/>
<result
property=
"deviceTypeId"
column=
"device_type_id"
/>
<result
property=
"dataModelId"
column=
"data_model_id"
/>
<result
property=
"createUser"
column=
"create_user"
/>
<result
property=
"updateUser"
column=
"update_user"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
</mapper>
\ No newline at end of file
src/main/resources/mapper/devicemodel/DeviceInstanceDao.xml
0 → 100644
View file @
fe41d5ac
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.esv.datacenter.iot.module.devicemodel.dao.DeviceInstanceDao"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity"
id=
"deviceInstanceMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"tenantId"
column=
"tenant_id"
/>
<result
property=
"departmentId"
column=
"department_id"
/>
<result
property=
"deviceTypeId"
column=
"device_type_id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"description"
column=
"description"
/>
<result
property=
"businessId"
column=
"business_id"
/>
<result
property=
"deviceModel"
column=
"device_model"
/>
<result
property=
"deleted"
column=
"deleted"
/>
<result
property=
"createUser"
column=
"create_user"
/>
<result
property=
"updateUser"
column=
"update_user"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
</mapper>
\ No newline at end of file
src/main/resources/mapper/devicemodel/DeviceTypeDao.xml
0 → 100644
View file @
fe41d5ac
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.esv.datacenter.iot.module.devicemodel.dao.DeviceTypeDao"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.esv.datacenter.iot.module.devicemodel.entity.DeviceTypeEntity"
id=
"deviceTypeMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"tenantId"
column=
"tenant_id"
/>
<result
property=
"departmentId"
column=
"department_id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"description"
column=
"description"
/>
<result
property=
"deleted"
column=
"deleted"
/>
<result
property=
"createUser"
column=
"create_user"
/>
<result
property=
"updateUser"
column=
"update_user"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
</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