diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionsCacheHelperImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionsCacheHelperImpl.java index 7eb2e38..2c0fc01 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionsCacheHelperImpl.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionsCacheHelperImpl.java @@ -39,7 +39,11 @@ public class RegionsCacheHelperImpl extends AbstractRegionCacheHelper implements @Override public String getRegionName(String code, int level) { - return getByCodeAndLevel(code, level).getRegionName(); + RegionDTO dto = getByCodeAndLevel(code, level); + if(Objects.nonNull(dto)){ + return dto.getRegionName(); + } + return StringUtils.EMPTY; } @Override diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScope.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScope.java deleted file mode 100644 index 766c2f0..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScope.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ningdatech.pmapi.datascope.aop; - -import com.ningdatech.pmapi.datascope.contants.LambdaDataScopeTypeEnum; - -import java.lang.annotation.*; - -/** - * @Classname LambdaDataScope - * @Description - * @Date 2022/11/11 15:34 - * @Created by PoffyZhang - */ - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface LambdaDataScope { - LambdaDataScopeTypeEnum type() default LambdaDataScopeTypeEnum.ORG; - - //wrapper的下标位置 如果是分页的话 可能是第二个 - int wrapperIndex() default 0; -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScopeAspect.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScopeAspect.java deleted file mode 100644 index 4079892..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/LambdaDataScopeAspect.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.ningdatech.pmapi.datascope.aop; - -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ningdatech.pmapi.datascope.model.DataScopeDTO; -import com.ningdatech.pmapi.datascope.model.DataScopeEntity; -import com.ningdatech.pmapi.datascope.provider.DataScopeContext; -import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; -import com.ningdatech.pmapi.user.util.LoginUserUtil; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import java.util.Objects; -import java.util.Optional; - -/** - * @program: - * @description: 数据权限切面 - * LambdaDataScopeAspect - * @author: PoffyZhang - * @created: 2023/3/11 09:12 - */ -@Aspect -@Component -@Slf4j -@AllArgsConstructor -@Order(10) -public class LambdaDataScopeAspect { - - @Pointcut("@annotation(com.ningdatech.pmapi.datascope.aop.LambdaDataScope)") - public void lambdaDataScopeAspect() { - - } - - @Before("lambdaDataScopeAspect() && @annotation(lambdaDataScope)") - public void before(JoinPoint joinPoint, LambdaDataScope lambdaDataScope) throws Throwable { - Optional currentUserDataScoper = getCurrentUserDataScoper(); - if (!currentUserDataScoper.isPresent()) { - return; - } - DataScopeDTO dataScopeDto = currentUserDataScoper.get(); - LambdaQueryWrapper wrapper = - (LambdaQueryWrapper) joinPoint.getArgs()[lambdaDataScope.wrapperIndex()]; - - if (Objects.isNull(wrapper)) { - return; - } - - switch (lambdaDataScope.type()) { - case REGION: - wrapper.in(CollUtil.isNotEmpty(dataScopeDto.getRegionCodes()), DataScopeEntity::getRegionCode, dataScopeDto.getRegionCodes()); - break; - case ORG: - wrapper.in(StringUtils.isNotBlank(dataScopeDto.getOrgCode()), DataScopeEntity::getOrgCode, dataScopeDto.getOrgCode()); - break; - case EMPLOYEE: - wrapper.in(StringUtils.isNotBlank(dataScopeDto.getEmployeeCode()), DataScopeEntity::getEmployeeCode, dataScopeDto.getEmployeeCode()); - break; - case NONE: - break; - default: - break; - } - - } - - public Optional getCurrentUserDataScoper() { - UserInfoDetails loginUser = LoginUserUtil.loginUserDetail(); - if (Objects.isNull(loginUser) || Objects.isNull(loginUser.getRoleCode())) { - return Optional.empty(); - } - return DataScopeContext.getDataScope(loginUser.getRoleCode().name()); - } -} \ No newline at end of file diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScope.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScope.java deleted file mode 100644 index 5c84e89..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScope.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ningdatech.pmapi.datascope.aop; - -import java.lang.annotation.*; - -/** - * @Classname XmlDataScope - * xml 可以join 所以要设置 别名 - * @Description - * @Date 2022/11/11 15:34 - * @Created by PoffyZhang - */ - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface XmlDataScope { - - String regionAlias() default "r"; - - String orgAlias() default "o"; - - //实体的位置 默认0 如果有分页 那么可能是第二个 - int entityIndex() default 0; -} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScopeAspect.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScopeAspect.java deleted file mode 100644 index a62efe0..0000000 --- a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/aop/XmlDataScopeAspect.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.ningdatech.pmapi.datascope.aop; - -import cn.hutool.core.collection.CollUtil; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -; - -/** - * @program: - * @description: xml sql方式 - * 数据权限切面 - * @author: PoffyZhang - * @created: 2022/11/11 09:12 - */ -@Aspect -@Component -@Slf4j -@AllArgsConstructor -@Order(10) -public class XmlDataScopeAspect { - -// @Pointcut("@annotation(com.ningdatech.carapi.datascope.aop.XmlDataScope)") -// public void xmlDataScopeAspect() { -// -// } -// -// @Before("xmlDataScopeAspect() && @annotation(xmlDataScope)") -// public void before(JoinPoint joinPoint, XmlDataScope xmlDataScope) throws Throwable { -// Optional currentUserDataScoper = getCurrentUserDataScoper(); -// if(!currentUserDataScoper.isPresent()){ -// return; -// } -// DataScopeDto dataScopeDto = currentUserDataScoper.get(); -// Object entity = joinPoint.getArgs()[xmlDataScope.entityIndex()]; -// -// if(Objects.isNull(entity)){ -// return; -// } -// -// StringBuilder sql = new StringBuilder(); -// if(CollUtil.isEmpty(dataScopeDto.getCompanyIds()) -// && CollUtil.isEmpty(dataScopeDto.getRegionIds())){ -// return; -// } -// -// if(CollUtil.isNotEmpty(dataScopeDto.getCompanyIds())){ -// sql.append(" AND " + xmlDataScope.companyAlias() + ".id in (" -// + convertForStr(dataScopeDto.getCompanyIds()) + ")"); -// } -// -// -// if(CollUtil.isNotEmpty(dataScopeDto.getRegionIds())){ -// sql.append(" AND " + xmlDataScope.regionAlias() + ".id in (" -// + convertForStr(dataScopeDto.getRegionIds()) + ")"); -// } -// -// if(sql.length() > 0){ -// Class clazz = entity.getClass(); -// Field dataScopeSql = clazz.getDeclaredField("dataScopeSql"); -// dataScopeSql.setAccessible(true); -// dataScopeSql.set(entity, sql.toString()); -// } -// } -// -// private String convertForStr(List companyIds) { -// if(CollUtil.isEmpty(companyIds)){ -// return StringUtils.EMPTY; -// } -// StringBuilder sql = new StringBuilder(); -// for(Long companyId : companyIds){ -// sql.append(companyId + ","); -// } -// sql.delete(sql.length()-1,sql.length()); -// return sql.toString(); -// } -// -// public Optional getCurrentUserDataScoper(){ -// UserInfoDetails loginUser = LoginUserUtil.loginUserDetail(); -// if(Objects.isNull(loginUser) || Objects.isNull(loginUser.getDataScope())){ -// return Optional.empty(); -// } -// return DataScopeContext.getDataScope(loginUser.getDataScope()); -// } -} \ No newline at end of file diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/DashboardUserDataScopeProviderImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/DashboardUserDataScopeProviderImpl.java new file mode 100644 index 0000000..21c28f2 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/provider/impl/DashboardUserDataScopeProviderImpl.java @@ -0,0 +1,42 @@ +package com.ningdatech.pmapi.datascope.provider.impl; + +import com.google.common.collect.Lists; +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.Optional; + +/** + *

+ * 数据权限 数据看板角色 + *

+ * + * @author ZPF + * @since 2023/3/27 23:29 + */ +@Slf4j +@RequiredArgsConstructor +@Component("DASHBOARD") +public class DashboardUserDataScopeProviderImpl implements DataScopeProvider { + + private final UserInfoHelper userInfoHelper; + + @Override + public Optional findDataFieldProperty() { + UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); + DataScopeDTO ds = new DataScopeDTO(); + ds.setEmployeeCode(userFullInfo.getOrganizationCode()); + ds.setRegionCodes(Lists.newArrayList(userFullInfo.getRegionCode())); + ds.setUserId(userFullInfo.getUserId()); + ds.setRole(RoleEnum.DASHBOARD); + return Optional.ofNullable(ds); + } + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/utils/DataScopeUtil.java b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/utils/DataScopeUtil.java index e3a0b5d..a0bb6e8 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/datascope/utils/DataScopeUtil.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/datascope/utils/DataScopeUtil.java @@ -2,6 +2,7 @@ package com.ningdatech.pmapi.datascope.utils; import com.ningdatech.pmapi.datascope.model.DataScopeDTO; import com.ningdatech.pmapi.datascope.provider.DataScopeContext; +import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.ningdatech.pmapi.user.util.LoginUserUtil; @@ -16,11 +17,11 @@ import java.util.Optional; */ public class DataScopeUtil { - public static Optional getCurrentUserDataScope(UserInfoDetails loginUser) { - if (Objects.isNull(loginUser) || Objects.isNull(loginUser.getRoleCode())) { + public static Optional getCurrentUserDataScope(UserFullInfoDTO user) { + if (Objects.isNull(user) || Objects.isNull(user.getRoleCode())) { return Optional.empty(); } - return DataScopeContext.getDataScope(loginUser.getRoleCode().name()); + return DataScopeContext.getDataScope(user.getRoleCode().name()); } public static Optional getCurrentUserDataScope() { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/MeetingDetailBasicVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/MeetingDetailBasicVO.java index 76a98eb..b5ed097 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/MeetingDetailBasicVO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/entity/vo/MeetingDetailBasicVO.java @@ -43,6 +43,10 @@ public class MeetingDetailBasicVO { @JSONField(format = "yyyy-MM-dd HH:mm") private LocalDateTime startTime; + @ApiModelProperty("结束时间") + @JSONField(format = "yyyy-MM-dd HH:mm") + private LocalDateTime endTime; + @ApiModelProperty("评委到场时间") @JSONField(format = "yyyy-MM-dd HH:mm") private LocalDateTime judgesAttendanceTime; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml index e030cd3..66e01c9 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml @@ -95,8 +95,8 @@ SELECT - sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ is NULL THEN 1 end) todoNum, - sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ IS not NULL THEN 1 end) idoNum + sum(CASE WHEN ht.assignee_ = #{employeeCode} AND ht.end_time_ is NULL THEN 1 end) todoNum FROM act_hi_taskinst ht + +