From 0926076efa9310e3f1cb05e9a4497a4986e6c5dd Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Thu, 7 Dec 2023 11:37:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/controller/StatisticsController.java | 13 ++-- .../manage/EarlyWarningStatisticsManage.java | 28 ++++++++ .../model/vo/EarlyWarningStatisticsVO.java | 37 +++++++++++ .../impl/HigherUserDataScopeProviderImpl.java | 77 ++++++++++++++++++++++ .../ningdatech/pmapi/sys/manage/NoticeManage.java | 1 - .../pmapi/user/entity/enumeration/RoleEnum.java | 5 +- 6 files changed, 154 insertions(+), 7 deletions(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/EarlyWarningStatisticsManage.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/EarlyWarningStatisticsVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/HigherUserDataScopeProviderImpl.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/StatisticsController.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/StatisticsController.java index 678cbf1..f6e0e5e 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/StatisticsController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/controller/StatisticsController.java @@ -1,9 +1,6 @@ package com.ningdatech.pmapi.dashboard.controller; -import com.ningdatech.pmapi.dashboard.manage.ExpertStatisticsManage; -import com.ningdatech.pmapi.dashboard.manage.FundStatisticsManage; -import com.ningdatech.pmapi.dashboard.manage.MeetingStatisticsManage; -import com.ningdatech.pmapi.dashboard.manage.ProjectCostStatisticsManage; +import com.ningdatech.pmapi.dashboard.manage.*; import com.ningdatech.pmapi.dashboard.model.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -30,6 +27,8 @@ public class StatisticsController { private final ProjectCostStatisticsManage costStatisticsManage; + private final EarlyWarningStatisticsManage earlyWarningStatisticsManage; + @GetMapping("/fund") @ApiOperation("项目资金统计") public FundStatisticsVO fund(@RequestParam(required = false) Integer year) { @@ -53,4 +52,10 @@ public class StatisticsController { public CostStatisticsVO projectCost() { return costStatisticsManage.statistics(); } + + @GetMapping("/early-warning") + @ApiOperation("预警统计") + public EarlyWarningStatisticsVO earlyWarning(@RequestParam(required = false) Integer year) { + return earlyWarningStatisticsManage.statistics(year); + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/EarlyWarningStatisticsManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/EarlyWarningStatisticsManage.java new file mode 100644 index 0000000..084d8b3 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/EarlyWarningStatisticsManage.java @@ -0,0 +1,28 @@ +package com.ningdatech.pmapi.dashboard.manage; + +import com.ningdatech.pmapi.dashboard.model.vo.EarlyWarningStatisticsVO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @Classname EarlyWarningStatisticsManage + * @Description + * @Date 2023/12/05 17:44 + * @Author PoffyZhang + */ +@Component +@RequiredArgsConstructor +@Slf4j +public class EarlyWarningStatisticsManage { + + + + public EarlyWarningStatisticsVO statistics(Integer year) { + EarlyWarningStatisticsVO res = new EarlyWarningStatisticsVO(); + + + + return res; + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/EarlyWarningStatisticsVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/EarlyWarningStatisticsVO.java new file mode 100644 index 0000000..b29b309 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/EarlyWarningStatisticsVO.java @@ -0,0 +1,37 @@ +package com.ningdatech.pmapi.dashboard.model.vo; + +import com.ningdatech.pmapi.common.model.entity.DataDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@Data +@ApiModel(value = "预警统计", description = "") +public class EarlyWarningStatisticsVO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("评审召开总数") + private Integer meetingTotal = 0; + + @ApiModelProperty("评审通过数") + private Integer passReview = 0; + + @ApiModelProperty("评审不通过率") + private BigDecimal notPassRate = BigDecimal.ZERO; + + @ApiModelProperty("各区县召开总数") + private List regionMeetings; + + @ApiModelProperty("预审/验收 会议情况") + private List meetingTypes; + + @ApiModelProperty("各区县不通过率") + private List notPassRegionMeetings; + + @ApiModelProperty("各部门不通过top10") + private List notPassTop10; +} \ No newline at end of file diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/HigherUserDataScopeProviderImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/HigherUserDataScopeProviderImpl.java new file mode 100644 index 0000000..9e3ab5b --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/HigherUserDataScopeProviderImpl.java @@ -0,0 +1,77 @@ +package com.ningdatech.pmapi.datascope.provider.impl; + +import cn.hutool.core.collection.CollUtil; +import com.google.common.collect.Lists; +import com.ningdatech.pmapi.common.constant.RegionConst; +import com.ningdatech.pmapi.common.helper.RegionCacheHelper; +import com.ningdatech.pmapi.common.helper.UserInfoHelper; +import com.ningdatech.pmapi.datascope.model.DataScopeDTO; +import com.ningdatech.pmapi.datascope.provider.DataScopeProvider; +import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; +import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; +import com.ningdatech.pmapi.user.util.LoginUserUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Optional; + +/** + *

+ * 数据权限 + *

+ * + * @author ZPF + * @since 2023/3/27 23:29 + */ +@Slf4j +@RequiredArgsConstructor +@Component("HIGH_MEMBER") +public class HigherUserDataScopeProviderImpl implements DataScopeProvider { + + private final RegionCacheHelper regionCacheHelper; + private final UserInfoHelper userInfoHelper; + + //和区域管理员一样 + @Override + public Optional findDataFieldProperty() { + UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); + //借由 丽水市的code 来映射市本级的regionCode + Collection regionCodes = regionCacheHelper.listChildRegionCodeList(userFullInfo.getRegionCode(), + RegionConst.RL_CITY); + //如果不是市本级的话 就直接放入本区域的县就好了 + if(CollUtil.isEmpty(regionCodes)){ + regionCodes = Lists.newArrayList(); + regionCodes.add(userFullInfo.getRegionCode()); + } + + DataScopeDTO ds = new DataScopeDTO(); + ds.setRegionCodes(new ArrayList<>(regionCodes)); + ds.setUserId(userFullInfo.getUserId()); + ds.setEmployeeCode(userFullInfo.getEmployeeCode()); + ds.setRole(RoleEnum.REGION_MANAGER); + return Optional.of(ds); + } + + @Override + public Optional findDataFieldProperty(Long userId) { + UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); + //借由 丽水市的code 来映射市本级的regionCode + Collection regionCodes = regionCacheHelper.listChildRegionCodeList(userFullInfo.getRegionCode(), + RegionConst.RL_CITY); + //如果不是市本级的话 就直接放入本区域的县就好了 + if(CollUtil.isEmpty(regionCodes)){ + regionCodes = Lists.newArrayList(); + regionCodes.add(userFullInfo.getRegionCode()); + } + + DataScopeDTO ds = new DataScopeDTO(); + ds.setRegionCodes(new ArrayList<>(regionCodes)); + ds.setUserId(userFullInfo.getUserId()); + ds.setEmployeeCode(userFullInfo.getEmployeeCode()); + ds.setRole(RoleEnum.REGION_MANAGER); + return Optional.of(ds); + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java index d2cca1c..f8a4d8c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NoticeManage.java @@ -37,7 +37,6 @@ import com.ningdatech.pmapi.sys.service.INotifyService; import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo; import com.ningdatech.pmapi.todocenter.model.dto.ProjectAuditMsgExtraDTO; import com.ningdatech.pmapi.user.entity.UserInfo; -import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.service.IUserInfoService; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/enumeration/RoleEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/enumeration/RoleEnum.java index 2eeabe0..06f9885 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/enumeration/RoleEnum.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/entity/enumeration/RoleEnum.java @@ -20,7 +20,8 @@ public enum RoleEnum { /** * 系统角色枚举 */ - NORMAL_MEMBER("普通用户", 7), + NORMAL_MEMBER("普通用户", 8), + HIGH_MEMBER("高级用户", 7), EXPERT("专家", 6), @@ -34,7 +35,7 @@ public enum RoleEnum { VISITOR("访客", 2), - DASHBOARD("工作台", 8); + DASHBOARD("工作台", 9); private final String desc;