This commit is contained in:
herui 2025-06-27 21:37:07 +08:00
commit da342b41f9

View File

@ -193,6 +193,78 @@ public class CrmMcpService {
return executeRequest("ai/query/listOrdersByContractCode", requestBody);
}
@Tool(description = "根据订单编码、客户编码或客户名称查询出库单编码列表(支持时间区间)")
public String listStockoutsByCondition(
@ToolParam(description = "订单编码(即订单号),值一般是由字母、数字和'-'组成,特征一般类似于'NJ00027202506090001',或'NJ00027202506090001-G'或'NJ00027202506090001-T-1',或'dev-NJ00027202506090001'", required = false) String orderCode,
@ToolParam(description = "客户编码,一般类似于'XX.XX.XXXX.XXX'格式例如01.01.0023.024", required = false) String clientCode,
@ToolParam(description = "客户名称,一般类似于'某某课题组'或'某某公司'或'某某实验室'或'某某经营部'或'某某研究院'或'某某研究所'或'某某测试'等组织例如张三课题组广州小懒科技有限公司金域测试、金域课题组111、玉尘测试A01、睿展小组3号", required = false) String clientName,
@ToolParam(description = "开始时间,一般类似于'yyyy-MM-dd HH:mm:ss'格式例如2024-01-01 00:00:00。非必填", required = false) String startTime,
@ToolParam(description = "结束时间,一般类似于'yyyy-MM-dd HH:mm:ss'格式例如2024-01-01 00:00:00。非必填", required = false) String endTime
) {
JSONObject requestBody = new JSONObject();
requestBody.put("orderCode", orderCode);
requestBody.put("clientCode", clientCode);
requestBody.put("clientName", clientName);
requestBody.put("startTime", startTime);
requestBody.put("endTime", endTime);
return executeRequest("ai/query/listStockoutsByCondition", requestBody);
}
@Tool(description = "根据订单编码、客户编码或客户名称查询退货单编码列表(支持时间区间)")
public String listCancelOrdersByCondition(
@ToolParam(description = "订单编码(即订单号),值一般是由字母、数字和'-'组成,特征一般类似于'NJ00027202506090001',或'NJ00027202506090001-G'或'NJ00027202506090001-T-1',或'dev-NJ00027202506090001'", required = false) String orderCode,
@ToolParam(description = "客户编码,一般类似于'XX.XX.XXXX.XXX'格式例如01.01.0023.024", required = false) String clientCode,
@ToolParam(description = "客户名称,一般类似于'某某课题组'或'某某公司'或'某某实验室'或'某某经营部'或'某某研究院'或'某某研究所'或'某某测试'等组织例如张三课题组广州小懒科技有限公司金域测试、金域课题组111、玉尘测试A01、睿展小组3号", required = false) String clientName,
@ToolParam(description = "开始时间,一般类似于'yyyy-MM-dd HH:mm:ss'格式例如2024-01-01 00:00:00。非必填", required = false) String startTime,
@ToolParam(description = "结束时间,一般类似于'yyyy-MM-dd HH:mm:ss'格式例如2024-01-01 00:00:00。非必填", required = false) String endTime
) {
JSONObject requestBody = new JSONObject();
requestBody.put("orderCode", orderCode);
requestBody.put("clientCode", clientCode);
requestBody.put("clientName", clientName);
requestBody.put("startTime", startTime);
requestBody.put("endTime", endTime);
return executeRequest("ai/query/listCancelOrdersByCondition", requestBody);
}
@Tool(description = "根据出库单编码查询出库单详情。stockoutCode是必填项如果提取不到则输出请告知需要查询的出库单编码")
public String getStockoutDetail(
@ToolParam(description = "出库单编码,值一般是由字母、数字和'-'组成的出库单标识符") String stockoutCode
) {
Assert.isTrue(StrUtil.isNotEmpty(stockoutCode), "出库单编码不能为空");
JSONObject requestBody = new JSONObject();
requestBody.put("outCode", stockoutCode);
return executeRequest("ai/query/getStockoutDetail", requestBody);
}
@Tool(description = "根据退货单编码查询退货单详情。cancelOrderCode是必填项如果提取不到则输出请告知需要查询的退货单编码")
public String getCancelOrderDetail(
@ToolParam(description = "退货单编码,值一般是由字母、数字和'-'组成的退货单标识符") String cancelOrderCode
) {
Assert.isTrue(StrUtil.isNotEmpty(cancelOrderCode), "退货单编码不能为空");
JSONObject requestBody = new JSONObject();
requestBody.put("cancelCode", cancelOrderCode);
return executeRequest("ai/query/getCancelOrderDetail", requestBody);
}
@Tool(description = "根据合同编码查询合同详情。contractCode是必填项如果提取不到则输出请告知需要查询的合同编码")
public String getContractDetail(
@ToolParam(description = "合同编码,值一般是由字母、数字和'-'组成的合同标识符") String contractCode
) {
Assert.isTrue(StrUtil.isNotEmpty(contractCode), "合同编码不能为空");
JSONObject requestBody = new JSONObject();
requestBody.put("conCode", contractCode);
return executeRequest("ai/query/getContractDetail", requestBody);
}
@Tool(description = "调用此函数以获取当前准确时间(包括日期和时区),用于代替模型默认推理")
public String getCurrentTime() {
return DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");