diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java
index f240de8..812c364 100644
--- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java
+++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java
@@ -1,5 +1,6 @@
package org.dromara.common.sdk.mqtt.property;
+import org.dromara.common.sdk.mqtt.CommonTopicResponse;
import org.dromara.common.sdk.mqtt.MegaphoneTopicRequest;
import org.dromara.common.sdk.mqtt.MqttGatewayPublish;
import org.dromara.common.sdk.mqtt.TopicConst;
@@ -39,9 +40,9 @@ public class PropertySetPublish {
}
- public PropertySetReplyResultEnum publishPlayText(String topic, Object data, String method) {
+ public CommonTopicResponse publishPlayText(String topic, Object data, String method) {
return gatewayPublish.publishPlayTextWithReply(
- PropertySetReplyResultEnum.class, topic, new MegaphoneTopicRequest<>()
+ CommonTopicResponse.class, topic, new MegaphoneTopicRequest<>()
.setTid(UUID.randomUUID().toString())
.setBid(null)
.setMethod(method)
diff --git a/dk-common/common-web/pom.xml b/dk-common/common-web/pom.xml
index 8a05503..caeff9b 100644
--- a/dk-common/common-web/pom.xml
+++ b/dk-common/common-web/pom.xml
@@ -51,6 +51,12 @@
true
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
net.dreamlu
mica-metrics
diff --git a/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java b/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java
index f40808f..a302459 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java
@@ -5,6 +5,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
+import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* @auther yq
@@ -12,6 +13,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
*/
@EnableDubbo
@SpringBootApplication()
+@EnableFeignClients
public class BusinessApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(BusinessApplication.class);
diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java
index 0518986..841a2a8 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java
@@ -108,6 +108,12 @@ public class BusinessTaskController extends BaseController {
}
+ @Log(title = "预约工单更新", businessType = BusinessType.UPDATE)
+ @PostMapping("/update/status")
+ public void updateTaskStatus(@RequestParam("waylineId") String waylineId,@RequestParam("status") String status,
+ @RequestParam("jobId")String jobId,@RequestParam("jobName") String jobName) {
+ businessTaskService.updateTaskStatus(waylineId,status,jobId,jobName);
+ }
}
diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java
index 2d93025..22d5cc0 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java
@@ -72,4 +72,5 @@ public interface IBusinessTaskService {
BusinessTaskVo queryBusinessTask(String waylineId);
+ void updateTaskStatus(String waylineId, String status, String jobId, String jobName);
}
diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java
index c53435e..894b93e 100644
--- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java
+++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java
@@ -8,6 +8,7 @@ import org.dromara.business.domain.bo.BusinessTaskBo;
import org.dromara.business.domain.vo.BusinessTaskVo;
import org.dromara.business.mapper.BusinessTaskMapper;
import org.dromara.business.service.IBusinessTaskService;
+import org.dromara.common.core.constant.BusinessConstants;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -156,4 +157,20 @@ public class BusinessTaskServiceImpl implements IBusinessTaskService {
public BusinessTaskVo queryBusinessTask(String waylineId) {
return baseMapper.queryBusinessTask(waylineId);
}
+
+ @Override
+ public void updateTaskStatus(String waylineId, String status, String jobId, String jobName) {
+ BusinessTaskVo businessTaskVo = this.queryBusinessTask(waylineId);
+ if(businessTaskVo != null){
+ BusinessTask businessTask = new BusinessTask();
+ businessTask.setId(businessTaskVo.getId());
+ businessTask.setStatus(status);
+ if(BusinessConstants.TASK_STATUS_3.equals(status)){
+ businessTask.setJobId(jobId);
+ businessTask.setJobName(jobName);
+ businessTask.setCompleteTime(new Date());
+ }
+ this.update(businessTask);
+ }
+ }
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java b/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java
new file mode 100644
index 0000000..f06d5dd
--- /dev/null
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java
@@ -0,0 +1,13 @@
+package org.dromara.sample.fegin;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(name = "business")
+public interface RemoteBusinessTaskFeign {
+
+ @PostMapping("/update/status")
+ void updateTaskStatus(@RequestParam("waylineId") String waylineId, @RequestParam("status") String status,
+ @RequestParam("jobId")String jobId, @RequestParam("jobName") String jobName);
+}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java
index efe389f..08acb12 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java
@@ -10,16 +10,17 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.api.RemoteBusinessTaskService;
import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.sdk.cloudapi.wayline.WaylineMethodEnum;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.common.sdk.exception.CloudSDKErrorEnum;
-import org.dromara.common.sdk.mqtt.CommonTopicRequest;
-import org.dromara.common.sdk.mqtt.MegaphoneTopicRequest;
-import org.dromara.common.sdk.mqtt.MqttGatewayPublish;
-import org.dromara.common.sdk.mqtt.TopicConst;
+import org.dromara.common.sdk.mqtt.*;
import org.dromara.common.sdk.mqtt.property.PropertySetPublish;
import org.dromara.common.sdk.mqtt.property.PropertySetReplyResultEnum;
import org.dromara.common.sdk.mqtt.property.TopicPropertySetRequest;
+import org.dromara.common.sdk.mqtt.services.ServicesPublish;
+import org.dromara.common.sdk.mqtt.services.ServicesReplyReceiver;
+import org.dromara.common.sdk.mqtt.services.TopicServicesRequest;
import org.dromara.sample.manage.model.dto.*;
import org.dromara.sample.manage.service.IDeviceService;
import org.dromara.system.api.RemoteConfigService;
@@ -29,6 +30,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.*;
+import static org.dromara.common.sdk.mqtt.MqttGatewayPublish.DEFAULT_RETRY_COUNT;
+import static org.dromara.common.sdk.mqtt.MqttGatewayPublish.DEFAULT_RETRY_TIMEOUT;
+
/**
* @author sean.zhou
* @version 0.1
@@ -44,6 +48,9 @@ public class MegaphoneController {
@Resource
private MqttGatewayPublish gatewayPublish;
+ @Resource
+ private ServicesPublish servicesPublish;
+
@Resource
PropertySetPublish propertySetPublish;
@@ -61,10 +68,16 @@ public class MegaphoneController {
@RequestParam("gatewaySn") String gatewaySn,
@RequestBody PlayStartDTO param
) {
- String top = TOPIC+"gatewaySn"+"/services";
+ String top = TOPIC+gatewaySn+"/services";
//发送mqtt
- propertySetPublish.publishPlayText(top,param,"speaker_tts_play_start");
- return HttpResultResponse.success();
+ CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply(
+ ServicesReplyReceiver.class, top, new TopicServicesRequest<>()
+ .setTid(UUID.randomUUID().toString())
+ .setBid(null)
+ .setTimestamp(System.currentTimeMillis())
+ .setMethod("speaker_tts_play_start")
+ .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT);
+ return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse);
}
/**
@@ -80,8 +93,14 @@ public class MegaphoneController {
) {
String top = TOPIC+gatewaySn+"/services";
//发送mqtt
- propertySetPublish.publishPlayText(top,param,"speaker_replay");
- return HttpResultResponse.success();
+ CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply(
+ ServicesReplyReceiver.class, top, new TopicServicesRequest<>()
+ .setTid(UUID.randomUUID().toString())
+ .setBid(null)
+ .setTimestamp(System.currentTimeMillis())
+ .setMethod("speaker_replay")
+ .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT);
+ return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse);
}
/**
* 喊话器-暂停播放文档
@@ -96,8 +115,14 @@ public class MegaphoneController {
) {
String top = TOPIC+gatewaySn+"/services";
//发送mqtt
- propertySetPublish.publishPlayText(top,param,"speaker_play_stop");
- return HttpResultResponse.success();
+ CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply(
+ ServicesReplyReceiver.class, top, new TopicServicesRequest<>()
+ .setTid(UUID.randomUUID().toString())
+ .setBid(null)
+ .setTimestamp(System.currentTimeMillis())
+ .setMethod("speaker_play_stop")
+ .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT);
+ return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse);
}
/**
@@ -113,8 +138,14 @@ public class MegaphoneController {
) {
String top = TOPIC+gatewaySn+"/services";
//发送mqtt
- propertySetPublish.publishPlayText(top,param,"speaker_play_mode_set");
- return HttpResultResponse.success();
+ CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply(
+ ServicesReplyReceiver.class, top, new TopicServicesRequest<>()
+ .setTid(UUID.randomUUID().toString())
+ .setBid(null)
+ .setTimestamp(System.currentTimeMillis())
+ .setMethod("speaker_play_mode_set")
+ .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT);
+ return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse);
}
@@ -127,20 +158,25 @@ public class MegaphoneController {
*/
@PostMapping("/{workspace_id}/widgetValueSet")
@Operation(summary = "喊话器-设置音量。", description = "喊话器-设置音量。")
- public int widgetValueSet(@PathVariable("workspace_id") String workspaceId,
+ public HttpResultResponse widgetValueSet(@PathVariable("workspace_id") String workspaceId,
@RequestParam("gatewaySn") String gatewaySn,
@RequestBody PlayVolumeDTO param
) {
String top = TOPIC+gatewaySn+"/services";
//发送mqtt
- PropertySetReplyResultEnum psdkWidgetValueSet = propertySetPublish.publishPlayText(top,param,"psdk_widget_value_set");
- return psdkWidgetValueSet.getResult();
+ CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply(
+ ServicesReplyReceiver.class, top, new TopicServicesRequest<>()
+ .setTid(UUID.randomUUID().toString())
+ .setBid(null)
+ .setTimestamp(System.currentTimeMillis())
+ .setMethod("speaker_play_volume_set")
+ .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT);
+ return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse);
}
-
/**
* 获取媒体流ip
* Get the topology list of all online devices in one workspace.