From b51ca429a5a9bc6e233b6032214b1eba0124c44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?niohe=C2=B7erbao?= Date: Wed, 2 Aug 2023 15:45:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BD=E6=B0=B4=E4=BA=8C=E6=9C=9F=E9=A9=BE?= =?UTF-8?q?=E9=A9=B6=E8=88=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/handler/GlobalResponseHandler.java | 3 +- .../dashboard/constant/AnalysisBasicConstant.java | 18 +++++++ .../pmapi/dashboard/constant/ChartTypeEnum.java | 24 +++++++++ .../dashboard/controller/DashboardController.java | 62 ++++++++++++++++++++++ .../dashboard/manage/DashboardExpertManage.java | 22 ++++++++ .../dashboard/manage/DashboardProjectManage.java | 30 +++++++++++ .../pmapi/dashboard/model/basic/AnalysisChart.java | 25 +++++++++ .../pmapi/dashboard/model/basic/AnalysisData.java | 19 +++++++ .../model/vo/DashboardInvestmentSummaryVO.java | 23 ++++++++ .../model/vo/DashboardProjectCntSummaryVO.java | 24 +++++++++ .../model/vo/DashboardProjectSummaryVO.java | 28 ++++++++++ .../model/vo/ExpertDashboardSummaryVO.java | 28 ++++++++++ 12 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/AnalysisBasicConstant.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/ChartTypeEnum.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/DashboardController.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardExpertManage.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisChart.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisData.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardInvestmentSummaryVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectCntSummaryVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectSummaryVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ExpertDashboardSummaryVO.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java index ad76321..daa00bf 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java @@ -30,7 +30,8 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; "com.ningdatech.pmapi.ding.controller", "com.ningdatech.pmapi.filemanage.controller", "com.ningdatech.pmapi.performance.controller", - "com.ningdatech.pmapi.irs.controller" + "com.ningdatech.pmapi.irs.controller", + "com.ningdatech.pmapi.dashboard.controller" }) public class GlobalResponseHandler implements ResponseBodyAdvice { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/AnalysisBasicConstant.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/AnalysisBasicConstant.java new file mode 100644 index 0000000..f579a02 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/AnalysisBasicConstant.java @@ -0,0 +1,18 @@ +package com.ningdatech.pmapi.dashboard.constant; + +/** + * @author liuxinxin + * @date 2023/8/2 下午2:46 + */ + +public class AnalysisBasicConstant { + + + /** + * 丽水市区域编码 + */ + private static final String LS_REGION_CODE = "331100"; + + + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/ChartTypeEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/ChartTypeEnum.java new file mode 100644 index 0000000..4f7bb1e --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/constant/ChartTypeEnum.java @@ -0,0 +1,24 @@ +package com.ningdatech.pmapi.dashboard.constant; + +/** + * @author liuxinxin + * @date 2023/8/2 下午2:52 + */ + +public enum ChartTypeEnum { + + /** + * 各区域专家数量分布 + */ + REGION_EXPERT_NUMBER_CHART, + + /** + * 各区域专家学历分布 + */ + REGION_EXPERT_EDUCATION_CHART, + + /** + * 各区域专家职称级别分布 + */ + REGION_EXPERT_TITLE_LEVEL_CHART; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/DashboardController.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/DashboardController.java new file mode 100644 index 0000000..58df3ce --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/DashboardController.java @@ -0,0 +1,62 @@ +package com.ningdatech.pmapi.dashboard.controller; + +import com.ningdatech.log.annotation.WebLog; +import com.ningdatech.pmapi.dashboard.manage.DashboardExpertManage; +import com.ningdatech.pmapi.dashboard.manage.DashboardProjectManage; +import com.ningdatech.pmapi.dashboard.model.vo.DashboardInvestmentSummaryVO; +import com.ningdatech.pmapi.dashboard.model.vo.DashboardProjectCntSummaryVO; +import com.ningdatech.pmapi.dashboard.model.vo.DashboardProjectSummaryVO; +import com.ningdatech.pmapi.dashboard.model.vo.ExpertDashboardSummaryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author liuxinxin + * @date 2023/8/2 上午10:36 + */ + +@RestController +@RequestMapping("/api/v1/dashboard/") +@Validated +@RequiredArgsConstructor +@Api(value = "DashboardController", tags = "驾驶舱相关接口") +public class DashboardController { + + private final DashboardExpertManage dashboardExpertManage; + private final DashboardProjectManage dashboardProjectManage; + + @PostMapping("/expert-summary") + @ApiOperation("专家驾驶舱统计数据") + @WebLog("专家驾驶舱统计数据") + public ExpertDashboardSummaryVO getExpertDashboardSummary() { + return dashboardExpertManage.getExpertDashboardSummary(); + } + + @PostMapping("project-summary") + @ApiOperation("驾驶舱项目总览") + @WebLog("驾驶舱项目总览") + public DashboardProjectSummaryVO getProjectSummary() { + return dashboardProjectManage.getProjectSummary(); + } + + @PostMapping("project-cnt-summary") + @ApiOperation("驾驶舱项目数量") + @WebLog("驾驶舱项目数量") + public DashboardProjectCntSummaryVO getProjectCntSummary() { + return dashboardProjectManage.getProjectCntSummary(); + } + + @PostMapping("investment-summary") + @ApiOperation("驾驶舱投资金额") + @WebLog("驾驶舱投资金额") + public DashboardInvestmentSummaryVO getInvestmentSummary() { + return dashboardProjectManage.getInvestmentSummary(); + } + + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardExpertManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardExpertManage.java new file mode 100644 index 0000000..bf6d3fe --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardExpertManage.java @@ -0,0 +1,22 @@ +package com.ningdatech.pmapi.dashboard.manage; + +import com.ningdatech.pmapi.dashboard.model.vo.ExpertDashboardSummaryVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * @author liuxinxin + * @date 2023/8/2 上午10:39 + */ + +@Component +@RequiredArgsConstructor +public class DashboardExpertManage { + + + public ExpertDashboardSummaryVO getExpertDashboardSummary() { + return null; + } + +} + diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java new file mode 100644 index 0000000..1efa449 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java @@ -0,0 +1,30 @@ +package com.ningdatech.pmapi.dashboard.manage; + +import com.ningdatech.pmapi.dashboard.model.vo.DashboardInvestmentSummaryVO; +import com.ningdatech.pmapi.dashboard.model.vo.DashboardProjectCntSummaryVO; +import com.ningdatech.pmapi.dashboard.model.vo.DashboardProjectSummaryVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * @author liuxinxin + * @date 2023/8/2 上午10:39 + */ + +@Component +@RequiredArgsConstructor +public class DashboardProjectManage { + + public DashboardInvestmentSummaryVO getInvestmentSummary() { + return null; + } + + + public DashboardProjectCntSummaryVO getProjectCntSummary() { + return null; + } + + public DashboardProjectSummaryVO getProjectSummary() { + return null; + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisChart.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisChart.java new file mode 100644 index 0000000..7091913 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisChart.java @@ -0,0 +1,25 @@ +package com.ningdatech.pmapi.dashboard.model.basic; + +import com.ningdatech.pmapi.dashboard.constant.ChartTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author liuxinxin + * @date 2023/8/2 下午3:02 + */ + +@Data +@ApiModel("图表数据") +public class AnalysisChart { + + @ApiModelProperty("图表数据类型") + private ChartTypeEnum chartType; + + @ApiModelProperty("数据列表") + private List dataList; + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisData.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisData.java new file mode 100644 index 0000000..1c3151d --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/basic/AnalysisData.java @@ -0,0 +1,19 @@ +package com.ningdatech.pmapi.dashboard.model.basic; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @author liuxinxin + * @date 2023/8/2 下午2:27 + */ + +@ApiModel("分析数据基础类") +public class AnalysisData { + + @ApiModelProperty("key") + private String key; + + @ApiModelProperty("值") + private Object value; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardInvestmentSummaryVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardInvestmentSummaryVO.java new file mode 100644 index 0000000..a4b26d6 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardInvestmentSummaryVO.java @@ -0,0 +1,23 @@ +package com.ningdatech.pmapi.dashboard.model.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author liuxinxin + * @date 2023/8/2 下午3:36 + */ + +@Data +@ApiModel("驾驶舱投资金额统计数据") +public class DashboardInvestmentSummaryVO { + + /** + * 各领域项目投资金额 + * 单位预算TOP5 + * 项目预算TOP5 + * 近5年项目投资走势 + * 各区域项目投资情况 + * 近5年资金核定率走势 + */ +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectCntSummaryVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectCntSummaryVO.java new file mode 100644 index 0000000..138d6d1 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectCntSummaryVO.java @@ -0,0 +1,24 @@ +package com.ningdatech.pmapi.dashboard.model.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author liuxinxin + * @date 2023/8/2 下午3:36 + */ + +@Data +@ApiModel("项目数量驶舱统计数据") +public class DashboardProjectCntSummaryVO { + /** + * 项目增补情况 + * 各类型项目数量 + * 各区域项目数量 + * 各领域项目数量 + * 单位项目数量TOP5 + * 近5年项目数量走势 + * 近5年立项率走势 + * 各阶段项目数量 + */ +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectSummaryVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectSummaryVO.java new file mode 100644 index 0000000..908c5b1 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/DashboardProjectSummaryVO.java @@ -0,0 +1,28 @@ +package com.ningdatech.pmapi.dashboard.model.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author liuxinxin + * @date 2023/8/2 下午3:37 + */ +@Data +@ApiModel("驾驶舱项目总览驶舱统计数据") +public class DashboardProjectSummaryVO { + /** + * 项目总数 + * 待立项项目数 + * 已立项项目数 + * 项目画像 + * 项目立项率 + * 项目申报总金额 + * 项目批复总金额 + * 项目采购总金额 + * 资金核定率 + * 延期项目数 + * 延期占比 + * 项目变更数量 + * 项目变更金额 + */ +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ExpertDashboardSummaryVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ExpertDashboardSummaryVO.java new file mode 100644 index 0000000..0f5e7b4 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ExpertDashboardSummaryVO.java @@ -0,0 +1,28 @@ +package com.ningdatech.pmapi.dashboard.model.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @author liuxinxin + * @date 2023/8/2 下午3:07 + */ + +@Data +@ApiModel("专家驾驶舱统计数据") +public class ExpertDashboardSummaryVO { + + /** + * 1、各区域专家总数 + * 2、学历分布 + * 3、职称级别分布 + * + * 4、明星专家 + * 5、评审次数 + * 6、各类型评审次数 + */ + + + +} +