diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java index 1d6301c..d37f755 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java @@ -25,6 +25,9 @@ public class GetWaylineListRequest { @Parameter(name = "favorited", description = "路线文件是否已加为收藏?") private Boolean favorited; + @Parameter(name = "deviceSn", description = "设备sn") + private String deviceSn; + /** * order(xxx_column desc or xxx_column asc) * Pilot2 optional value: nameupdate_timecreate_time 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 98195e1..513f29f 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 @@ -135,4 +135,27 @@ public interface IHttpWaylineService { @PathVariable(name = "workspace_id") String workspaceId, @NotNull @Size(min = 1) @RequestParam(name = "id") List ids, HttpServletRequest req, HttpServletResponse rsp); + + + + + /** + * 根据查询条件查询路径文件的基本数据。 + * Pilot中的查询条件字段是固定的。 + * Query the basic data of the wayline file according to the query conditions. + * The query condition field in pilot is fixed. + * @param request get waylines params + * @param req + * @param rsp + * @return wayline list + */ + @Operation(summary = "获取航线路线列表(带设备查询条件)", description = "根据查询条件査询路线文件的基本数据。飞行员中的查询条件字段是固定的。", + parameters = { + @Parameter(name = "workspace_id", description = "workspace_id", schema = @Schema(format = "uuid")) + }) + @GetMapping(PREFIX + "/workspaces/{workspace_id}/waylines") + HttpResultResponse> getWaylineListNew( + @Valid @ParameterObject GetWaylineListRequest request, + @PathVariable(name = "workspace_id") String workspaceId, + HttpServletRequest req, HttpServletResponse rsp); } 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 9d9a4ee..89d7c2b 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 @@ -177,6 +177,12 @@ public class WaylineFileController implements IHttpWaylineService { return isMark ? HttpResultResponse.success() : HttpResultResponse.error(); } + @Override + public HttpResultResponse> getWaylineListNew(GetWaylineListRequest request, String workspaceId, HttpServletRequest req, HttpServletResponse rsp) { + PaginationData data = waylineFileService.getWaylinesByParamNew(workspaceId, request); + return HttpResultResponse.success(data); + } + /** * 导入 kmz wayline 文件。 * Import kmz wayline files. diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineDeviceMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineDeviceMapper.java new file mode 100644 index 0000000..ed5f1b0 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineDeviceMapper.java @@ -0,0 +1,13 @@ +package org.dromara.sample.wayline.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.wayline.model.entity.WaylineDeviceEntity; +import org.dromara.sample.wayline.model.entity.WaylineFileEntity; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +public interface IWaylineDeviceMapper extends BaseMapper { +} 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 eeb6f0f..e83206b 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 @@ -40,4 +40,9 @@ public class WaylineFileDTO { private String username; private Long updateTime; + + private List deviceSns; + + private String deviceName; + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineDeviceEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineDeviceEntity.java new file mode 100644 index 0000000..33d95a5 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineDeviceEntity.java @@ -0,0 +1,39 @@ +package org.dromara.sample.wayline.model.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +@Data +@TableName("wayline_device") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class WaylineDeviceEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + @TableField("wayline_id") + private String waylineId; + + @TableField("device_sn") + private String deviceSn; + + @TableField(value = "create_time", fill = FieldFill.INSERT) + private Date createTime; + + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + +} 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 871a0cf..95a5a08 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 @@ -84,4 +84,13 @@ public interface IWaylineFileService { void importKmzFile(MultipartFile file, String workspaceId, String creator); String getWaylineIdByFileId(Integer fileId); + + + /** + * Perform paging queries based on query parameters. + * @param workspaceId + * @param param + * @return + */ + PaginationData getWaylinesByParamNew(String workspaceId, GetWaylineListRequest param); } 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 b73bc27..5a1f452 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.seata.common.util.CollectionUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Node; @@ -20,9 +21,11 @@ import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse; import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum; import org.dromara.common.sdk.common.Pagination; import org.dromara.common.sdk.common.PaginationData; +import org.dromara.sample.wayline.mapper.IWaylineDeviceMapper; import org.dromara.sample.wayline.mapper.IWaylineFileMapper; import org.dromara.sample.wayline.model.dto.KmzFileProperties; import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.dromara.sample.wayline.model.entity.WaylineDeviceEntity; import org.dromara.sample.wayline.model.entity.WaylineFileEntity; import org.dromara.sample.wayline.service.IWaylineFileService; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +60,9 @@ public class WaylineFileServiceImpl implements IWaylineFileService { @Autowired private IWaylineFileMapper mapper; + @Autowired + private IWaylineDeviceMapper deviceMapper; + @Override public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param) { // Paging Query @@ -133,6 +139,18 @@ public class WaylineFileServiceImpl implements IWaylineFileService { } } int insertId = mapper.insert(file); + //插入航线和设备关联表 + if (CollectionUtils.isNotEmpty(metadata.getDeviceSns())){ + for (String sn : metadata.getDeviceSns()){ + WaylineDeviceEntity entity = new WaylineDeviceEntity(); + entity.setWaylineId(file.getWaylineId()); + entity.setDeviceSn(sn); + entity.setCreateTime(new Date()); + entity.setUpdateTime(new Date()); + insertId = deviceMapper.insert(entity); + } + } + return insertId > 0 ? file.getId() : insertId; } @@ -207,6 +225,11 @@ public class WaylineFileServiceImpl implements IWaylineFileService { return waylineId; } + @Override + public PaginationData getWaylinesByParamNew(String workspaceId, GetWaylineListRequest param) { + return null; + } + private Optional validKmzFile(MultipartFile file) { String filename = file.getOriginalFilename(); if (Objects.nonNull(filename) && !filename.endsWith(WAYLINE_FILE_SUFFIX)) { diff --git a/pom.xml b/pom.xml index 699db26..dd822e5 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ dev - wuyuan + dev 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP