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
ddfd8ce4
Commit
ddfd8ce4
authored
Sep 05, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
社区机器人接口 1
parent
7337a044
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
298 additions
and
46 deletions
+298
-46
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCActivityTools.java
...om/ikonke/konkeaialibabamcp/aitools/CDCActivityTools.java
+14
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCPropertyTools.java
...om/ikonke/konkeaialibabamcp/aitools/CDCPropertyTools.java
+31
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCRobotTools.java
...a/com/ikonke/konkeaialibabamcp/aitools/CDCRobotTools.java
+42
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCVisitorTools.java
...com/ikonke/konkeaialibabamcp/aitools/CDCVisitorTools.java
+13
-0
src/main/java/com/ikonke/konkeaialibabamcp/aitools/SceneRecommendTools.java
...ikonke/konkeaialibabamcp/aitools/SceneRecommendTools.java
+0
-21
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
...om/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
+9
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/property/Property.java
...onke/konkeaialibabamcp/service/cdc/property/Property.java
+45
-0
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/robot/CommunityRobot.java
...e/konkeaialibabamcp/service/cdc/robot/CommunityRobot.java
+62
-0
src/main/resources/application-prod.yml
src/main/resources/application-prod.yml
+1
-11
src/main/resources/application-test.yml
src/main/resources/application-test.yml
+0
-11
src/main/resources/application.yml
src/main/resources/application.yml
+17
-2
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
.../konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
+63
-0
提示词.md
提示词.md
+1
-1
No files found.
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCActivityTools.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.aitools
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* 智能社区活动相关
*/
@Slf4j
@Service
public
class
CDCActivityTools
{
}
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCPropertyTools.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.aitools
;
import
com.ikonke.konkeaialibabamcp.service.cdc.property.Property
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.ai.tool.annotation.Tool
;
import
org.springframework.ai.tool.annotation.ToolParam
;
import
org.springframework.stereotype.Service
;
/**
* 物业相关
*/
@Slf4j
@Service
public
class
CDCPropertyTools
{
private
final
Property
property
;
public
CDCPropertyTools
(
Property
property
)
{
this
.
property
=
property
;
}
@Tool
(
description
=
"社区物业相关:新增物业工单"
)
public
String
addWorkOrder
(
@ToolParam
(
description
=
"设备的sn号,如:00226DA86A12"
)
String
sn
,
@ToolParam
(
description
=
"工单描述,如:3楼楼道的灯坏了,维修一下。"
)
String
description
){
log
.
info
(
"mcp调用--->社区物业相关:新增物业工单:sn:{},description:{}"
,
sn
,
description
);
return
property
.
addWorkOrder
(
sn
,
description
);
}
}
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCRobotTools.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.aitools
;
import
com.ikonke.konkeaialibabamcp.service.cdc.robot.CommunityRobot
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.ai.tool.annotation.Tool
;
import
org.springframework.ai.tool.annotation.ToolParam
;
import
org.springframework.stereotype.Service
;
/**
* 机器人相关
*/
@Slf4j
@Service
public
class
CDCRobotTools
{
private
final
CommunityRobot
robot
;
public
CDCRobotTools
(
CommunityRobot
robot
)
{
this
.
robot
=
robot
;
}
/**
* 预约垃圾机器人
*
*/
@Tool
(
description
=
"社区机器人相关:预约垃圾回收机器人:垃圾回收机器人上门回收垃圾"
)
public
String
bookingLitterRobot
(
@ToolParam
(
description
=
"设备的sn号,如:00226DA86A12"
)
String
sn
){
log
.
info
(
"mcp调用--->预约垃圾机器人:垃圾代收下单:sn:{}"
,
sn
);
return
robot
.
bookingLitterRobot
(
sn
);
}
/**
* 预约配送机器人
*/
@Tool
(
description
=
"社区机器人相关:预约配送机器人:配送机器人上门取件配送"
)
public
String
bookingDeliveryRobot
(
@ToolParam
(
description
=
"设备的sn号,如:00226DA86A12"
)
String
sn
){
log
.
info
(
"mcp调用--->预约配送机器人:机器人配送下单:sn:{}"
,
sn
);
return
robot
.
bookingDeliveryRobot
(
sn
);
}
}
src/main/java/com/ikonke/konkeaialibabamcp/aitools/CDCVisitorTools.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.aitools
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* 访客相关
*/
@Slf4j
@Service
public
class
CDCVisitorTools
{
}
src/main/java/com/ikonke/konkeaialibabamcp/aitools/SceneRecommendTools.java
deleted
100644 → 0
View file @
7337a044
//package com.ikonke.konkeaialibabamcp.aitools;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Service;
//
//@Slf4j
//@Service
//public class SceneRecommendTools {
//
// private final RedisTemplate<String, Object> redisTemplate;
//
// public SceneRecommendTools(RedisTemplate<String, Object> redisTemplate) {
// this.redisTemplate = redisTemplate;
// }
//
//
// //删除场景,会定时删除Redis中的临时场景
//
// //保存场景,将Redis中的临时场景删除即可
//}
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
View file @
ddfd8ce4
...
@@ -27,6 +27,13 @@ public class CdcHttpUtils {
...
@@ -27,6 +27,13 @@ public class CdcHttpUtils {
@Autowired
@Autowired
private
ICDCTokenService
tokenService
;
private
ICDCTokenService
tokenService
;
public
UserEntity
getOwner
(
String
sn
){
CDCToken
bySn
=
tokenService
.
findBySn
(
sn
);
return
getOwner
(
bySn
);
}
/**
/**
* 获取用户信息
* 获取用户信息
*
*
...
@@ -71,6 +78,7 @@ public class CdcHttpUtils {
...
@@ -71,6 +78,7 @@ public class CdcHttpUtils {
.
header
(
"gateway"
,
sn
)
.
header
(
"gateway"
,
sn
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
header
(
"Propertyid"
,
userEntity
.
communityId
)
.
timeout
(
20000
)
//超时,毫秒
.
timeout
(
20000
)
//超时,毫秒
.
execute
().
body
();
.
execute
().
body
();
log
.
info
(
"建发get请求结果:url:{},sn:{},body:{},耗时:{}"
,
url
,
sn
,
body
,
System
.
currentTimeMillis
()-
start
);
log
.
info
(
"建发get请求结果:url:{},sn:{},body:{},耗时:{}"
,
url
,
sn
,
body
,
System
.
currentTimeMillis
()-
start
);
...
@@ -91,6 +99,7 @@ public class CdcHttpUtils {
...
@@ -91,6 +99,7 @@ public class CdcHttpUtils {
.
header
(
"gateway"
,
sn
)
.
header
(
"gateway"
,
sn
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"roomId"
,
userEntity
.
roomInfo
.
roomId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
header
(
"easId"
,
userEntity
.
easId
)
.
header
(
"Propertyid"
,
userEntity
.
communityId
)
.
body
(
body
)
.
body
(
body
)
.
timeout
(
20000
)
.
timeout
(
20000
)
.
execute
().
body
();
.
execute
().
body
();
...
...
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/property/Property.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.service.cdc.property
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ikonke.konkeaialibabamcp.entity.cdc.UserEntity
;
import
com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
Property
{
@Value
(
"${cdc.property.addWorkOrder}"
)
private
String
addWorkOrderUrl
;
@Autowired
private
CdcHttpUtils
cdcHttpUtils
;
/**
* 添加物业工单
*/
public
String
addWorkOrder
(
String
sn
,
String
description
){
UserEntity
userEntity
=
cdcHttpUtils
.
getOwner
(
sn
);
JSONObject
body
=
new
JSONObject
();
body
.
set
(
"communityId"
,
userEntity
.
getCommunityId
());
body
.
set
(
"serviceName"
,);
body
.
set
(
"serviceSubType"
,);
body
.
set
(
"description"
,
description
);
String
post
=
cdcHttpUtils
.
post
(
addWorkOrderUrl
,
sn
,
body
.
toString
());
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
post
);
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
return
"预约工单成功"
;
}
else
{
log
.
error
(
"bookingLitterRobotUrl error:{}"
,
jsonObject
.
getStr
(
"msg"
));
return
"预约工单失败"
;
}
}
}
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/robot/CommunityRobot.java
0 → 100644
View file @
ddfd8ce4
package
com.ikonke.konkeaialibabamcp.service.cdc.robot
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ikonke.konkeaialibabamcp.entity.cdc.UserEntity
;
import
com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
CommunityRobot
{
@Value
(
"${cdc.robot.bookingLitterRobot}"
)
private
String
bookingLitterRobotUrl
;
@Value
(
"${cdc.robot.bookingDeliveryRobot}"
)
private
String
bookingDeliveryRobotUrl
;
@Autowired
private
CdcHttpUtils
cdcHttpUtils
;
public
String
bookingLitterRobot
(
String
sn
){
UserEntity
userEntity
=
cdcHttpUtils
.
getOwner
(
sn
);
JSONObject
body
=
new
JSONObject
();
body
.
set
(
"buildingId"
,
userEntity
.
getOwnerRoom
().
getBuildingId
());
body
.
set
(
"roomId"
,
userEntity
.
getOwnerRoom
().
getRoomId
();
String
post
=
cdcHttpUtils
.
post
(
bookingLitterRobotUrl
,
sn
,
body
.
toString
());
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
post
);
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
return
"预约垃圾回收机器人成功"
;
}
else
{
log
.
error
(
"bookingLitterRobotUrl error:{}"
,
jsonObject
.
getStr
(
"msg"
));
return
"预约垃圾回收机器人失败"
;
}
}
public
String
bookingDeliveryRobot
(
String
sn
){
UserEntity
userEntity
=
cdcHttpUtils
.
getOwner
(
sn
);
JSONObject
body
=
new
JSONObject
();
body
.
set
();
body
.
set
();
body
.
set
();
body
.
set
();
body
.
set
();
String
post
=
cdcHttpUtils
.
post
(
bookingDeliveryRobotUrl
,
sn
,
body
.
toString
());
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
post
);
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
return
"预约配送机器人成功"
;
}
else
{
log
.
error
(
"bookingDeliveryRobotUrl error:{}"
,
jsonObject
.
getStr
(
"msg"
));
return
"预约配送机器人失败"
;
}
}
}
src/main/resources/application-prod.yml
View file @
ddfd8ce4
...
@@ -52,14 +52,4 @@ konke:
...
@@ -52,14 +52,4 @@ konke:
cdc
:
cdc
:
timeout
:
20000
timeout
:
20000
url
:
http://community.jfzhtest.com/prod-api
url
:
http://community.jfzhtest.com/prod-api
getOwnerUrl
:
${cdc.url}/system/screen/owner/info
getListSpacesRoomUrl
:
${cdc.url}/third/screen/spaces/rooms
getSpacesRoomDetailUrl
:
${cdc.url}/third/screen/spaces/room/
getSpacesRoomBookingUrl
:
${cdc.url}/third/screen/spaces/room/times
bookingSpacesRoomUrl
:
${cdc.url}/third/mini/record
spacesRoomOrderUrl
:
${cdc.url}/third/screen/spaces/order/submit
spacesCoupons
:
getSpacesCouponsListUrl
:
${cdc.url}/third/screen/spaces/coupons/all
receiveSpacesCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/
getUserCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/user
oneClickClaimCouponUrl
:
${cdc.url}/third/screen/spaces/coupons/once
src/main/resources/application-test.yml
View file @
ddfd8ce4
...
@@ -49,14 +49,3 @@ konke:
...
@@ -49,14 +49,3 @@ konke:
cdc
:
cdc
:
timeout
:
20000
timeout
:
20000
url
:
http://community.jfzhtest.com/prod-api
url
:
http://community.jfzhtest.com/prod-api
getOwnerUrl
:
${cdc.url}/system/screen/owner/info
getListSpacesRoomUrl
:
${cdc.url}/third/screen/spaces/rooms
getSpacesRoomDetailUrl
:
${cdc.url}/third/screen/spaces/room/
getSpacesRoomBookingUrl
:
${cdc.url}/third/screen/spaces/room/times
bookingSpacesRoomUrl
:
${cdc.url}/third/mini/record
spacesRoomOrderUrl
:
${cdc.url}/third/screen/spaces/order/submit
spacesCoupons
:
getSpacesCouponsListUrl
:
${cdc.url}/third/screen/spaces/coupons/all
receiveSpacesCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/
getUserCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/user
oneClickClaimCouponUrl
:
${cdc.url}/third/screen/spaces/coupons/once
src/main/resources/application.yml
View file @
ddfd8ce4
...
@@ -20,5 +20,20 @@ spring:
...
@@ -20,5 +20,20 @@ spring:
completion
:
true
completion
:
true
enabled
:
true
enabled
:
true
cdc
:
getOwnerUrl
:
${cdc.url}/system/screen/owner/info
getListSpacesRoomUrl
:
${cdc.url}/third/screen/spaces/rooms
getSpacesRoomDetailUrl
:
${cdc.url}/third/screen/spaces/room/
getSpacesRoomBookingUrl
:
${cdc.url}/third/screen/spaces/room/times
bookingSpacesRoomUrl
:
${cdc.url}/third/mini/record
spacesRoomOrderUrl
:
${cdc.url}/third/screen/spaces/order/submit
spacesCoupons
:
getSpacesCouponsListUrl
:
${cdc.url}/third/screen/spaces/coupons/all
receiveSpacesCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/
getUserCouponsUrl
:
${cdc.url}/third/screen/spaces/coupons/user
oneClickClaimCouponUrl
:
${cdc.url}/third/screen/spaces/coupons/once
robot
:
bookingLitterRobot
:
${cdc.url}/robot/order/gc
bookingDeliveryRobot
:
${cdc.url}/v1/robotDeliveryOrder
property
:
addWorkOrder
:
${cdc.url}/pms/workOrder/mcp/add
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
View file @
ddfd8ce4
...
@@ -12,7 +12,11 @@ import org.junit.jupiter.api.Test;
...
@@ -12,7 +12,11 @@ import org.junit.jupiter.api.Test;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CountDownLatch
;
@SpringBootTest
@SpringBootTest
class
KonkeAiAlibabaMcpApplicationTests
{
class
KonkeAiAlibabaMcpApplicationTests
{
...
@@ -25,6 +29,65 @@ class KonkeAiAlibabaMcpApplicationTests {
...
@@ -25,6 +29,65 @@ class KonkeAiAlibabaMcpApplicationTests {
public
static
String
roomId
=
"123309ac482d469c8608ce95e51da65a"
;
public
static
String
roomId
=
"123309ac482d469c8608ce95e51da65a"
;
public
static
String
subspaceId
=
null
;
public
static
String
subspaceId
=
null
;
// @Test
// void testThread(){
// int threadCount = 60;
// CountDownLatch latch = new CountDownLatch(threadCount);
//
// for (int i = 0; i < threadCount; i++) {
// int finalI = i;
// Thread thread = new Thread(() -> {
// try {
// long begin = System.currentTimeMillis();
// String url = "172.17.12.12:9998/dify/chatSteamMessages?query=小明一天能赚325,那么"+ finalI +"天能赚多少钱?";
// String ccuName = "CCU_32142"+ finalI;
// String sn = "00226DA86AD"+ finalI;
// String token = "11A"+ finalI;
// String result2 = HttpRequest.get(url)
// .header("ccuName", ccuName)//头信息,多个头信息多次调用此方法即可
// .header("sn", sn)
// .header("token", token)
// .timeout(2000000)//超时,毫秒
// .execute().body();
// System.out.println(finalI +"------->"+result2);
// System.out.println(finalI +"------->耗时:"+(System.currentTimeMillis()-begin));
// }finally {
// latch.countDown();
// }
// });
// thread.start();
// }
//
// try {
// // 等待所有线程执行完成
// latch.await();
// System.out.println("所有线程执行完成");
// } catch (InterruptedException e) {
// Thread.currentThread().interrupt();
// e.printStackTrace();
// }
// }
// @Test
// void test(){
// for(int i = 0; i < 1; i++){
// long begin = System.currentTimeMillis();
// String url = "172.17.12.12:9998/dify/chatSteamMessages?query=324252加"+i+"等于几";
// String ccuName = "CCU_32142"+i;
// String sn = "00226DA86AD"+i;
// String token = "11A"+i;
// String result2 = HttpRequest.get(url)
// .header("ccuName", ccuName)//头信息,多个头信息多次调用此方法即可
// .header("sn", sn)
// .header("token", token)
// .timeout(20000)//超时,毫秒
// .execute().body();
// System.out.println(i+"------->"+result2);
// System.out.println(i+"------->耗时:"+(System.currentTimeMillis()-begin));
// }
// }
@Test
@Test
void
contextLoads
()
{
void
contextLoads
()
{
// JSONObject appointmentTimeByRoomId = spacesService.getAppointmentTimeByRoomId(sn, date, roomId, subspaceId);
// JSONObject appointmentTimeByRoomId = spacesService.getAppointmentTimeByRoomId(sn, date, roomId, subspaceId);
...
...
提示词.md
View file @
ddfd8ce4
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
```
```
-
执行设备操作必须调用mcp函数:optDeviceOpen、optDeviceClosed、setBrightness、setColourTemperature、setColor、setPause、setMove、setDelayedShutdown、setTemperature、setModel、setSpeed
-
执行设备操作必须调用mcp函数:optDeviceOpen、optDeviceClosed、setBrightness、setColourTemperature、setColor、setPause、setMove、setDelayedShutdown、setTemperature、setModel、setSpeed
-
开、关、亮度、色温、颜色、暂停、移动、温度、模式、速度
# 设备控制
# 设备控制
...
...
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