Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
konke-ai-alibaba-mcp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何金镒
konke-ai-alibaba-mcp
Commits
96dc50cb
Commit
96dc50cb
authored
Aug 29, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
场景 5
parent
c81527b3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
48 additions
and
2 deletions
+48
-2
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
...ava/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
+1
-1
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/TemporarySceneMapper.java
.../konkeaialibabamcp/mapper/mysql/TemporarySceneMapper.java
+13
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ITemporarySceneService.java
...ibabamcp/service/mysqlservice/ITemporarySceneService.java
+6
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/ITemporarySceneServiceImpl.java
...service/mysqlservice/impl/ITemporarySceneServiceImpl.java
+12
-1
src/main/java/com/ikonke/konkeaialibabamcp/timedtasks/TemporarySceneTask.java
...onke/konkeaialibabamcp/timedtasks/TemporarySceneTask.java
+13
-0
src/main/java/com/ikonke/konkeaialibabamcp/utils/KonkeIotUtils.java
...ava/com/ikonke/konkeaialibabamcp/utils/KonkeIotUtils.java
+3
-0
No files found.
src/main/java/com/ikonke/konkeaialibabamcp/aitools/DeviceTools.java
View file @
96dc50cb
...
@@ -98,7 +98,7 @@ public class DeviceTools {
...
@@ -98,7 +98,7 @@ public class DeviceTools {
public
String
setDelayedShutdown
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
public
String
setDelayedShutdown
(
@ToolParam
(
description
=
"主机号"
)
String
ccuName
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备ID"
)
String
devId
,
@ToolParam
(
description
=
"设备类型ID"
)
String
typeId
,
@ToolParam
(
description
=
"设备类型ID"
)
String
typeId
,
@ToolParam
(
description
=
"多少分钟后关机,范围
1-1440
"
)
int
delayTime
){
@ToolParam
(
description
=
"多少分钟后关机,范围
30-1440,必须是30的倍数,最小是半小时
"
)
int
delayTime
){
log
.
info
(
"mcp调用--->根据主机号和设备ID控制设备延时关机....ccuName:{},devId:{},type:{},delayTime:{}"
,
ccuName
,
devId
,
typeId
,
delayTime
);
log
.
info
(
"mcp调用--->根据主机号和设备ID控制设备延时关机....ccuName:{},devId:{},type:{},delayTime:{}"
,
ccuName
,
devId
,
typeId
,
delayTime
);
return
konkeIotServer
.
setDelayedShutdown
(
CcuUtils
.
getCcuName
(
ccuName
),
devId
,
typeId
,
delayTime
);
return
konkeIotServer
.
setDelayedShutdown
(
CcuUtils
.
getCcuName
(
ccuName
),
devId
,
typeId
,
delayTime
);
}
}
...
...
src/main/java/com/ikonke/konkeaialibabamcp/mapper/mysql/TemporarySceneMapper.java
View file @
96dc50cb
...
@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...
@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
org.apache.ibatis.annotations.Delete
;
import
org.apache.ibatis.annotations.Delete
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
@Mapper
@Mapper
public
interface
TemporarySceneMapper
extends
BaseMapper
<
TemporaryScene
>
{
public
interface
TemporarySceneMapper
extends
BaseMapper
<
TemporaryScene
>
{
...
@@ -11,4 +14,14 @@ public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> {
...
@@ -11,4 +14,14 @@ public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> {
@Delete
(
"DELETE t1 FROM temporary_scene t1 INNER JOIN temporary_scene t2 WHERE t1.ccuId = t2.ccuId AND ( t1.createTime < t2.createTime OR ( t1.createTime = t2.createTime AND t1.id < t2.id ) )"
)
@Delete
(
"DELETE t1 FROM temporary_scene t1 INNER JOIN temporary_scene t2 WHERE t1.ccuId = t2.ccuId AND ( t1.createTime < t2.createTime OR ( t1.createTime = t2.createTime AND t1.id < t2.id ) )"
)
int
delByCreateTime
();
int
delByCreateTime
();
/**
* 如果用户自己保存,会将这条数据删除,若没删除,说明用户没有说保存,那么就需要删除,且要把主机中的数据也删除
* @return
*/
@Delete
(
"DELETE FROM temporary_scene WHERE createTime < DATE_SUB(NOW(), INTERVAL 1 HOUR)"
)
int
delOld
();
@Select
(
"SELECT * FROM temporary_scene WHERE createTime < DATE_SUB(NOW(), INTERVAL 1 HOUR)"
)
List
<
TemporaryScene
>
queryOld
();
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/ITemporarySceneService.java
View file @
96dc50cb
...
@@ -3,7 +3,13 @@ package com.ikonke.konkeaialibabamcp.service.mysqlservice;
...
@@ -3,7 +3,13 @@ package com.ikonke.konkeaialibabamcp.service.mysqlservice;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
java.util.List
;
public
interface
ITemporarySceneService
extends
IService
<
TemporaryScene
>
{
public
interface
ITemporarySceneService
extends
IService
<
TemporaryScene
>
{
int
delByCreateTime
();
int
delByCreateTime
();
int
delOld
();
List
<
TemporaryScene
>
queryOld
();
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/mysqlservice/impl/ITemporarySceneServiceImpl.java
View file @
96dc50cb
package
com.ikonke.konkeaialibabamcp.service.mysqlservice.impl
;
package
com.ikonke.konkeaialibabamcp.service.mysqlservice.impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
com.ikonke.konkeaialibabamcp.mapper.mysql.TemporarySceneMapper
;
import
com.ikonke.konkeaialibabamcp.mapper.mysql.TemporarySceneMapper
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService
;
...
@@ -9,6 +8,7 @@ import org.springframework.stereotype.Service;
...
@@ -9,6 +8,7 @@ import org.springframework.stereotype.Service;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
public
class
ITemporarySceneServiceImpl
extends
ServiceImpl
<
TemporarySceneMapper
,
TemporaryScene
>
implements
ITemporarySceneService
{
public
class
ITemporarySceneServiceImpl
extends
ServiceImpl
<
TemporarySceneMapper
,
TemporaryScene
>
implements
ITemporarySceneService
{
...
@@ -16,4 +16,15 @@ public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper
...
@@ -16,4 +16,15 @@ public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper
public
int
delByCreateTime
()
{
public
int
delByCreateTime
()
{
return
baseMapper
.
delByCreateTime
();
return
baseMapper
.
delByCreateTime
();
}
}
@Override
public
int
delOld
()
{
return
baseMapper
.
delOld
();
}
@Override
public
List
<
TemporaryScene
>
queryOld
(){
return
baseMapper
.
queryOld
();
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/timedtasks/TemporarySceneTask.java
View file @
96dc50cb
package
com.ikonke.konkeaialibabamcp.timedtasks
;
package
com.ikonke.konkeaialibabamcp.timedtasks
;
import
com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService
;
import
com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService
;
import
com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils
;
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.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Slf4j
@Slf4j
@Component
@Component
...
@@ -15,6 +19,8 @@ public class TemporarySceneTask {
...
@@ -15,6 +19,8 @@ public class TemporarySceneTask {
@Autowired
@Autowired
private
ITemporarySceneService
temporarySceneService
;
private
ITemporarySceneService
temporarySceneService
;
@Autowired
private
KonkeIotUtils
konkeIotServer
;
/**
/**
* 每5分钟再执行一次该定时器。
* 每5分钟再执行一次该定时器。
...
@@ -23,6 +29,13 @@ public class TemporarySceneTask {
...
@@ -23,6 +29,13 @@ public class TemporarySceneTask {
public
void
task
()
{
public
void
task
()
{
log
.
info
(
"开始定时任务:删除数据库中的旧的临时任务"
);
log
.
info
(
"开始定时任务:删除数据库中的旧的临时任务"
);
int
i
=
temporarySceneService
.
delByCreateTime
();
int
i
=
temporarySceneService
.
delByCreateTime
();
List
<
TemporaryScene
>
temporaryScenes
=
temporarySceneService
.
queryOld
();
if
(!
temporaryScenes
.
isEmpty
()){
for
(
TemporaryScene
scene
:
temporaryScenes
){
konkeIotServer
.
delScene
(
"自动删除一小时以上的"
,
scene
.
getCcuId
(),
scene
.
getTemporarySceneId
());
}
}
log
.
info
(
"结束定时任务:删除数据库中的旧的临时任务数量"
+
i
);
log
.
info
(
"结束定时任务:删除数据库中的旧的临时任务数量"
+
i
);
}
}
...
...
src/main/java/com/ikonke/konkeaialibabamcp/utils/KonkeIotUtils.java
View file @
96dc50cb
...
@@ -313,6 +313,9 @@ public class KonkeIotUtils {
...
@@ -313,6 +313,9 @@ public class KonkeIotUtils {
if
(
StrUtil
.
isBlank
(
ccuName
)
||
StrUtil
.
isBlank
(
devId
)
||
StrUtil
.
isBlank
(
operateId
)
||
(
delayTime
<
0
||
delayTime
>
24
*
60
)){
if
(
StrUtil
.
isBlank
(
ccuName
)
||
StrUtil
.
isBlank
(
devId
)
||
StrUtil
.
isBlank
(
operateId
)
||
(
delayTime
<
0
||
delayTime
>
24
*
60
)){
throw
new
StatefulException
(-
20
,
"参数不能为空"
);
throw
new
StatefulException
(-
20
,
"参数不能为空"
);
}
}
if
(
delayTime
%
30
!=
0
){
throw
new
StatefulException
(-
31
,
"延时时间只能是30的倍数"
);
}
if
(
getDeviceOnline
(
ccuName
,
devId
))
{
if
(
getDeviceOnline
(
ccuName
,
devId
))
{
throw
new
StatefulException
(-
30
,
"设备已离线"
);
throw
new
StatefulException
(-
30
,
"设备已离线"
);
}
}
...
...
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