From e39e788ddc5befdc8356b21192ede40c4f30662f Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Thu, 20 Nov 2025 09:21:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 4 +-- .../drone/domain/DroDroneBigPicture.java | 5 ++++ .../drone/domain/vo/DroDroneBigPictureVo.java | 5 ++++ .../IFacPhotovoltaicPanelPartsService.java | 4 +-- .../service/IFacPhotovoltaicPanelService.java | 7 +++-- .../FacPhotovoltaicPanelPartsServiceImpl.java | 25 ++++++++++++---- .../impl/FacPhotovoltaicPanelServiceImpl.java | 16 +++++++--- .../PgsProgressPlanDetailRecognizerVo.java | 30 +++++++++++++++++++ .../PgsProgressPlanDetailServiceImpl.java | 17 +++++++---- .../impl/HseViolationRecordServiceImpl.java | 10 +++---- 10 files changed, 94 insertions(+), 29 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progressplandetail/PgsProgressPlanDetailRecognizerVo.java diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml index 10ce24e1..235b008a 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml @@ -41,10 +41,10 @@ snail-job: spring: ai: dashscope: - api-key: xxx + api-key: sk-8d8df92fcbac4bd2922edba30b0bb8fa chat: options: - model: qwen-plus + model: qwen3-max datasource: type: com.zaxxer.hikari.HikariDataSource # 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/DroDroneBigPicture.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/DroDroneBigPicture.java index b3d717b8..3771c88d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/DroDroneBigPicture.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/DroDroneBigPicture.java @@ -63,6 +63,11 @@ public class DroDroneBigPicture extends BaseEntity { */ private Long recognizePic; + /** + * 识别结果 + */ + private String recognizeResult; + /** * tif文件 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/vo/DroDroneBigPictureVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/vo/DroDroneBigPictureVo.java index b1f8114f..3db3df83 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/vo/DroDroneBigPictureVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/drone/domain/vo/DroDroneBigPictureVo.java @@ -86,6 +86,11 @@ public class DroDroneBigPictureVo implements Serializable { @ExcelProperty(value = "识别结果图片") private Long recognizePic; + /** + * 识别结果 + */ + private String recognizeResult; + /** * tif文件 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java index a1c7bb42..ce34a424 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java @@ -10,6 +10,7 @@ import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPan import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.manager.recognizermanager.vo.RecognizeConvertCoordinateResult; +import org.dromara.progress.domain.vo.progressplandetail.PgsProgressPlanDetailRecognizerVo; import java.util.Collection; import java.util.Date; @@ -108,6 +109,5 @@ public interface IFacPhotovoltaicPanelPartsService { * @param coordinateList 识别结果 * @param type 类型 */ - void updateFinishNumberByCoordinate(List projectIds, List coordinateList, String type); - + List updateFinishNumberByCoordinate(List projectIds, List coordinateList, String type); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelService.java index 4e947ad9..83f1cd05 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelService.java @@ -13,6 +13,7 @@ import org.dromara.facility.domain.dto.photovoltaicpanel.FacPhotovoltaicPanelUpd import org.dromara.facility.domain.vo.photovoltaicpanel.FacPhotovoltaicPanelVo; import org.dromara.manager.recognizermanager.vo.RecognizeConvertCoordinateResult; import org.dromara.progress.domain.PgsProgressCategory; +import org.dromara.progress.domain.vo.progressplandetail.PgsProgressPlanDetailRecognizerVo; import java.util.Collection; import java.util.List; @@ -136,7 +137,7 @@ public interface IFacPhotovoltaicPanelService extends IService projectIds, - List coordinateList, - String type); + List updateFinishNumberByCoordinate(List projectIds, + List coordinateList, + String type); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java index ca99bee1..2581071c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java @@ -36,6 +36,7 @@ import org.dromara.manager.recognizermanager.enums.RecognizerTypeEnum; import org.dromara.manager.recognizermanager.vo.RecognizeConvertCoordinateResult; import org.dromara.progress.constant.PgsProgressCategoryConstant; import org.dromara.progress.domain.PgsProgressCategory; +import org.dromara.progress.domain.vo.progressplandetail.PgsProgressPlanDetailRecognizerVo; import org.dromara.progress.service.IPgsProgressCategoryService; import org.dromara.project.service.IBusProjectService; import org.locationtech.jts.geom.Coordinate; @@ -826,15 +827,16 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan */ @Override @Transactional(rollbackFor = Exception.class) - public void updateFinishNumberByCoordinate(List projectIds, - List coordinateList, - String type) { + public List updateFinishNumberByCoordinate(List projectIds, + List coordinateList, + String type) { + List recognizeVoList = new ArrayList<>(); if (CollUtil.isEmpty(coordinateList)) { - return; + return recognizeVoList; } List idCoordinatePointList = getIdCoordinatePointList(projectIds, type); if (CollUtil.isEmpty(idCoordinatePointList)) { - return; + return recognizeVoList; } // 判断识别出来的坐标是否包含某个点 List coordinates = coordinateList.stream().map(coordinate -> @@ -843,8 +845,18 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan final double distance = 1.0; Set matchPoints = JtsPointMatcher.matchPoints(coordinates, idCoordinatePointList, distance); if (CollUtil.isEmpty(matchPoints)) { - return; + return recognizeVoList; } + List voList = idCoordinatePointList.stream() + .filter(idCoordinatePoint -> matchPoints.contains(idCoordinatePoint.getId())) + .map(idCoordinatePoint -> { + PgsProgressPlanDetailRecognizerVo vo = new PgsProgressPlanDetailRecognizerVo(); + vo.setId(idCoordinatePoint.getId()); + vo.setName(idCoordinatePoint.getName()); + vo.setType(type); + return vo; + }).toList(); + recognizeVoList.addAll(voList); // 根据类型,更新对应数据 if (type.equals(RecognizerTypeEnum.HOLE.getValue())) { photovoltaicPanelPointService.updateFinishNumberByCoordinate(projectIds, matchPoints); @@ -853,6 +865,7 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan } else if (type.equals(RecognizerTypeEnum.BRACKET.getValue())) { photovoltaicPanelSupportService.updateFinishNumberByCoordinate(projectIds, matchPoints); } + return recognizeVoList; } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelServiceImpl.java index 297ca6dc..4b85d662 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelServiceImpl.java @@ -41,6 +41,7 @@ import org.dromara.progress.domain.PgsProgressCategory; import org.dromara.progress.domain.PgsProgressPlan; import org.dromara.progress.domain.PgsProgressPlanDetail; import org.dromara.progress.domain.vo.progressplandetail.PgsProgressPlanDetailFinishedVo; +import org.dromara.progress.domain.vo.progressplandetail.PgsProgressPlanDetailRecognizerVo; import org.dromara.progress.service.IPgsProgressCategoryService; import org.dromara.progress.service.IPgsProgressPlanDetailService; import org.dromara.progress.service.IPgsProgressPlanService; @@ -765,9 +766,10 @@ public class FacPhotovoltaicPanelServiceImpl extends ServiceImpl projectIds, - List coordinateList, - String type) { + public List updateFinishNumberByCoordinate(List projectIds, + List coordinateList, + String type) { + List recognizeVoList = new ArrayList<>(); // 获取项目下的所有未完成的光伏板 List panelList = this.lambdaQuery() .in(FacPhotovoltaicPanel::getProjectId, projectIds) @@ -776,7 +778,7 @@ public class FacPhotovoltaicPanelServiceImpl extends ServiceImpl finishPanelList = new HashSet<>(); @@ -785,6 +787,11 @@ public class FacPhotovoltaicPanelServiceImpl extends ServiceImpl> typeMap = targets.stream() .collect(Collectors.groupingBy(RecognizeTargetVo::getType)); + List recognizerVoList = new ArrayList<>(); for (Map.Entry> entry : typeMap.entrySet()) { String type = entry.getKey(); List value = entry.getValue(); @@ -1258,13 +1256,18 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl recognizers = photovoltaicPanelService + .updateFinishNumberByCoordinate(projectIds, coordinateList, type); + recognizerVoList.addAll(recognizers); } else if (type.equals(RecognizerTypeEnum.HOLE.getValue()) || type.equals(RecognizerTypeEnum.COLUMN.getValue())) { - photovoltaicPanelPartsService.updateFinishNumberByCoordinate(projectIds, coordinateList, type); + List recognizers = photovoltaicPanelPartsService + .updateFinishNumberByCoordinate(projectIds, coordinateList, type); + recognizerVoList.addAll(recognizers); } else { log.error("未知设施类型:{}", type); } + } // 将识别数据同步到图片上 Long recognizePic = null; @@ -1280,11 +1283,13 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(HseViolationRecord::getJobKey,jobKey).eq(HseViolationRecord::getVersion,version).last("limit 1"); + wrapper.eq(HseViolationRecord::getJobKey, jobKey).eq(HseViolationRecord::getVersion, version).last("limit 1"); HseViolationRecord one = getOne(wrapper); return getVo(one); }