From a17dc254d5d6ef292a2a68d9b102a53ef67209dd Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 22 Apr 2025 09:19:53 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[feat]=20=E6=8F=90=E4=BA=A4=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/BusinessAlertStatisticsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java index 1bb1ff3..d0f2ccf 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertStatisticsController.java @@ -177,6 +177,7 @@ public class BusinessAlertStatisticsController extends BaseController { @Operation(summary="预警对比统计(预警状态)", description="预警对比统计(预警状态)") @GetMapping(value = "/compare/status/count") public R>> countAlertStatusCompare(BusinessAlertBo businessAlertBo) { + return R.ok(statisticsService.countAlertStatusCompare(businessAlertBo)); } From 6e16e0a2bb4bae51ad694cd24044049955e47d43 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 09:32:09 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=AF=94=E5=AF=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit eea8f2bd63d536309880b5279bfec91a491417b0) --- .../sample/wayline/mapper/IAiCompareMapper.java | 3 ++- .../wayline/service/impl/AiCompareServiceImpl.java | 12 ++++++------ .../src/main/resources/mapper/AiCompareMapper.xml | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java index 09e0b1b..869aaa1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java @@ -1,5 +1,6 @@ package org.dromara.sample.wayline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; import org.dromara.sample.wayline.model.entity.AiCompareEntity; @@ -11,5 +12,5 @@ import java.util.List; */ public interface IAiCompareMapper extends BaseMapper { - ListlistMediaFile(String jobId); + ListlistMediaFile(@Param("jobId") String jobId, @Param("compareId") Long compareId); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index eb66fac..9f5ffa7 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -138,7 +138,7 @@ public class AiCompareServiceImpl implements IAiCompareService { } } String topic = TopicConst.IMAGE +TopicConst.COMPARE; - List mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),43200,false); + List mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),aiCompareEntity.getId(),43200,false); mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); insertList.add(aiCompareEntity); } @@ -146,12 +146,12 @@ public class AiCompareServiceImpl implements IAiCompareService { List list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); } - public List listMediaFile(String jobId,Integer seconds ,boolean isIllegal){ - List mediaFileDTOList = aiCompareMapper.listMediaFile(jobId); + public List listMediaFile(String jobId,Long compareId,Integer seconds ,boolean isIllegal){ + List mediaFileDTOList = aiCompareMapper.listMediaFile(jobId,compareId); if(!mediaFileDTOList.isEmpty()){ mediaFileDTOList.stream().forEach(e->{ e.setFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); - e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); + e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getMateObjectKey(),seconds).toString()); if(isIllegal){ QueryWrapper queryWrapper = new QueryWrapper().eq("file_id", e.getFileId()); AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); @@ -176,7 +176,7 @@ public class AiCompareServiceImpl implements IAiCompareService { int i = aiCompareMapper.updateById(aiCompareEntity); AiCompareEntity compareEntity = aiCompareMapper.selectById(id); String topic = TopicConst.IMAGE +TopicConst.COMPARE; - List mediaFileDTOS = listMediaFile(compareEntity.getJobId(),43200,false); + List mediaFileDTOS = listMediaFile(compareEntity.getJobId(),compareEntity.getId(),43200,false); mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); return i>0; } @@ -189,7 +189,7 @@ public class AiCompareServiceImpl implements IAiCompareService { @Override public List queryById(Long id) { AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); - return listMediaFile(aiCompareEntity.getJobId(),3600,true); + return listMediaFile(aiCompareEntity.getJobId(),aiCompareEntity.getId(),3600,true); } @Override public Boolean pictureFrame(MapobjectMap) { diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 47f725b..84c237e 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mf.file_index = mfi.file_index and mf.file_type='jpeg' and mfi.file_type='jpeg' JOIN ai_compare ai ON ai.template_id = mfi.job_id WHERE - mf.job_id = #{jobId} + mf.job_id = #{jobId} and ai.id=#{compareId} ORDER BY mf.file_index; From 7321f972b0b8cbe06b9c002a61477f64866512c8 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 22 Apr 2025 10:18:04 +0800 Subject: [PATCH 03/10] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=A3=9E=E8=A1=8C=E6=97=B6=E9=95=BF=E3=80=81=E9=A3=9E?= =?UTF-8?q?=E8=A1=8C=E6=80=BB=E4=BB=B7=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessAlertStatisticsServiceImpl.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index 113719e..a973c67 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.model.StatObj; +import org.dromara.business.feign.FeignDeviceGroup; import org.dromara.business.mapper.BusinessAlertMapper; import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.core.exception.ServiceException; @@ -20,6 +21,7 @@ import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.api.domain.vo.RemotePostVo; import org.dromara.system.api.model.LoginUser; import org.dromara.system.api.model.RoleDTO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -58,6 +60,10 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @DubboReference(timeout = 30000) RemoteDataScopeService remoteDataScopeService; + @Autowired + FeignDeviceGroup feignDeviceGroup; + + /** * 按照月份分类预警数量 * @param businessAlertBo @@ -176,7 +182,17 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- //获取飞行总架次、总时长 - Map countMap = RedisUtils.getCacheMap(FLY_COUNT); + //获取机场信息根据当前登录人 + List deviceSnList = ObjectUtil.isNotEmpty(feignDeviceGroup.listDevice(LoginHelper.getUserId()))?feignDeviceGroup.listDevice(LoginHelper.getUserId()):ListUtil.empty(); + + + //过滤redis中用户所拥有的设备 + Map countMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_COUNT)) + .map(map -> map.entrySet().stream() + .filter(entry -> deviceSnList.contains(entry.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) + .orElse(new HashMap<>()); + int flyCount; if (ObjectUtil.isNotEmpty(countMap)){ @@ -193,7 +209,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist flyCount = 0; } - Map accTimeMap = RedisUtils.getCacheMap(FLY_ACC_TIME); + //过滤redis中用户所拥有的设备 + Map accTimeMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_ACC_TIME)) + .map(map -> map.entrySet().stream() + .filter(entry -> deviceSnList.contains(entry.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) + .orElse(new HashMap<>()); + + double flyAccTime; if (ObjectUtil.isNotEmpty(accTimeMap)) { From 648fad0e8a13ddf9550237e24f0b66d352f92f1a Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 22 Apr 2025 15:07:25 +0800 Subject: [PATCH 04/10] =?UTF-8?q?[feat]=201=E3=80=81=E5=BC=80=E5=8F=91app?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/mapper/BusinessAlertMapper.java | 13 ++++--- .../service/IBusinessAlertService.java | 3 ++ .../impl/BusinessAlertServiceImpl.java | 18 ++++++++++ .../BusinessAlertStatisticsServiceImpl.java | 13 ++++++- .../mapper/business/BusinessAlertMapper.xml | 36 +++++++++++++++++++ 5 files changed, 78 insertions(+), 5 deletions(-) diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 30f01ac..b363bd0 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -24,12 +24,12 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageBusinessAlert(Page page, QueryWrapper ew); + Page pageBusinessAlert(@Param("page") Page page,@Param("ew") QueryWrapper ew); @DataPermission( @DataColumn(key = "deptName", value = "t.dept_id") ) - Page pageAlertFinish(Page page, QueryWrapper ew); + Page pageAlertFinish(@Param("page") Page page,@Param("ew") QueryWrapper ew); /** * 处理中 @@ -40,13 +40,17 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageAlertTodo(Page page, QueryWrapper ew); + Page pageAlertTodo(@Param("page") Page page,@Param("ew") QueryWrapper ew); @DataPermission( @DataColumn(key = "deptName", value = "t.dept_id") ) - Page pageBusinessAlertCancel(Page build, QueryWrapper ew); + Page pageBusinessAlertCancel(@Param("page") Page page,@Param("ew") QueryWrapper ew); + @DataPermission( + @DataColumn(key = "deptName", value = "t.dept_id") + ) + List listTodoAlert(@Param("ew") QueryWrapper ew); List> listMonthAlert(@Param("param") BusinessAlertBo businessAlertBo); @@ -97,4 +101,5 @@ public interface BusinessAlertMapper extends BaseMapperPlus listAppAlertCount(@Param("param") BusinessAlertBo businessAlertBo); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java index 28c2e0d..2e713ba 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java @@ -80,4 +80,7 @@ public interface IBusinessAlertService { Boolean deleteAlert(List alertIdList); void batchUpdateDept(List alertVoList); + + List listTodoAlert(BusinessAlertBo businessAlertBo); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index ab2a626..50bda9a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -302,6 +302,24 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return TableDataInfo.build(page); } + /** + * 查询当前用户待办预警 + * @return + */ + @Override + public List listTodoAlert(BusinessAlertBo businessAlertBo) { + QueryWrapper wrapper = buildQueryWrapper(businessAlertBo); + + if (ObjectUtil.isEmpty(wrapper)){ + return ListUtil.empty(); + } + + wrapper.eq("t.node_type", 1); + wrapper.in("t.approver", remoteWorkflowService.getPermissions()); + wrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus()); + + return this.baseMapper.listTodoAlert(wrapper); + } /** * 查询当前用户待办预警 diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index a973c67..7ac7640 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.business.domain.BusinessAlert; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.model.StatObj; import org.dromara.business.feign.FeignDeviceGroup; import org.dromara.business.mapper.BusinessAlertMapper; +import org.dromara.business.service.IBusinessAlertService; import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.redis.utils.RedisUtils; @@ -63,6 +65,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @Autowired FeignDeviceGroup feignDeviceGroup; + private final IBusinessAlertService businessAlertService; + /** * 按照月份分类预警数量 @@ -715,7 +719,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist public Map listAppAlertCount(BusinessAlertBo businessAlertBo) { //构建查询数据权限 createPermissions(businessAlertBo); - return baseMapper.listAppAlertCount(businessAlertBo); + + Map result = baseMapper.listAppAlertCount(businessAlertBo); + + List businessAlerts = businessAlertService.listTodoAlert(businessAlertBo); + + result.put("todoCount",businessAlerts.size()); + + return result; } /** diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index e4955f0..e2e815c 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -95,6 +95,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.getCustomSqlSegment} + + From 0f8f8603ba12a3a329ec83ac549edd581ce40603 Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Wed, 23 Apr 2025 11:28:27 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudapi/wayline/api/IHttpWaylineService.java | 1 + .../dromara/sample/manage/model/dto/DeviceDTO.java | 2 +- .../manage/service/impl/DeviceServiceImpl.java | 1 + .../manage/service/impl/SDKDeviceService.java | 5 ++++- .../wayline/controller/WaylineFileController.java | 14 ++++++++++---- .../sample/wayline/model/dto/WaylineFileDTO.java | 2 ++ .../wayline/model/entity/WaylineFileEntity.java | 2 ++ .../wayline/service/IWaylineFileService.java | 4 ++-- .../service/impl/WaylineFileServiceImpl.java | 9 +++++++-- 9 files changed, 30 insertions(+), 10 deletions(-) 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(); } From fc55fa0267d3efa501f5a1cd317866c26acf73d8 Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Wed, 23 Apr 2025 11:30:35 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/sdk/cloudapi/wayline/api/IHttpWaylineService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 202bd4f..e757ffb 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,7 +48,7 @@ public interface IHttpWaylineService { HttpResultResponse> getWaylineList( @Valid @ParameterObject GetWaylineListRequest request, @PathVariable(name = "workspace_id") String workspaceId, - @PathVariable(name = "proIds") List proIds, + @PathVariable(name = "proId") Integer proId, HttpServletRequest req, HttpServletResponse rsp); /** From 1cf4aa57f3950c9d1fcb6f5e55541c6b7e27b5d7 Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Sun, 4 May 2025 19:23:28 +0800 Subject: [PATCH 08/10] 1 --- .../sdk/cloudapi/media/api/IHttpMediaService.java | 3 ++- .../cloudapi/wayline/api/IHttpWaylineService.java | 2 +- .../manage/controller/DeviceController.java | 15 ++++++++++----- .../manage/model/param/DeviceQueryParam.java | 2 ++ .../sample/manage/service/IDeviceService.java | 4 ++-- .../manage/service/impl/DeviceServiceImpl.java | 13 +++++++++---- .../sample/media/controller/FileController.java | 6 ++++-- .../sample/media/controller/MediaController.java | 4 ++-- .../sample/media/model/MediaFileEntity.java | 3 +++ .../sample/media/service/IFileService.java | 4 ++-- .../sample/media/service/IMediaService.java | 2 +- .../media/service/impl/FileServiceImpl.java | 7 +++++-- .../media/service/impl/MediaServiceImpl.java | 6 +++--- .../wayline/controller/WaylineFileController.java | 4 ++-- .../wayline/controller/WaylineJobController.java | 7 +++++-- .../sample/wayline/model/dto/WaylineJobDTO.java | 3 +++ .../wayline/model/entity/WaylineJobEntity.java | 3 +++ .../wayline/service/IWaylineFileService.java | 2 +- .../wayline/service/IWaylineJobService.java | 2 +- .../service/impl/WaylineFileServiceImpl.java | 6 +++--- .../service/impl/WaylineJobServiceImpl.java | 5 ++++- 21 files changed, 68 insertions(+), 35 deletions(-) diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java index b100045..84dbc89 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/media/api/IHttpMediaService.java @@ -70,9 +70,10 @@ public interface IHttpMediaService { value = "{\"code\": 0, \"message\":\"success\", \"data\": \"media/DJI_20220831151616_0004_W_Waypoint4.JPG\"}" )}))) - @PostMapping(PREFIX + "/workspaces/{workspace_id}/upload-callback") + @PostMapping(PREFIX + "/workspaces/{workspace_id}/{pro_id}/upload-callback") HttpResultResponse mediaUploadCallback( @PathVariable(name = "workspace_id") String workspaceId, + @PathVariable(name = "pro_id") Integer proId, @Valid @RequestBody MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp); 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 e757ffb..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,7 +48,7 @@ public interface IHttpWaylineService { HttpResultResponse> getWaylineList( @Valid @ParameterObject GetWaylineListRequest request, @PathVariable(name = "workspace_id") String workspaceId, - @PathVariable(name = "proId") Integer proId, + @PathVariable(name = "proIds") List proIds, HttpServletRequest req, HttpServletResponse rsp); /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java index bd1ca9d..55c84df 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java @@ -9,6 +9,7 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO; +import org.dromara.sample.manage.service.IDeviceProService; import org.dromara.sample.manage.service.IDeviceService; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; @@ -37,6 +38,10 @@ public class DeviceController { @Autowired private IDeviceService deviceService; + + @Autowired + private IDeviceProService deviceProService; + /** * 获取一个工作区中所有在线设备的列表。 * Get the topology list of all online devices in one workspace. @@ -45,8 +50,8 @@ public class DeviceController { @GetMapping("/{workspace_id}/devices") @Operation(summary = "获取一个工作区中所有在线设备的列表。", description = "获取一个工作区中所有在线设备的列表") public HttpResultResponse> getDevices(@PathVariable("workspace_id") String workspaceId, - @RequestParam(name = "nickname",required = false) String nickname) { - List devicesList = deviceService.getDevicesTopoForWeb(workspaceId,nickname); + @RequestParam(name = "nickname",required = false) String nickname,@RequestParam(name = "proIds",required = false) List proIds) { + List devicesList = deviceService.getDevicesTopoForWeb(workspaceId,nickname,proIds); return HttpResultResponse.success(devicesList); } @@ -92,9 +97,9 @@ public class DeviceController { @PathVariable("workspace_id") String workspaceId,Integer domain, @RequestParam(name = "pageNum", defaultValue = "1") Long page, @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, - @RequestParam(name = "nickname",required = false) String nickname) { - LoginUser loginUser = LoginHelper.getLoginUser(); - PaginationData devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain,nickname); + @RequestParam(name = "nickname",required = false) String nickname, + @RequestParam(name = "proIds",required = false) List proIds) { + PaginationData devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain,nickname,proIds); return HttpResultResponse.success(devices); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java index 301b75c..55368e4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java @@ -35,4 +35,6 @@ public class DeviceQueryParam { private boolean orderBy; private boolean isAsc; + + private List proIds; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java index 0e046a6..93ce040 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java @@ -66,7 +66,7 @@ public interface IDeviceService { * @param workspaceId * @return */ - List getDevicesTopoForWeb(String workspaceId,String nickname); + List getDevicesTopoForWeb(String workspaceId,String nickname,List proIds); /** @@ -129,7 +129,7 @@ public interface IDeviceService { * @param domain * @return */ - PaginationData getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain,String nickname); + PaginationData getBoundDevicesWithDomain(String workspaceId, Long page, Long pageSize, Integer domain,String nickname,List proIds); /** * Unbind device base on device's sn. 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 5bbdf41..c305431 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 @@ -1,5 +1,6 @@ package org.dromara.sample.manage.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -220,21 +221,24 @@ public class DeviceServiceImpl implements IDeviceService { } }) .eq(StringUtils.hasText(param.getWorkspaceId()), - DeviceEntity::getWorkspaceId, param.getWorkspaceId()) + DeviceEntity::getWorkspaceId, param.getWorkspaceId()) .eq(param.getBoundStatus() != null, DeviceEntity::getBoundStatus, param.getBoundStatus()) + .in(ObjectUtil.isAllNotEmpty(param.getProIds()), + DeviceEntity::getDeviceSn, param.getProIds()) .orderBy(param.isOrderBy(), - param.isAsc(), DeviceEntity::getId)) + param.isAsc(), DeviceEntity::getId)) .stream() .map(this::deviceEntityConvertToDTO) .collect(Collectors.toList()); } @Override - public List getDevicesTopoForWeb(String workspaceId,String nickname) { + public List getDevicesTopoForWeb(String workspaceId,String nickname,List proIds) { List devicesList = this.getDevicesByParams( DeviceQueryParam.builder() .workspaceId(workspaceId) .domains(List.of(DeviceDomainEnum.REMOTER_CONTROL.getDomain(), DeviceDomainEnum.DOCK.getDomain())) + .proIds(proIds) .build()); devicesList.stream() @@ -494,13 +498,14 @@ public class DeviceServiceImpl implements IDeviceService { @Override public PaginationData getBoundDevicesWithDomain(String workspaceId, Long page, - Long pageSize, Integer domain,String nickname) { + Long pageSize, Integer domain,String nickname,List proIds) { Page pagination = mapper.selectPage(new Page<>(page, pageSize), new LambdaQueryWrapper() .eq(DeviceEntity::getDomain, domain) .eq(DeviceEntity::getWorkspaceId, workspaceId) .eq(DeviceEntity::getBoundStatus, true) + .in(ObjectUtil.isAllNotEmpty(proIds),DeviceEntity::getProId, proIds) .eq(org.dromara.common.core.utils.StringUtils.isNotEmpty(nickname),DeviceEntity::getNickname,nickname)); List devicesList = pagination.getRecords().stream().map(this::deviceEntityConvertToDTO) .peek(device -> { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java index d53add4..3690ef8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.net.URL; +import java.util.List; /** * @author sean @@ -37,8 +38,9 @@ public class FileController { @Operation(summary = "根据工作区id获取此工作区中所有媒体文件的信息。", description = "根据工作区id获取此工作区中所有媒体文件的信息。") public HttpResultResponse> getFilesList(@RequestParam(name = "pageNum", defaultValue = "1") Long page, @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, - @PathVariable(name = "workspace_id") String workspaceId) { - PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize); + @PathVariable(name = "workspace_id") String workspaceId, + @RequestParam(name = "deviceSns",required = false) List proIds) { + PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize,proIds); return HttpResultResponse.success(filesList); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java index 2fe3bc4..69dabb9 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/MediaController.java @@ -52,8 +52,8 @@ public class MediaController implements IHttpMediaService { * @return */ @Override - public HttpResultResponse mediaUploadCallback( String workspaceId, @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { - mediaService.saveMediaFile(workspaceId, request); + public HttpResultResponse mediaUploadCallback( String workspaceId,Integer proId, @Valid MediaUploadCallbackRequest request, HttpServletRequest req, HttpServletResponse rsp) { + mediaService.saveMediaFile(workspaceId, request,proId); return HttpResultResponse.success(request.getObjectKey()); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java index ac9b1b0..7d53fc8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileEntity.java @@ -111,5 +111,8 @@ public class MediaFileEntity implements Serializable { @TableField("file_index") private Integer fileIndex; + + @TableField("pro_id") + private Integer proId; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java index 62adab9..e3edb3a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java @@ -29,7 +29,7 @@ public interface IFileService { * @param file * @return */ - Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask); + Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask,Integer proId); /** * Query information about all files in this workspace based on the workspace id. @@ -45,7 +45,7 @@ public interface IFileService { * @param pageSize * @return */ - PaginationData getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize); + PaginationData getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize,List proIds); /** * Get the download address of the file. diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java index 141039d..51940dc 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IMediaService.java @@ -26,7 +26,7 @@ public interface IMediaService { * @param file * @return */ - Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file); + Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file,Integer proId); /** * Query tiny fingerprints about all files in this workspace based on the workspace id. diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java index 4b20be7..ca5f149 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.sample.media.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -65,10 +66,11 @@ public class FileServiceImpl implements IFileService { } @Override - public Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask) { + public Integer saveFile(String workspaceId, MediaUploadCallbackRequest file, FlightTask flightTask,Integer proId) { MediaFileEntity fileEntity = this.fileUploadConvertToEntity(file,flightTask); fileEntity.setWorkspaceId(workspaceId); fileEntity.setFileId(UUID.randomUUID().toString()); + fileEntity.setProId(proId); fileEntity.setFileType(fileEntity.getFileName().substring( fileEntity.getFileName().lastIndexOf(".")+1)); if(!fileEntity.getFileType().equals("DAT")){ fileEntity.setFileStatus(fileEntity.getFileName().substring( fileEntity.getFileName().lastIndexOf("_")+1, fileEntity.getFileName().lastIndexOf("."))); @@ -91,11 +93,12 @@ public class FileServiceImpl implements IFileService { } @Override - public PaginationData getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize) { + public PaginationData getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize,List proIds) { Page pageData = mapper.selectPage( new Page(page, pageSize), new LambdaQueryWrapper() .eq(MediaFileEntity::getWorkspaceId, workspaceId) + .in(ObjectUtil.isAllNotEmpty(proIds),MediaFileEntity::getProId, proIds) .orderByDesc(MediaFileEntity::getId)); List records = pageData.getRecords() .stream() diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java index f6bcd97..366e7d7 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java @@ -79,8 +79,8 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ } @Override - public Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file) { - return fileService.saveFile(workspaceId, file,null); + public Integer saveMediaFile(String workspaceId, MediaUploadCallbackRequest file,Integer proId) { + return fileService.saveFile(workspaceId, file,null,proId); } @Override @@ -180,7 +180,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ file.setPath(objectKey.substring(Optional.of(objectKey.indexOf("mediafile")) .filter(index -> index > 0).map(index -> index++).orElse(0), objectKey.lastIndexOf("/"))); - Integer fileFlag = fileService.saveFile(device.getWorkspaceId(), file, callback.getFlightTask()); + Integer fileFlag = fileService.saveFile(device.getWorkspaceId(), file, callback.getFlightTask(),device.getProId()); return fileFlag> 0; } 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 06fc063..7330e19 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 @@ -92,8 +92,8 @@ public class WaylineFileController implements IHttpWaylineService { * @return */ @Override - public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId, Integer proId, HttpServletRequest req, HttpServletResponse rsp) { - PaginationData data = waylineFileService.getWaylinesByParam(workspaceId, request,proId); + public HttpResultResponse> getWaylineList(@Valid GetWaylineListRequest request,String workspaceId,List proIds, HttpServletRequest req, HttpServletResponse rsp) { + PaginationData data = waylineFileService.getWaylinesByParam(workspaceId, request,proIds); return HttpResultResponse.success(data); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java index c7df333..9493605 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java @@ -24,6 +24,8 @@ import java.sql.SQLException; import java.util.List; import java.util.Set; +import static org.bouncycastle.asn1.x500.style.RFC4519Style.name; + /** * @author sean @@ -67,8 +69,9 @@ public class WaylineJobController { @Operation(summary = "查询工作区中的所有作业。。", description = "查询工作区中的所有作业。") public HttpResultResponse> getJobs(@RequestParam(name = "pageNum", defaultValue = "1") Long page, @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, - @PathVariable(name = "workspace_id") String workspaceId) { - PaginationData data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize); + @PathVariable(name = "workspace_id") String workspaceId, + @RequestParam(name = "proId") List proIds) { + PaginationData data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,proIds); return HttpResultResponse.success(data); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java index 9973b5a..62e97e5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java @@ -10,6 +10,7 @@ import org.dromara.common.sdk.cloudapi.wayline.TaskTypeEnum; import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum; import java.time.LocalDateTime; +import java.util.List; /** * @author sean @@ -72,4 +73,6 @@ public class WaylineJobDTO { private String parentId; private ProgressExtBreakPoint breakPoint; + + private List proIds; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java index 315eb97..853646f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java @@ -94,4 +94,7 @@ public class WaylineJobEntity implements Serializable { @TableField(exist = false) private ProgressExtBreakPoint breakPoint; + + @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 be48b66..5c491c2 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 @@ -26,7 +26,7 @@ public interface IWaylineFileService { * @param param * @return */ - PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId); + PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,List proIds); /** * Query the information of this wayline file according to the wayline file id. diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java index a0c6492..5b4d88b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java @@ -69,7 +69,7 @@ public interface IWaylineJobService { * @param pageSize * @return */ - PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize); + PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds); /** * Query the wayline execution status of the dock. 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 ffa5203..cdb0df0 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 @@ -78,7 +78,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { private RemoteFileService remoteFileService; @Override - public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,Integer proId) { + public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param,List proIds) { // Paging Query Page page = mapper.selectPage( new Page(param.getPage(), param.getPageSize()), @@ -103,8 +103,8 @@ public class WaylineFileServiceImpl implements IWaylineFileService { .and(ObjectUtil.isNotEmpty(param.getDeviceSn()), wrapper -> { wrapper.eq(WaylineFileEntity::getDeviceSn, param.getDeviceSn()).or(); }) - .and(proId != null, wrapper -> { - wrapper.in(WaylineFileEntity::getProId, proId).or(); + .and(ObjectUtil.isAllNotEmpty(proIds), wrapper -> { + wrapper.in(WaylineFileEntity::getProId, proIds).or(); }) .like(Objects.nonNull(param.getKey()), WaylineFileEntity::getName, param.getKey()) // There is a risk of SQL injection diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index 23d1c98..e504d0f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.sample.wayline.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -154,11 +155,13 @@ public class WaylineJobServiceImpl implements IWaylineJobService { } @Override - public PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize) { + public PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds) { Page pageData = mapper.selectPage( new Page(page, pageSize), new LambdaQueryWrapper() .eq(WaylineJobEntity::getWorkspaceId, workspaceId) + .eq(WaylineJobEntity::getWorkspaceId, workspaceId) + .in(ObjectUtil.isAllNotEmpty(proIds),WaylineJobEntity::getProId,proIds) .orderByDesc(WaylineJobEntity::getId)); List records = pageData.getRecords() .stream() From ec7d7da18f662ad288c6018cac634077891d7070 Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Tue, 6 May 2025 15:42:14 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/model/dto/DeviceQrtzDTO.java | 2 ++ .../media/controller/FileController.java | 2 +- .../wayline/service/IWaylineJobService.java | 2 +- .../service/impl/FlightTaskServiceImpl.java | 20 +++++++++++++++---- .../service/impl/SDKWaylineService.java | 15 +++++++++++++- .../service/impl/WaylineJobServiceImpl.java | 5 ++++- .../resources/mapper/DeviceQrtzMapper.xml | 6 ++++++ 7 files changed, 44 insertions(+), 8 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java index 8b7f833..0f061cb 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java @@ -96,4 +96,6 @@ public class DeviceQrtzDTO { private String deptName; private ListdeptIds; + + private List proIds; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java index 3690ef8..40f0fb4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java @@ -39,7 +39,7 @@ public class FileController { public HttpResultResponse> getFilesList(@RequestParam(name = "pageNum", defaultValue = "1") Long page, @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, @PathVariable(name = "workspace_id") String workspaceId, - @RequestParam(name = "deviceSns",required = false) List proIds) { + @RequestParam(name = "pro_ids",required = false) List proIds) { PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize,proIds); return HttpResultResponse.success(filesList); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java index 5b4d88b..cf8f6b5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java @@ -28,7 +28,7 @@ public interface IWaylineJobService { * @param endTime The time the job ended. * @return */ - Optional createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime); + Optional createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime, Integer proId); /** * Create a sub-task based on the information of the parent task. 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 e3011e4..745b2e4 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 @@ -241,8 +241,14 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) { continue; } - - Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime)); + Optional deviceOnline = deviceRedisService.getDeviceOnline(param.getDockSn()); + if(deviceOnline.isEmpty()){ + throw new SQLException("机场信息不存在"); + } + if(deviceOnline.get().getProId() == null){ + throw new SQLException("项目组不存在"); + } + Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime),deviceOnline.get().getProId()); if (waylineJobOpt.isEmpty()) { throw new SQLException("无法创建路线作业。"); } @@ -273,8 +279,14 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) { continue; } - - Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime)); + Optional deviceOnline = deviceRedisService.getDeviceOnline(param.getDockSn()); + if(deviceOnline.isEmpty()){ + throw new SQLException("机场信息不存在"); + } + if(deviceOnline.get().getProId() == null){ + throw new SQLException("项目组不存在"); + } + Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime),deviceOnline.get().getProId()); if (waylineJobOpt.isEmpty()) { throw new SQLException("无法创建路线作业。"); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java index ddbe4f4..4e18381 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java @@ -3,6 +3,7 @@ package org.dromara.sample.wayline.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.dromara.common.core.constant.DeviceQrtzConstants; +import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.cloudapi.wayline.api.AbstractWaylineService; import org.dromara.common.sdk.mqtt.MqttReply; @@ -16,8 +17,10 @@ import org.dromara.sample.common.error.CommonErrorEnum; import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity; import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; import org.dromara.sample.manage.model.enums.UserTypeEnum; +import org.dromara.sample.manage.service.IDeviceFlightRecordsService; import org.dromara.sample.manage.service.IDeviceRedisService; import org.dromara.sample.media.model.MediaFileCountDTO; import org.dromara.sample.media.service.IMediaRedisService; @@ -71,6 +74,9 @@ public class SDKWaylineService extends AbstractWaylineService { @Autowired private IWebSocketMessageService webSocketMessageService; + @Autowired + private IDeviceFlightRecordsService deviceFlightRecordsService; + @Override public TopicEventsResponse deviceExitHomingNotify(TopicEventsRequest request, MessageHeaders headers) { return super.deviceExitHomingNotify(request, headers); @@ -105,7 +111,14 @@ public class SDKWaylineService extends AbstractWaylineService { .completedTime(LocalDateTime.now()) .mediaCount(output.getExt().getMediaCount()) .build(); - + Optional deviceOsd = deviceRedisService.getDeviceOsd(deviceOpt.get().getChildDeviceSn(), OsdDockDrone.class); + Integer totalFlightSorties = deviceOsd.get().getTotalFlightSorties(); + Float totalFlightTime = deviceOsd.get().getTotalFlightTime(); + DeviceFlightRecordsEntity deviceFlightRecords = new DeviceFlightRecordsEntity(); + deviceFlightRecords.setDeviceSn(response.getGateway()); + deviceFlightRecords.setFlyCount(totalFlightSorties); + deviceFlightRecords.setFlyAccTime(totalFlightTime.intValue()); + deviceFlightRecordsService.saveDeviceFlight(deviceFlightRecords); // record the update of the media count. if (Objects.nonNull(job.getMediaCount()) && job.getMediaCount() != 0) { mediaRedisService.setMediaCount(response.getGateway(), job.getJobId(), diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index e504d0f..c7cb60f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -13,6 +13,7 @@ import org.dromara.common.sdk.cloudapi.device.OsdDockDrone; import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.common.Pagination; import org.dromara.common.sdk.common.PaginationData; +import org.dromara.common.sdk.exception.CloudSDKException; import org.dromara.sample.component.mqtt.model.EventsReceiver; import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.service.IDeviceRedisService; @@ -36,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.sql.SQLException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; @@ -82,7 +84,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService { } @Override - public Optional createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime) { + public Optional createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime,Integer proId) { if (Objects.isNull(param)) { return Optional.empty(); } @@ -104,6 +106,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService { .rthAltitude(param.getRthAltitude()) .mediaCount(0) .breakPoint(param.getBreakPoint()) + .proId(proId) .build(); return insertWaylineJob(jobEntity); diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml index 1a4f704..188fc45 100644 --- a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml @@ -43,6 +43,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + AND wd.pro_id in + + #{proId} + + order by wdq.status asc, wdq.create_time desc From 1f43d62910239122e286ad97f5fee73f3e174dca Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Wed, 7 May 2025 15:23:09 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/manage/service/impl/SDKDeviceService.java | 8 ++++++++ .../sample/wayline/controller/WaylineJobController.java | 5 +++-- .../sample/wayline/service/IWaylineJobService.java | 2 +- .../wayline/service/impl/WaylineJobServiceImpl.java | 4 ++-- 4 files changed, 14 insertions(+), 5 deletions(-) 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 15fdca6..07163ac 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 @@ -160,6 +160,13 @@ public class SDKDeviceService extends AbstractDeviceService { } DeviceDTO device = deviceOpt.get(); + if(request.getData().getLatitude() != null && request.getData().getLongitude() != null + && ((deviceOpt.get().getLatitude() == null && deviceOpt.get().getLongitude() == null)) || (request.getData().getLatitude() != deviceOpt.get().getLatitude() && request.getData().getLongitude() != deviceOpt.get().getLongitude())){ + deviceOpt.get().setLatitude(request.getData().getLatitude()); + deviceOpt.get().setLongitude(request.getData().getLongitude()); + deviceRedisService.setDeviceOnline(deviceOpt.get()); + deviceService.updateDevice(deviceOpt.get()); + } if (StringUtils.hasText(device.getChildDeviceSn())) { deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren); } @@ -175,6 +182,7 @@ public class SDKDeviceService extends AbstractDeviceService { deviceService.pushOsdDataToWeb(device.getWorkspaceId(), BizCodeEnum.DOCK_OSD, from, request.getData()); } + @Override public void osdDockDrone(TopicOsdRequest request, MessageHeaders headers) { String from = request.getFrom(); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java index 9493605..0944787 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java @@ -70,8 +70,9 @@ public class WaylineJobController { public HttpResultResponse> getJobs(@RequestParam(name = "pageNum", defaultValue = "1") Long page, @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, @PathVariable(name = "workspace_id") String workspaceId, - @RequestParam(name = "proId") List proIds) { - PaginationData data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,proIds); + @RequestParam(name = "proId") List proIds, + @RequestParam(name = "name") String name) { + PaginationData data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,proIds,name); return HttpResultResponse.success(data); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java index cf8f6b5..3eb9066 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java @@ -69,7 +69,7 @@ public interface IWaylineJobService { * @param pageSize * @return */ - PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds); + PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds,String name); /** * Query the wayline execution status of the dock. diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index c7cb60f..29a1fdc 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -158,12 +158,12 @@ public class WaylineJobServiceImpl implements IWaylineJobService { } @Override - public PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds) { + public PaginationData getJobsByWorkspaceId(String workspaceId, long page, long pageSize,List proIds,String name) { Page pageData = mapper.selectPage( new Page(page, pageSize), new LambdaQueryWrapper() .eq(WaylineJobEntity::getWorkspaceId, workspaceId) - .eq(WaylineJobEntity::getWorkspaceId, workspaceId) + .like(WaylineJobEntity::getName, name).or().like(WaylineJobEntity::getWaylineName,name) .in(ObjectUtil.isAllNotEmpty(proIds),WaylineJobEntity::getProId,proIds) .orderByDesc(WaylineJobEntity::getId)); List records = pageData.getRecords()