From 4c159ba6955f14fb909c0b0d20c3b9c409ac3927 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Mon, 27 Jul 2026 14:37:22 +0800 Subject: [PATCH] 1 --- .../RegulatorEvalProjectMonitorExecutor.java | 32 ++++++++-- .../mapper/EvalProjectMapper.java | 10 ++++ .../resources/mapper/EvalProjectMapper.xml | 58 +++++++++++-------- 3 files changed, 72 insertions(+), 28 deletions(-) diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/regulator/RegulatorEvalProjectMonitorExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/regulator/RegulatorEvalProjectMonitorExecutor.java index 5018e7e..fa796ab 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/regulator/RegulatorEvalProjectMonitorExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/regulator/RegulatorEvalProjectMonitorExecutor.java @@ -32,6 +32,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -102,14 +103,37 @@ public class RegulatorEvalProjectMonitorExecutor implements RegulatorEvalProject public PageResponse surveyPage(RegulatorEvalProjectSurveyPageQuery query) { Page page = new Page<>(query.getCurrent(), query.getSize()); IPage result = evalProjectMapper.selectRegulatorSurveyPage(page, query); - if (result.getRecords() != null) { - // 应到人数固定为2;人脸识别直接复用签退统计结果 - result.getRecords().forEach(co -> { + List records = result.getRecords(); + if (records != null && !records.isEmpty()) { + List projectIds = records.stream() + .map(co -> Long.parseLong(co.getId())) + .collect(Collectors.toList()); + // 按项目ID批量查询人员打卡统计与附件统计,回填到分页结果 + Map personnelMap = evalProjectMapper + .selectSurveyPersonnelStatByProjectIds(projectIds).stream() + .collect(Collectors.toMap(RegulatorEvalProjectSurveyPageCO::getId, co -> co)); + Map attachMap = evalProjectMapper + .selectSurveyAttachStatByProjectIds(projectIds).stream() + .collect(Collectors.toMap(RegulatorEvalProjectSurveyPageCO::getId, co -> co)); + records.forEach(co -> { + // 应到人数固定为2 co.setExpectedCount(SURVEY_EXPECTED_COUNT); + RegulatorEvalProjectSurveyPageCO personnel = personnelMap.get(co.getId()); + if (personnel != null) { + co.setActualCount(personnel.getActualCount()); + co.setSignInCount(personnel.getSignInCount()); + co.setSignOutCount(personnel.getSignOutCount()); + } + RegulatorEvalProjectSurveyPageCO attach = attachMap.get(co.getId()); + if (attach != null) { + co.setScenePhotoCount(attach.getScenePhotoCount()); + co.setNotificationFileUrl(attach.getNotificationFileUrl()); + } + // 人脸识别直接复用签退统计结果 co.setFaceCount(co.getSignOutCount()); }); } - return PageResponse.of(result.getRecords(), result.getTotal()); + return PageResponse.of(records, result.getTotal()); } @Override diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/EvalProjectMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/EvalProjectMapper.java index 8c76b82..878c65f 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/EvalProjectMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/EvalProjectMapper.java @@ -61,6 +61,16 @@ public interface EvalProjectMapper extends BaseMapper { IPage selectRegulatorSurveyPage( Page page, @Param("query") RegulatorEvalProjectSurveyPageQuery query); + /** + * 按项目ID批量统计 eval_survey 人员打卡数据(实到/签到/签退,按 personnel_id 去重) + */ + List selectSurveyPersonnelStatByProjectIds(@Param("projectIds") List projectIds); + + /** + * 按项目ID批量统计 eval_survey_attach 附件数据(现场照片数、告知书文件地址) + */ + List selectSurveyAttachStatByProjectIds(@Param("projectIds") List projectIds); + /** * 监管端-项目踏勘人员打卡信息查询(关联 org_personnel 获取人员姓名,按项目ID查询 eval_survey) */ diff --git a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml index 9d29b05..76ed6db 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml @@ -172,10 +172,7 @@ + 实到/签到/签退/现场照片/告知书等统计数据由业务代码按项目ID批量查询后回填 --> + + + + + +