Commit ddfd8ce4 authored by 何金镒's avatar 何金镒

社区机器人接口 1

parent 7337a044
package com.ikonke.konkeaialibabamcp.aitools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 智能社区活动相关
*/
@Slf4j
@Service
public class CDCActivityTools {
}
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);
}
}
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);
}
}
package com.ikonke.konkeaialibabamcp.aitools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 访客相关
*/
@Slf4j
@Service
public class CDCVisitorTools {
}
//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中的临时场景删除即可
//}
......@@ -27,6 +27,13 @@ public class CdcHttpUtils {
@Autowired
private ICDCTokenService tokenService;
public UserEntity getOwner(String sn){
CDCToken bySn = tokenService.findBySn(sn);
return getOwner(bySn);
}
/**
* 获取用户信息
*
......@@ -71,6 +78,7 @@ public class CdcHttpUtils {
.header("gateway",sn)
.header("roomId",userEntity.roomInfo.roomId)
.header("easId",userEntity.easId)
.header("Propertyid",userEntity.communityId)
.timeout(20000)//超时,毫秒
.execute().body();
log.info("建发get请求结果:url:{},sn:{},body:{},耗时:{}",url, sn,body,System.currentTimeMillis()-start);
......@@ -91,6 +99,7 @@ public class CdcHttpUtils {
.header("gateway",sn)
.header("roomId",userEntity.roomInfo.roomId)
.header("easId",userEntity.easId)
.header("Propertyid",userEntity.communityId)
.body(body)
.timeout(20000)
.execute().body();
......
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 "预约工单失败";
}
}
}
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 "预约配送机器人失败";
}
}
}
......@@ -52,14 +52,4 @@ konke:
cdc:
timeout: 20000
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
......@@ -49,14 +49,3 @@ konke:
cdc:
timeout: 20000
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
......@@ -20,5 +20,20 @@ spring:
completion: 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
......@@ -12,7 +12,11 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
@SpringBootTest
class KonkeAiAlibabaMcpApplicationTests {
......@@ -25,6 +29,65 @@ class KonkeAiAlibabaMcpApplicationTests {
public static String roomId = "123309ac482d469c8608ce95e51da65a";
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
void contextLoads() {
// JSONObject appointmentTimeByRoomId = spacesService.getAppointmentTimeByRoomId(sn, date, roomId, subspaceId);
......
......@@ -22,7 +22,7 @@
```
- 执行设备操作必须调用mcp函数:optDeviceOpen、optDeviceClosed、setBrightness、setColourTemperature、setColor、setPause、setMove、setDelayedShutdown、setTemperature、setModel、setSpeed
- 开、关、亮度、色温、颜色、暂停、移动、温度、模式、速度
# 设备控制
......
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