吴远 3 months ago
parent
commit
174017c59d
  1. 28
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java
  2. 8
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java

28
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java

@ -17,6 +17,7 @@ import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.cloudapi.wayline.*;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.sample.fegin.RemoteBusinessTaskFeign; import org.dromara.sample.fegin.RemoteBusinessTaskFeign;
import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper; import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper;
import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper;
@ -51,6 +52,8 @@ import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/** /**
* @auther yq * @auther yq
@ -70,8 +73,9 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
private IWaylineFileMapper waylineFileMapper; private IWaylineFileMapper waylineFileMapper;
@Autowired @Autowired
private IFlightTaskService flightTaskService; private IFlightTaskService flightTaskService;
// @DubboReference
// private RemoteBusinessTaskService remoteBusinessTaskService; Lock lock = new ReentrantLock();
private ExecutorService executor = Executors.newFixedThreadPool(5); private ExecutorService executor = Executors.newFixedThreadPool(5);
@ -285,10 +289,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
return; return;
} }
RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180); RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180);
executor.execute(new Runnable() {
@Override
public void run() {
try {
// 获取当前日期 // 获取当前日期
LocalDateTime currentDate = LocalDateTime.now(); LocalDateTime currentDate = LocalDateTime.now();
// 定义日期格式 // 定义日期格式
@ -328,7 +329,14 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK); createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK);
createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME); createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME);
createJobParam.setRthAltitude(120); createJobParam.setRthAltitude(120);
flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam,deviceQrtzFileEntity.getNickName()); HttpResultResponse httpResultResponse = flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam, deviceQrtzFileEntity.getNickName());
if(httpResultResponse.getCode() == 0){
deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2);
deviceQrtzFileMapper.updateById(deviceQrtzFileEntity);
return;
}
deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0);
deviceQrtzFileMapper.updateById(deviceQrtzFileEntity);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -338,10 +346,6 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
} }
} }
} catch (Exception e) {
throw new RuntimeException(e);
}
}
});
} }
} }

8
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java

@ -1,6 +1,7 @@
package org.dromara.sample.manage.service.impl; package org.dromara.sample.manage.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.common.sdk.cloudapi.device.*; import org.dromara.common.sdk.cloudapi.device.*;
import org.dromara.common.sdk.cloudapi.device.api.AbstractDeviceService; import org.dromara.common.sdk.cloudapi.device.api.AbstractDeviceService;
import org.dromara.common.sdk.cloudapi.psdk.PsdkUiResource; import org.dromara.common.sdk.cloudapi.psdk.PsdkUiResource;
@ -150,16 +151,19 @@ public class SDKDeviceService extends AbstractDeviceService {
return; return;
} }
} }
if(request.getData().getMediaFileDetail() != null){
RedisOpsUtils.hashSet("updateMediaFileDetail",from,request.getData().getMediaFileDetail().getRemainUpload());
}
DeviceDTO device = deviceOpt.get(); DeviceDTO device = deviceOpt.get();
if (StringUtils.hasText(device.getChildDeviceSn())) { if (StringUtils.hasText(device.getChildDeviceSn())) {
deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren); deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren);
} }
Integer remainUpload = (Integer) RedisOpsUtils.hashGet("updateMediaFileDetail", from);
if(request.getData().getModeCode() != null && request.getData().getModeCode().getCode() == 0 && 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().getState() == false
&& request.getData().getDroneChargeState().getCapacityPercent() >= 80){ && request.getData().getDroneChargeState().getCapacityPercent() >= 80 && (remainUpload != null && remainUpload == 0)){
deviceQrtzService.getDeviceQrtzFileEntity(device); deviceQrtzService.getDeviceQrtzFileEntity(device);
} }
deviceRedisService.setDeviceOnline(device); deviceRedisService.setDeviceOnline(device);

Loading…
Cancel
Save