diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java index d826853..202bd4f 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java @@ -48,6 +48,7 @@ public interface IHttpWaylineService { HttpResultResponse> getWaylineList( @Valid @ParameterObject GetWaylineListRequest request, @PathVariable(name = "workspace_id") String workspaceId, + @PathVariable(name = "proIds") List proIds, HttpServletRequest req, HttpServletResponse rsp); /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java index 6e2fcca..2bbfb94 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java @@ -102,7 +102,7 @@ public class DeviceDTO { private String tenantId; @Schema(description = "项目ID") - private String proId; + private Integer proId; @Schema(description = "项目ID") private DeviceProEntity deviceProEntity; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java index 4639f68..5bbdf41 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java @@ -710,6 +710,7 @@ public class DeviceServiceImpl implements IDeviceService { .compatibleStatus(dto.getFirmwareStatus() == null ? null : DeviceFirmwareStatusEnum.CONSISTENT_UPGRADE != dto.getFirmwareStatus()) .deviceDesc(dto.getDeviceDesc()) + .proId(dto.getProId() == null ? null : dto.getProId()) .build(); } } 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 87c84bb..15fdca6 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 @@ -2,6 +2,7 @@ package org.dromara.sample.manage.service.impl; import cn.hutool.core.util.ObjectUtil; import org.dromara.common.redis.utils.RedisOpsUtils; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.sdk.cloudapi.device.*; import org.dromara.common.sdk.cloudapi.device.api.AbstractDeviceService; import org.dromara.common.sdk.cloudapi.psdk.PsdkUiResource; @@ -30,12 +31,15 @@ import org.springframework.util.StringUtils; import java.sql.SQLException; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; +import static org.dromara.common.core.constant.Constants.FLY_COUNT; + /** * @author sean * @version 1.7 @@ -165,7 +169,6 @@ public class SDKDeviceService extends AbstractDeviceService { && request.getData().getDroneChargeState().getCapacityPercent() >= 80 && (remainUpload != null && remainUpload == 0)){ deviceQrtzService.getDeviceQrtzFileEntity(device); } - deviceRedisService.setDeviceOnline(device); fillDockOsd(from, request.getData()); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java index 4ae1ae6..0c479b5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java @@ -1,6 +1,7 @@ package org.dromara.sample.wayline.controller; +import io.seata.common.util.CollectionUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; @@ -14,6 +15,8 @@ import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.cloudapi.wayline.api.IHttpWaylineService; import org.dromara.common.sdk.common.HttpResultResponse; import org.dromara.common.sdk.common.PaginationData; +import org.dromara.sample.manage.mapper.IDeviceProUserMapper; +import org.dromara.sample.manage.service.IDeviceProService; import org.dromara.sample.wayline.model.dto.WaylineFileDTO; import org.dromara.sample.wayline.model.entity.WaylineFileEntity; import org.dromara.sample.wayline.service.IWaylineFileService; @@ -44,6 +47,9 @@ public class WaylineFileController implements IHttpWaylineService { @Autowired private IWaylineFileService waylineFileService; + @Autowired + private IDeviceProService deviceProService; + /** * 根据waylineID删除工作区中的wayline文件。 * Delete the wayline file in the workspace according to the wayline id. @@ -65,13 +71,13 @@ public class WaylineFileController implements IHttpWaylineService { */ @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/{deviceSn}/upload") @Operation(summary = "导入kmz航路文件。", description = "导入kmz航路文件。") - public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file,@PathVariable(name = "deviceSn") String deviceSn) { + public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file,@PathVariable(name = "deviceSn") String deviceSn,@PathVariable(name = "proId") Integer proId) { if (Objects.isNull(file)) { return HttpResultResponse.error("未收到文件。"); } LoginUser loginUser = LoginHelper.getLoginUser(); String creator = loginUser.getUsername(); - waylineFileService.importKmzFile(file, workspaceId, creator,deviceSn); + waylineFileService.importKmzFile(file, workspaceId, creator,deviceSn,proId); return HttpResultResponse.success(); } @@ -84,8 +90,8 @@ public class WaylineFileController implements IHttpWaylineService { * @return */ @Override - public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId, HttpServletRequest req, HttpServletResponse rsp) { - PaginationData data = waylineFileService.getWaylinesByParam(workspaceId, request); + public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId, Integer proId, HttpServletRequest req, HttpServletResponse rsp) { + PaginationData data = waylineFileService.getWaylinesByParam(workspaceId, request,proId); return HttpResultResponse.success(data); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java index 828b018..580dab9 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineFileDTO.java @@ -47,4 +47,6 @@ public class WaylineFileDTO { private Integer fileNo; + private Integer proId; + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java index 32ac78d..c92be00 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java @@ -69,4 +69,6 @@ public class WaylineFileEntity implements Serializable { @TableField(exist = false) private String deviceName; + @TableField("pro_id") + private Integer proId; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java index 0c16986..8441666 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java @@ -24,7 +24,7 @@ public interface IWaylineFileService { * @param param * @return */ - PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param); + PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId); /** * Query the information of this wayline file according to the wayline file id. @@ -81,7 +81,7 @@ public interface IWaylineFileService { * @param creator * @return */ - void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn); + void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn,Integer proId); String getWaylineIdByFileId(Integer fileId); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java index 2479134..e4d869a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java @@ -59,7 +59,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { private IWaylineFileMapper mapper; @Override - public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param) { + public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId) { // Paging Query Page page = mapper.selectPage( new Page(param.getPage(), param.getPageSize()), @@ -84,6 +84,9 @@ public class WaylineFileServiceImpl implements IWaylineFileService { .and(param.getDeviceSn() != null, wrapper -> { wrapper.eq(WaylineFileEntity::getDeviceSn, param.getDeviceSn()).or(); }) + .and(proId != null, wrapper -> { + wrapper.in(WaylineFileEntity::getProId, proId).or(); + }) .like(Objects.nonNull(param.getKey()), WaylineFileEntity::getName, param.getKey()) // There is a risk of SQL injection .last(Objects.nonNull(param.getOrderBy()), " order by " + param.getOrderBy().toString())); @@ -184,7 +187,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { } @Override - public void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn) { + public void importKmzFile(MultipartFile file, String workspaceId, String creator,String deviceSn,Integer proId) { Optional waylineFileOpt = validKmzFile(file); if (waylineFileOpt.isEmpty()) { throw new RuntimeException("文件格式不正确。"); @@ -211,6 +214,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { }else { waylineFile.setFileNo(1); } + waylineFile.setProId(proId); this.saveWaylineFile(workspaceId, waylineFile); } catch (IOException e) { e.printStackTrace(); @@ -335,6 +339,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { .favorited(file.getFavorited()) .sign(file.getSign()) .deviceSn(file.getDeviceSns().get(0)) + .proId(file.getProId()) .build(); }