Browse Source

历史映像

pull/1/head
吴远 3 months ago
parent
commit
cd16de0c65
  1. 11
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
  2. 4
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java
  3. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java
  4. 6
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java
  5. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java
  6. 16
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java

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

@ -27,6 +27,8 @@ import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
/**
@ -53,6 +55,8 @@ public class SDKDeviceService extends AbstractDeviceService {
@Autowired
private IDeviceQrtzService deviceQrtzService;
private ExecutorService executor = Executors.newFixedThreadPool(5);
@Override
public TopicStatusResponse<MqttReply> updateTopoOnline(TopicStatusRequest<UpdateTopo> request, MessageHeaders headers) {
UpdateTopoSubDevice updateTopoSubDevice = request.getData().getSubDevices().get(0);
@ -150,7 +154,12 @@ public class SDKDeviceService extends AbstractDeviceService {
if(request.getData().getDroneChargeState() != null
&& request.getData().getDroneChargeState().getState() == false
&& request.getData().getDroneChargeState().getCapacityPercent() >= 80){
deviceQrtzService.getDeviceQrtzFileEntity(device.getDeviceSn());
executor.execute(new Runnable() {
@Override
public void run() {
deviceQrtzService.getDeviceQrtzFileEntity(device.getDeviceSn());
}
});
}
deviceRedisService.setDeviceOnline(device);

4
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java

@ -65,13 +65,13 @@ public class WaylineFileController implements IHttpWaylineService {
*/
@PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/upload")
@Operation(summary = "导入kmz航路文件。", description = "导入kmz航路文件。")
public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file) {
public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file,String deviceSn) {
if (Objects.isNull(file)) {
return HttpResultResponse.error("未收到文件。");
}
LoginUser loginUser = LoginHelper.getLoginUser();
String creator = loginUser.getUsername();
waylineFileService.importKmzFile(file, workspaceId, creator);
waylineFileService.importKmzFile(file, workspaceId, creator,deviceSn);
return HttpResultResponse.success();
}

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java

@ -45,4 +45,6 @@ public class WaylineFileDTO {
private String deviceName;
private Integer fileNo;
}

6
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java

@ -60,4 +60,10 @@ public class WaylineFileEntity implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableField(value = "device_sn")
private String deviceSn;
@TableField(value = "file_no")
private String fileNo;
}

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java

@ -81,7 +81,7 @@ public interface IWaylineFileService {
* @param creator
* @return
*/
void importKmzFile(MultipartFile file, String workspaceId, String creator);
void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn);
String getWaylineIdByFileId(Integer fileId);

16
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java

@ -198,12 +198,18 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
}
@Override
public void importKmzFile(MultipartFile file, String workspaceId, String creator) {
public void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn) {
Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
if (waylineFileOpt.isEmpty()) {
throw new RuntimeException("文件格式不正确。");
}
if (!StringUtils.hasText(deviceSn)) {
throw new RuntimeException("文件格式不正确。");
}
try {
List<WaylineFileEntity> waylineFileEntities = mapper.selectList(new LambdaQueryWrapper<WaylineFileEntity>()
.eq(WaylineFileEntity::getDeviceSn, deviceSn).orderBy(true, false, WaylineFileEntity::getFileNo).last(" limit 1"));
WaylineFileDTO waylineFile = waylineFileOpt.get();
waylineFile.setUsername(creator);
OssClient storage = OssFactory.instance("waylinefile");
@ -211,6 +217,14 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
String suffix = org.apache.commons.lang3.StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
UploadResult uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
waylineFile.setObjectKey(uploadResult.getFilename());
List<String> deviceSns = new ArrayList<>();
deviceSns.add(deviceSn);
waylineFile.setDeviceSns(deviceSns);
if(CollectionUtils.isNotEmpty(waylineFileEntities)) {
waylineFile.setFileNo(waylineFileEntities.size()+1);
}else {
waylineFile.setFileNo(1);
}
this.saveWaylineFile(workspaceId, waylineFile);
} catch (IOException e) {
e.printStackTrace();

Loading…
Cancel
Save