diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitConfig.java b/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitConfig.java deleted file mode 100644 index ba18ccd..0000000 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.dromara.stream.config; - -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.core.TopicExchange; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author xbhog - */ -@Configuration -public class RabbitConfig { - - public static final String EXCHANGE_NAME = "demo-exchange"; - public static final String QUEUE_NAME = "demo-queue"; - public static final String ROUTING_KEY = "demo.routing.key"; - - /** - * 创建交换机 - * ExchangeBuilder有四种交换机模式 - * Direct Exchange:直连交换机,根据Routing Key(路由键)进行投递到不同队列。 - * Fanout Exchange:扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。 - * Topic Exchange:主题交换机,对路由键进行模式匹配后进行投递,符号#表示一个或多个词,*表示一个词。 - * Header Exchange:头交换机,不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。 - * durable 交换器是否持久化(false 不持久化,true 持久化) - **/ - @Bean - public TopicExchange exchange() { - return new TopicExchange(EXCHANGE_NAME); - } - - /** - * 创建队列 - * durable 队列是否持久化 队列调用此方法就是持久化 可查看方法的源码 - * deliveryMode 消息是否持久化(1 不持久化,2 持久化) - **/ - @Bean - public Queue queue() { - return new Queue(QUEUE_NAME, false); - } - - /** - * 绑定交换机和队列 - * bing 方法参数可以是队列和交换机 - * to 方法参数必须是交换机 - * with 方法参数是路由Key 这里是以rabbit.开头 - * noargs 就是不要参数的意思 - * 这个方法的意思是把rabbit开头的消息 和 上面的队列 和 上面的交换机绑定 - **/ - @Bean - public Binding binding(Queue queue, TopicExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); - } - -} diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitTtlQueueConfig.java b/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitTtlQueueConfig.java deleted file mode 100644 index 9416e1d..0000000 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitTtlQueueConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.dromara.stream.config; - -import org.springframework.amqp.core.*; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.util.Map; - - -/** - * RabbitTTL队列 - * - * @author xbhog - */ -@Configuration -public class RabbitTtlQueueConfig { - - // 延迟队列名称 - public static final String DELAY_QUEUE_NAME = "delay-queue"; - // 延迟交换机名称 - public static final String DELAY_EXCHANGE_NAME = "delay-exchange"; - // 延迟路由键名称 - public static final String DELAY_ROUTING_KEY = "delay.routing.key"; - - // 死信交换机名称 - public static final String DEAD_LETTER_EXCHANGE = "dlx-exchange"; - // 死信队列名称 - public static final String DEAD_LETTER_QUEUE = "dlx-queue"; - // 死信路由键名称 - public static final String DEAD_LETTER_ROUTING_KEY = "dlx.routing.key"; - - /** - * 声明延迟队列 - */ - @Bean - public Queue delayQueue() { - return QueueBuilder.durable(DELAY_QUEUE_NAME) - .deadLetterExchange(DEAD_LETTER_EXCHANGE) - .deadLetterRoutingKey(DEAD_LETTER_ROUTING_KEY) - .build(); - } - - /** - * 声明延迟交换机 - */ - @Bean - public CustomExchange delayExchange() { - return new CustomExchange(DELAY_EXCHANGE_NAME, "x-delayed-message", - true, false, Map.of("x-delayed-type", "direct")); - } - - /** - * 将延迟队列绑定到延迟交换机 - */ - @Bean - public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) { - return BindingBuilder.bind(delayQueue).to(delayExchange).with(DELAY_ROUTING_KEY).noargs(); - } - - /** - * 声明死信队列 - */ - @Bean - public Queue deadLetterQueue() { - return new Queue(DEAD_LETTER_QUEUE); - } - - /** - * 声明死信交换机 - */ - @Bean - public DirectExchange deadLetterExchange() { - return new DirectExchange(DEAD_LETTER_EXCHANGE); - } - - /** - * 将死信队列绑定到死信交换机 - */ - @Bean - public Binding deadLetterBinding(Queue deadLetterQueue, DirectExchange deadLetterExchange) { - return BindingBuilder.bind(deadLetterQueue).to(deadLetterExchange).with(DEAD_LETTER_ROUTING_KEY); - } - -} - diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/consumer/RabbitConsumer.java b/dk-example/test-mq/src/main/java/org/dromara/stream/consumer/RabbitConsumer.java deleted file mode 100644 index f12e653..0000000 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/consumer/RabbitConsumer.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.dromara.stream.consumer; - -import lombok.extern.slf4j.Slf4j; -import org.dromara.stream.config.RabbitConfig; -import org.dromara.stream.config.RabbitTtlQueueConfig; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Component; - -/** - * @author xbhog - * @date 2024年5月18日 - */ -@Slf4j -@Component -public class RabbitConsumer { - - /** - * 普通消息 - */ - @RabbitListener(queues = RabbitConfig.QUEUE_NAME) - public void listenQueue(Message message) { - log.info("【消费者】Start consuming data:{}",new String(message.getBody())); - } - - /** - * 处理延迟队列消息 - */ - @RabbitListener(queues = RabbitTtlQueueConfig.DELAY_QUEUE_NAME) - public void receiveDelayMessage(String message){ - log.info("【消费者】Received delayed message:{}",message); - } - - /** - * 处理死信队列消息 - * 当消息在延迟队列中未能被正确处理(例如因消费者逻辑错误、超时未ACK等原因) - * 它会被自动转发到死信队列中,以便后续的特殊处理或重新尝试。 - */ - @RabbitListener(queues = RabbitTtlQueueConfig.DEAD_LETTER_QUEUE) - public void receiveDeadMessage(String message){ - log.info("【消费者】Received dead message:{}",message); - } -} diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java b/dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java index 788ba34..fc657fc 100644 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java +++ b/dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java @@ -15,10 +15,6 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping public class PushMessageController { - @Autowired - private NormalRabbitProducer normalRabbitProducer; - @Autowired - private DelayRabbitProducer delayRabbitProducer; @Autowired private NormalRocketProducer normalRocketProducer; @Autowired @@ -26,22 +22,6 @@ public class PushMessageController { @Autowired private KafkaNormalProducer normalKafkaProducer; - /** - * rabbitmq 普通消息 - */ - @GetMapping("/rabbit/send") - public void rabbitSend() { - normalRabbitProducer.send("hello normal RabbitMsg"); - } - - /** - * rabbitmq 延迟队列消息 - */ - @GetMapping("/rabbit/sendDelay") - public void rabbitSendDelay(long delay) { - delayRabbitProducer.sendDelayMessage("Hello ttl RabbitMsg", delay); - } - /** * rocketmq 发送消息 * 需要手动创建相关的Topic和group diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/producer/DelayRabbitProducer.java b/dk-example/test-mq/src/main/java/org/dromara/stream/producer/DelayRabbitProducer.java deleted file mode 100644 index bbd55a3..0000000 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/producer/DelayRabbitProducer.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.dromara.stream.producer; - -import lombok.extern.slf4j.Slf4j; -import org.dromara.stream.config.RabbitTtlQueueConfig; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author xbhog - * @date 2024/05/25 17:15 - **/ -@Slf4j -@Component -public class DelayRabbitProducer { - - @Autowired - private RabbitTemplate rabbitTemplate; - - public void sendDelayMessage(String message, long delay) { - rabbitTemplate.convertAndSend( - RabbitTtlQueueConfig.DELAY_EXCHANGE_NAME, - RabbitTtlQueueConfig.DELAY_ROUTING_KEY, message, message1 -> { - message1.getMessageProperties().setDelayLong(delay); - return message1; - }); - log.info("【生产者】Delayed message send: " + message); - } - -} diff --git a/dk-example/test-mq/src/main/java/org/dromara/stream/producer/NormalRabbitProducer.java b/dk-example/test-mq/src/main/java/org/dromara/stream/producer/NormalRabbitProducer.java deleted file mode 100644 index 142e67a..0000000 --- a/dk-example/test-mq/src/main/java/org/dromara/stream/producer/NormalRabbitProducer.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.dromara.stream.producer; - -import lombok.extern.slf4j.Slf4j; -import org.dromara.stream.config.RabbitConfig; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * @author xbhog - */ -@Slf4j -@Component -public class NormalRabbitProducer { - - @Autowired - private RabbitTemplate rabbitTemplate; - - public void send(String message) { - rabbitTemplate.convertAndSend(RabbitConfig.EXCHANGE_NAME, RabbitConfig.ROUTING_KEY, message); - log.info("【生产者】Message send: " + message); - } -} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java index f2785df..f5e5609 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java @@ -54,5 +54,5 @@ public interface IDeviceQrtzService { Boolean fileSort(Long id ,Integer sort); //通知启用飞行任务 - DeviceQrtzFileEntity getDeviceQrtzFileEntity(DeviceDTO device) throws SQLException; + void getDeviceQrtzFileEntity(DeviceDTO device); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java index 999d162..205a872 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -13,6 +13,7 @@ import org.dromara.common.core.constant.BusinessConstants; import org.dromara.common.core.constant.DeviceQrtzConstants; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.redis.utils.RedisOpsUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sdk.cloudapi.wayline.*; @@ -48,6 +49,10 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * @auther yq @@ -70,6 +75,8 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { // @DubboReference // private RemoteBusinessTaskService remoteBusinessTaskService; + private ExecutorService executor = Executors.newFixedThreadPool(5); + @Autowired RemoteBusinessTaskFeign remoteBusinessTaskFeign; @@ -272,59 +279,71 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { @Override - public DeviceQrtzFileEntity getDeviceQrtzFileEntity(DeviceDTO device) { - if(StrUtil.isNotEmpty(device.getDeviceSn())){ - // 获取当前日期 - LocalDateTime currentDate = LocalDateTime.now(); - // 定义日期格式 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatterS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - // 格式化当前日期 - String formattedDate = currentDate.format(formatter); - List qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper().eq("device_sn", device.getDeviceSn()).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); - if(!qrtzFileEntityList.isEmpty()){ - DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); - List qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId()); - if(!qrtzDateEntityList.isEmpty()){ - // 获取当前日期和时间 - for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) { - if (!currentDate.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDate.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))){ - //获取航线数据发送之类 - WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); - if(waylineFileEntity == null){ - //更改为异常,当前航线不存在 - deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); - deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); - continue; - } - //获取是否是工单航线,是修改状态 - remoteBusinessTaskFeign.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2,null,null); - CreateJobParam createJobParam = new CreateJobParam(); - try { - createJobParam.setName(deviceQrtzFileEntity.getWaylineName()+""+currentDate.format(formatterS)); - createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); - createJobParam.setDockSn(device.getDeviceSn()); - createJobParam.setWaylineType(WaylineTypeEnum.find(waylineFileEntity.getTemplateTypes())); - createJobParam.setTaskType(TaskTypeEnum.IMMEDIATE); - createJobParam.setJobId(UUID.randomUUID().toString()); - //createJobParam.setRthAltitude(); - createJobParam.setMinBatteryCapacity(50); - createJobParam.setJobType(WaylineJobTypeEnum.WISDOM_TASK); - createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK); - createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME); - flightTaskService.publishFlightTask(device.getWorkspaceId(),createJobParam); - }catch (Exception e){ - e.printStackTrace(); - } - } - - - } - - } - } - - } - return null; + public void getDeviceQrtzFileEntity(DeviceDTO device) { + if (!StrUtil.isNotEmpty(device.getDeviceSn())) { + return; + } + if (RedisOpsUtils.checkExist(device.getDeviceSn())) { + return; + } + RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180); + executor.execute(new Runnable() { + @Override + public void run() { + try { + // 获取当前日期 + LocalDateTime currentDate = LocalDateTime.now(); + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatterS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + // 格式化当前日期 + String formattedDate = currentDate.format(formatter); + List qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper().eq("device_sn", device.getDeviceSn()).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); + if (!qrtzFileEntityList.isEmpty()) { + DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); + List qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId()); + if (!qrtzDateEntityList.isEmpty()) { + // 获取当前日期和时间 + for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) { + if (!currentDate.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDate.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))) { + //获取航线数据发送之类 + WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); + if (waylineFileEntity == null) { + //更改为异常,当前航线不存在 + deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); + deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); + continue; + } + //获取是否是工单航线,是修改状态 + // remoteBusinessTaskService.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2, null, null); + CreateJobParam createJobParam = new CreateJobParam(); + try { + createJobParam.setName(deviceQrtzFileEntity.getWaylineName() + "" + currentDate.format(formatterS)); + createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); + createJobParam.setDockSn(device.getDeviceSn()); + createJobParam.setWaylineType(WaylineTypeEnum.find(Integer.parseInt(waylineFileEntity.getTemplateTypes()))); + createJobParam.setTaskType(TaskTypeEnum.IMMEDIATE); + createJobParam.setJobId(UUID.randomUUID().toString()); + //createJobParam.setRthAltitude(); + createJobParam.setMinBatteryCapacity(50); + createJobParam.setJobType(WaylineJobTypeEnum.WISDOM_TASK); + createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK); + createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME); + createJobParam.setRthAltitude(120); + flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam,deviceQrtzFileEntity.getNickName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + }); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java index 25a6fae..c59734f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java @@ -59,7 +59,6 @@ public class SDKDeviceService extends AbstractDeviceService { @Autowired private IDeviceQrtzService deviceQrtzService; - private ExecutorService executor = Executors.newFixedThreadPool(5); @Override public TopicStatusResponse updateTopoOnline(TopicStatusRequest request, MessageHeaders headers) { @@ -156,19 +155,11 @@ public class SDKDeviceService extends AbstractDeviceService { if (StringUtils.hasText(device.getChildDeviceSn())) { deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren); } - if(request.getData().getDroneChargeState() != null + if(request.getData().getModeCode() != null && request.getData().getModeCode().getCode() == 0 && request.getData().getDroneChargeState() != null && request.getData().getDroneChargeState().getState() == false && request.getData().getDroneChargeState().getCapacityPercent() >= 80){ - executor.execute(new Runnable() { - @Override - public void run() { - try { - deviceQrtzService.getDeviceQrtzFileEntity(device); - } catch (SQLException e) { - throw new RuntimeException(e); - } - } - }); + deviceQrtzService.getDeviceQrtzFileEntity(device); + } deviceRedisService.setDeviceOnline(device); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java index 61bc330..4b4bb20 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java @@ -25,6 +25,8 @@ public interface IFlightTaskService { */ HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param) throws SQLException; + HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param,String userName) throws SQLException; + /** * Issue wayline mission to the dock. * @param waylineJob diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java index 95ecd26..e3011e4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java @@ -259,6 +259,38 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl return HttpResultResponse.success(); } + @Override + public HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param,String username) throws SQLException { + fillImmediateTime(param); + for (Long taskDay : param.getTaskDays()) { + LocalDate date = LocalDate.ofInstant(Instant.ofEpochSecond(taskDay), ZoneId.systemDefault()); + for (List taskPeriod : param.getTaskPeriods()) { + long beginTime = LocalDateTime.of(date, LocalTime.ofInstant(Instant.ofEpochSecond(taskPeriod.get(0)), ZoneId.systemDefault())) + .atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + long endTime = taskPeriod.size() > 1 ? + LocalDateTime.of(date, LocalTime.ofInstant(Instant.ofEpochSecond(taskPeriod.get(1)), ZoneId.systemDefault())) + .atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : beginTime; + if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) { + continue; + } + + Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime)); + if (waylineJobOpt.isEmpty()) { + throw new SQLException("无法创建路线作业。"); + } + WaylineJobDTO waylineJob = waylineJobOpt.get(); + // If it is a conditional task type, add conditions to the job parameters. + addConditions(waylineJob, param, beginTime, endTime); + + HttpResultResponse response = this.publishOneFlightTask(waylineJob); + if (HttpResultResponse.CODE_SUCCESS != response.getCode()) { + return response; + } + } + } + return HttpResultResponse.success(); + } + public HttpResultResponse publishOneFlightTask(WaylineJobDTO waylineJob) throws SQLException { diff --git a/pom.xml b/pom.xml index 841ce33..74e9d25 100644 --- a/pom.xml +++ b/pom.xml @@ -84,10 +84,10 @@ - dev + wuyuan - dev + wuyuan 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP