diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java index 62023e6b..67551d46 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java @@ -112,5 +112,14 @@ public class EvalProjectController { return evalProjectApi.archiveSupervisionPage(query); } + /** + * 项目档案监管统计(在库项目档案数、流程文档数、机构补充文件数,一条SQL完成) + */ + @ApiOperation("项目档案监管统计") + @GetMapping("/archive-supervision-stat") + public SingleResponse archiveSupervisionStat() { + return evalProjectApi.archiveSupervisionStat(); + } + } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java index 9905ea8a..1f713573 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java @@ -362,6 +362,14 @@ public class EvalProjectExecutor implements EvalProjectApi { return PageResponse.of(result.getRecords(), result.getTotal()); } + /** + * 项目档案监管统计:一条SQL统计在库项目档案数、流程文档数、机构补充文件数。 + */ + @Override + public SingleResponse archiveSupervisionStat() { + return SingleResponse.success(evalProjectMapper.selectArchiveSupervisionStat()); + } + /** * 回填分页结果的流程文档/补充文件统计数与评价类型名称。 */ diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java index fd2488d7..a2adc8b2 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java @@ -58,4 +58,11 @@ public interface EvalProjectApi { * @return 项目档案监管分页数据 */ PageResponse archiveSupervisionPage(EvalProjectArchiveSupervisionPageQuery query); + + /** + * 项目档案监管统计(一条SQL统计在库项目档案数、流程文档数、机构补充文件数) + * + * @return 项目档案监管统计数据 + */ + SingleResponse archiveSupervisionStat(); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectArchiveSupervisionStatCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectArchiveSupervisionStatCO.java new file mode 100644 index 00000000..b475ceee --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectArchiveSupervisionStatCO.java @@ -0,0 +1,20 @@ +package org.qinan.safetyeval.client.co.institution; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 项目档案监管统计 + */ +@Data +public class EvalProjectArchiveSupervisionStatCO { + + @ApiModelProperty("在库项目档案数(有档案文件的项目数,按项目ID去重)") + private Integer inLibraryArchiveCount; + + @ApiModelProperty("流程文档数(record_source=auto_process_record)") + private Integer processFileCount; + + @ApiModelProperty("机构补充文件数(record_source=upload_additional_files)") + private Integer additionalFileCount; +} 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 6b5060fa..73f070bb 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 @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.qinan.safetyeval.client.co.institution.EvalProjectArchiveSupervisionCO; +import org.qinan.safetyeval.client.co.institution.EvalProjectArchiveSupervisionStatCO; import org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO; import org.qinan.safetyeval.client.co.institution.RiskWarningCO; import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO; @@ -92,5 +93,10 @@ public interface EvalProjectMapper extends BaseMapper { */ List selectArchiveFileStatByProjectIds(@Param("projectIds") List projectIds); + /** + * 项目档案监管统计(一条SQL条件聚合:在库项目档案数/流程文档数/机构补充文件数) + */ + EvalProjectArchiveSupervisionStatCO selectArchiveSupervisionStat(); + List getByPersonnelId(@Param("currentUserId") Long currentUserId); } diff --git a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml index b414cc5e..91d82081 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml @@ -367,4 +367,15 @@ GROUP BY f.project_id + + +