Эх сурвалжийг харах

项目经理数据权限修改

wangliang 1 жил өмнө
parent
commit
7067e85173

+ 86 - 59
sop-business/src/main/java/com/qmth/sop/business/service/impl/SysUserServiceImpl.java

@@ -64,8 +64,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     RtzfApiUtils rtzfApiUtils;
 
+    @Resource
+    TBUserArchivesAllocationService tbUserArchivesAllocationService;
+
     @Override
-    public LoginResult login(String password, SysUser sysUser, AppSourceEnum appSource) throws NoSuchAlgorithmException {
+    public LoginResult login(String password, SysUser sysUser, AppSourceEnum appSource)
+            throws NoSuchAlgorithmException {
         //停用
         if (!sysUser.getEnable()) {
             throw ExceptionResultEnum.USER_ENABLE.exception();
@@ -76,10 +80,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         AuthBean authBean = commonCacheService.userAuthCache(sysUser.getId());
         Optional.ofNullable(authBean).orElseThrow(ExceptionResultEnum.ROLE_ENABLE_AUTHORIZATION::exception);
 
-//        List<SysRole> sysRoleList = authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.EFFECT_ENGINEER || s.getType() == RoleTypeEnum.ASSISTANT_ENGINEER).collect(Collectors.toList());
-//        if (appSource == AppSourceEnum.WX_APP && CollectionUtils.isEmpty(sysRoleList)) {
-//            throw ExceptionResultEnum.WX_APP_LOGIN_ERROR.exception();
-//        }
+        //        List<SysRole> sysRoleList = authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.EFFECT_ENGINEER || s.getType() == RoleTypeEnum.ASSISTANT_ENGINEER).collect(Collectors.toList());
+        //        if (appSource == AppSourceEnum.WX_APP && CollectionUtils.isEmpty(sysRoleList)) {
+        //            throw ExceptionResultEnum.WX_APP_LOGIN_ERROR.exception();
+        //        }
         //生成token
         String token = SystemConstant.getNanoId();
         //添加用户会话缓存
@@ -93,15 +97,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         List<String> roleNames = new ArrayList<>(roleNamesSet);
         Collections.sort(roleNames);
 
-        String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
+        String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()),
+                platform.name());
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
         TBSession tbSession = new TBSession(sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
-                platform.name(), platform.name(), deviceId, IpUtil.getRemoteIp(), token,
-                expireTime.getDate().getTime(), appSource);
+                platform.name(), platform.name(), deviceId, IpUtil.getRemoteIp(), token, expireTime.getDate().getTime(),
+                appSource);
         tbSessionService.saveOrUpdate(tbSession);
         commonCacheService.setUserSession(sessionId, tbSession);
 
-        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, SystemConstant.VERSION_VALUE);
+        LoginResult loginResult = new LoginResult(sysUser, sessionId, token,
+                roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, SystemConstant.VERSION_VALUE);
         // 添加档案信息
         if (UserSourceEnum.ARCHIVES.equals(sysUser.getSource())) {
             TBUserArchives tbUserArchives = tbUserArchivesService.findByUserId(sysUser.getId());
@@ -109,7 +115,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             loginResult.setMobileNumber(tbUserArchives.getMobileNumber());
         }
 
-        loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
+        loginResult.setOrgInfo(
+                Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         return loginResult;
     }
 
@@ -125,7 +132,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         Optional.ofNullable(authBean).orElseThrow(ExceptionResultEnum.NOT_LOGIN::exception);
         if (all) {
             for (Platform p : Platform.values()) {
-                Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+                Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName())
+                        .collect(Collectors.toSet());
                 List<String> roleNames = new ArrayList<>(roleNamesSet);
                 Collections.sort(roleNames);
                 String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()), p.name());
@@ -133,10 +141,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 commonCacheService.deleteUserSession(sessionId);
             }
         } else {
-            Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+            Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName())
+                    .collect(Collectors.toSet());
             List<String> roleNames = new ArrayList<>(roleNamesSet);
             Collections.sort(roleNames);
-            String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()), Platform.WEB.name());
+            String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()),
+                    Platform.WEB.name());
             tbSessionService.removeById(sessionId);
             commonCacheService.deleteUserSession(sessionId);
         }
@@ -165,14 +175,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                         max = size;
                     }
                     while (max <= size) {
-                        List<UserRoleNameResult> userRoleNameResultList = this.selectRoleNames(userIds.subList(min, max));
+                        List<UserRoleNameResult> userRoleNameResultList = this.selectRoleNames(
+                                userIds.subList(min, max));
                         for (UserRoleNameResult userRoleNameResult : userRoleNameResultList) {
                             List<String> roleNames = Arrays.asList(userRoleNameResult.getRoleNames().split(","));
                             Collections.sort(roleNames);
                             for (Platform p : Platform.values()) {
                                 String sessionId = null;
                                 try {
-                                    sessionId = SessionUtil.digest(userRoleNameResult.getUserId(), Math.abs(roleNames.toString().hashCode()), p.name());
+                                    sessionId = SessionUtil.digest(userRoleNameResult.getUserId(),
+                                            Math.abs(roleNames.toString().hashCode()), p.name());
                                 } catch (NoSuchAlgorithmException e) {
                                     e.printStackTrace();
                                 }
@@ -218,7 +230,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return this.baseMapper.findSysUserResultList(orgId);
     }
 
-
     /**
      * 强行过期用户手机号验证码(过期时间改为验证码发送时间)
      *
@@ -255,7 +266,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             SysConfig sysConfigNormal = commonCacheService.addSysConfigCache(SystemConstant.SMS_NORMAL_CODE);
             Optional.ofNullable(sysConfigNormal).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置万能短信验证码"));
             if (!Objects.equals(sysConfigNormal.getConfigValue(), code)) {
-                List<VerifyCodeCheckDto> verifyCodeCheckDtoList = this.baseMapper.findVerifyCodeByUser(userId, mobileNumber);
+                List<VerifyCodeCheckDto> verifyCodeCheckDtoList = this.baseMapper.findVerifyCodeByUser(userId,
+                        mobileNumber);
                 if (verifyCodeCheckDtoList.size() < 1) {
                     throw ExceptionResultEnum.ERROR.exception("验证码错误");
                 }
@@ -301,7 +313,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      */
     @Override
     public List<FormWidgetDto> queryUser(UserSourceEnum userSourceEnum) {
-        return this.baseMapper.queryUser(Objects.nonNull(userSourceEnum) ? userSourceEnum.name() : null, Objects.nonNull(userSourceEnum) ? userSourceEnum.getRoleIdList() : null);
+        return this.baseMapper.queryUser(Objects.nonNull(userSourceEnum) ? userSourceEnum.name() : null,
+                Objects.nonNull(userSourceEnum) ? userSourceEnum.getRoleIdList() : null);
     }
 
     /**
@@ -328,17 +341,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 Optional.ofNullable(dbUser).orElseThrow(ExceptionResultEnum.USER_NO_EXISTS::exception);
                 List<SysUserRole> sysUserRoleList = commonCacheService.userRolePrivilegeCache(sysUser.getId());
                 List<Long> userRolesList = Arrays.asList(sysUser.getRoleIds());
-                Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
+                Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId)
+                        .collect(Collectors.toSet());
                 int count = (int) dbUserRolesList.stream().filter(s -> !userRolesList.contains(s)).count();
                 UpdateWrapper<SysUser> userUpdateWrapper = new UpdateWrapper<>();
-                userUpdateWrapper.lambda()
-                        .eq(SysUser::getId, sysUser.getId())
+                userUpdateWrapper.lambda().eq(SysUser::getId, sysUser.getId())
                         .set(SysUser::getLoginName, sysUser.getLoginName())
-                        .set(SysUser::getRealName, sysUser.getRealName())
-                        .set(SysUser::getCode, sysUser.getCode())
+                        .set(SysUser::getRealName, sysUser.getRealName()).set(SysUser::getCode, sysUser.getCode())
                         .set(SysUser::getMobileNumber, sysUser.getMobileNumber())
-                        .set(SysUser::getGender, sysUser.getGender())
-                        .set(SysUser::getOrgId, sysUser.getOrgId())
+                        .set(SysUser::getGender, sysUser.getGender()).set(SysUser::getOrgId, sysUser.getOrgId())
                         .set(SysUser::getUpdateId, requestUser.getId())
                         .set(SysUser::getUpdateTime, System.currentTimeMillis());
 
@@ -362,13 +373,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     sysUserService.removeUserInfo(sysUser.getId(), true);
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId()) && (dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
-                        || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber()))) {
+                if (Objects.nonNull(dbUser.getOrgId()) && (
+                        dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue() || !Objects.equals(
+                                dbUser.getMobileNumber(), sysUser.getMobileNumber()))) {
                     commonCacheService.updateUserCache(sysUser.getId());
                     commonCacheService.updateUserAuthCache(sysUser.getId());
                 }
                 //修改登录名需重新登录
-                if (Objects.nonNull(dbUser.getLoginName()) && Objects.nonNull(sysUser.getLoginName()) && !Objects.equals(dbUser.getLoginName(), sysUser.getLoginName())) {
+                if (Objects.nonNull(dbUser.getLoginName()) && Objects.nonNull(sysUser.getLoginName())
+                        && !Objects.equals(dbUser.getLoginName(), sysUser.getLoginName())) {
                     sysUserService.removeUserInfo(sysUser.getId(), true);
                 }
             }
@@ -377,7 +390,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             if (e instanceof DuplicateKeyException) {
                 String errorColumn = e.getCause().toString();
                 String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3).replaceAll("'", "");
-                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+                throw ExceptionResultEnum.SQL_ERROR.exception(
+                        "[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
             } else if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, ((ApiException) e).getCode(), e.getMessage());
             } else {
@@ -405,10 +419,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         UpdateWrapper<SysUser> userUpdateWrapper = new UpdateWrapper<>();
-        userUpdateWrapper.lambda().set(SysUser::getEnable, sysUser.getEnable())
-                .eq(SysUser::getId, sysUser.getId())
-                .set(SysUser::getUpdateId, requestUser.getId())
-                .set(SysUser::getUpdateTime, System.currentTimeMillis());
+        userUpdateWrapper.lambda().set(SysUser::getEnable, sysUser.getEnable()).eq(SysUser::getId, sysUser.getId())
+                .set(SysUser::getUpdateId, requestUser.getId()).set(SysUser::getUpdateTime, System.currentTimeMillis());
 
         RtzfSyncStatusEnum rtzfSyncStatus = sysUserDb.getRtzfSyncStatus();
         if (RtzfSyncStatusEnum.ALREADY_SYNC.equals(rtzfSyncStatus)) {
@@ -461,10 +473,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(SysUser::getPassword, sysUser.getNewPassword())
-                .eq(SysUser::getId, sysUser.getId())
-                .set(SysUser::getUpdateId, requestUser.getId())
-                .set(SysUser::getUpdateTime, System.currentTimeMillis());
+        updateWrapper.lambda().set(SysUser::getPassword, sysUser.getNewPassword()).eq(SysUser::getId, sysUser.getId())
+                .set(SysUser::getUpdateId, requestUser.getId()).set(SysUser::getUpdateTime, System.currentTimeMillis());
 
         RtzfSyncStatusEnum rtzfSyncStatus = sysUserDb.getRtzfSyncStatus();
         if (RtzfSyncStatusEnum.ALREADY_SYNC.equals(rtzfSyncStatus)) {
@@ -525,8 +535,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @return
      */
     @Override
-    public IPage<WorkTaskResult> getFlowTaskList(IPage<Map> iPage, Long userId, TFCustomTypeEnum type, Long serviceId, String customName, FlowTaskTypeEnum flowTaskTypeEnum, String crmNo) {
-        return this.baseMapper.getFlowTaskList(iPage, userId, Objects.nonNull(type) ? type.name() : null, serviceId, customName, Objects.nonNull(flowTaskTypeEnum) ? flowTaskTypeEnum.name() : null, crmNo);
+    public IPage<WorkTaskResult> getFlowTaskList(IPage<Map> iPage, Long userId, TFCustomTypeEnum type, Long serviceId,
+            String customName, FlowTaskTypeEnum flowTaskTypeEnum, String crmNo) {
+        return this.baseMapper.getFlowTaskList(iPage, userId, Objects.nonNull(type) ? type.name() : null, serviceId,
+                customName, Objects.nonNull(flowTaskTypeEnum) ? flowTaskTypeEnum.name() : null, crmNo);
     }
 
     /**
@@ -541,8 +553,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @return
      */
     @Override
-    public int getFlowTaskListCount(Long userId, TFCustomTypeEnum type, Long serviceId, String customName, FlowTaskTypeEnum flowTaskTypeEnum, String crmNo) {
-        return this.baseMapper.getFlowTaskListCount(userId, Objects.nonNull(type) ? type.name() : null, serviceId, customName, Objects.nonNull(flowTaskTypeEnum) ? flowTaskTypeEnum.name() : null, crmNo);
+    public int getFlowTaskListCount(Long userId, TFCustomTypeEnum type, Long serviceId, String customName,
+            FlowTaskTypeEnum flowTaskTypeEnum, String crmNo) {
+        return this.baseMapper.getFlowTaskListCount(userId, Objects.nonNull(type) ? type.name() : null, serviceId,
+                customName, Objects.nonNull(flowTaskTypeEnum) ? flowTaskTypeEnum.name() : null, crmNo);
     }
 
     @Override
@@ -561,22 +575,35 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
 
         List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserId(userId);
-        List<RoleTypeEnum> roleTypeList = sysRoleList.stream().map(SysRole::getType).distinct().collect(Collectors.toList());
+        List<RoleTypeEnum> roleTypeList = sysRoleList.stream().map(SysRole::getType).distinct()
+                .collect(Collectors.toList());
         DataPermissionDto dto = new DataPermissionDto();
         dto.setRequestUserId(userId);
         dto.setHasAdmin(roleTypeList.contains(RoleTypeEnum.ADMIN));
         dto.setHasPmo(roleTypeList.contains(RoleTypeEnum.PMO));
         dto.setHasBusiness(roleTypeList.contains(RoleTypeEnum.BUSSINESS));
         dto.setHasRegionManager(roleTypeList.contains(RoleTypeEnum.REGION_MANAGER));
-        dto.setHasRegionCoordinator(roleTypeList.contains(RoleTypeEnum.REGION_COORDINATOR));
-        dto.setHasEffectEngineer(roleTypeList.contains(RoleTypeEnum.EFFECT_ENGINEER));
-        dto.setHasAssistantEngineer(roleTypeList.contains(RoleTypeEnum.ASSISTANT_ENGINEER));
+        //        dto.setHasRegionCoordinator(roleTypeList.contains(RoleTypeEnum.REGION_COORDINATOR));
+        int count = tbUserArchivesAllocationService.count(new QueryWrapper<TBUserArchivesAllocation>().lambda()
+                .eq(TBUserArchivesAllocation::getSopRoleType, SopRoleTypeEnum.REGION_COORDINATOR)
+                .eq(TBUserArchivesAllocation::getUserId, userId));
+        dto.setHasRegionCoordinator(count > 0 ? true : false);
+        //        dto.setHasEffectEngineer(roleTypeList.contains(RoleTypeEnum.EFFECT_ENGINEER));
+        //        dto.setHasAssistantEngineer(roleTypeList.contains(RoleTypeEnum.ASSISTANT_ENGINEER));
+        count = tbUserArchivesAllocationService.count(new QueryWrapper<TBUserArchivesAllocation>().lambda()
+                .eq(TBUserArchivesAllocation::getSopRoleType, SopRoleTypeEnum.ENGINEER)
+                .eq(TBUserArchivesAllocation::getUserId, userId));
+        dto.setHasEffectEngineer(count > 0 ? true : false);
+        dto.setHasAssistantEngineer(count > 0 ? true : false);
         dto.setHasQA(roleTypeList.contains(RoleTypeEnum.QA));
         dto.setHasCustom(roleTypeList.contains(RoleTypeEnum.CUSTOM));
         dto.setHasAccountManager(roleTypeList.contains(RoleTypeEnum.ACCOUNT_MANAGER));
         dto.setHasThirdPmo(roleTypeList.contains(RoleTypeEnum.THIRD_PMO));
         dto.setHasDeviceDelivery(roleTypeList.contains(RoleTypeEnum.DEVICE_DELIVERY));
-        dto.setHasProjectManager(roleTypeList.contains(RoleTypeEnum.PROJECT_MANAGER));
+        count = tbUserArchivesAllocationService.count(new QueryWrapper<TBUserArchivesAllocation>().lambda()
+                .eq(TBUserArchivesAllocation::getSopRoleType, SopRoleTypeEnum.PROJECT_MANAGER)
+                .eq(TBUserArchivesAllocation::getUserId, userId));
+        dto.setHasProjectManager(count > 0 ? true : false);
         if (dto.getHasThirdPmo() || dto.getHasDeviceDelivery()) {
             Long supplierId = sysUser.getSupplierId();
             if (supplierId == null || supplierId == 0) {
@@ -606,15 +633,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysUser sysUser = this.getById(userId);
         UserSourceEnum userSource = sysUser.getSource();
         switch (userSource) {
-            case SYSTEM:
-                companyName = "启明泰和";
-                break;
-            case ARCHIVES:
-                UserArchivesResult userArchivesResult = tbUserArchivesService.findUserArchivesByArchivesIdORUserId(null, userId);
-                if (Objects.nonNull(userArchivesResult)) {
-                    companyName = userArchivesResult.getSupplierName();
-                }
-                break;
+        case SYSTEM:
+            companyName = "启明泰和";
+            break;
+        case ARCHIVES:
+            UserArchivesResult userArchivesResult = tbUserArchivesService.findUserArchivesByArchivesIdORUserId(null,
+                    userId);
+            if (Objects.nonNull(userArchivesResult)) {
+                companyName = userArchivesResult.getSupplierName();
+            }
+            break;
         }
         return companyName;
     }
@@ -643,9 +671,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 0 为启用,1 为禁用
         Boolean enable = willUpdateUser.getEnable();
         rtzfUserInfo.setWorkState(enable ? 0 : 1);
-        List<Long> roleIdList = sysRoleService.listRolesByUserId(id)
-                .stream()
-                .map(RoleDto::getId)
+        List<Long> roleIdList = sysRoleService.listRolesByUserId(id).stream().map(RoleDto::getId)
                 .collect(Collectors.toList());
         if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(roleIdList)) {
             rtzfUserInfo.setRoleIds(roleIdList);
@@ -665,7 +691,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             throw ExceptionResultEnum.ERROR.exception("未找到档案信息");
         }
         String mobileNumber = tbUserArchives.getMobileNumber();
-        SysUser sysUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, mobileNumber).last(SystemConstant.LIMIT1));
+        SysUser sysUser = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, mobileNumber)
+                .last(SystemConstant.LIMIT1));
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.ERROR.exception("未找到用户信息");
         }

+ 3 - 3
sop-business/src/main/resources/mapper/TBSopInfoMapper.xml

@@ -157,18 +157,18 @@
                                     <otherwise>
                                         <choose>
                                             <when test="dpr.hasProjectManager">
-                                                AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbc.crm_no = tbuaa.crm_no AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'PROJECT_MANAGER')
+                                                AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbuaa.crm_detail_id = tbcd.id AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'PROJECT_MANAGER')
                                             </when>
                                             <otherwise>
                                                 <choose>
                                                     <when test="dpr.hasRegionCoordinator">
                                                         --AND tbc.region_coordinator_id = #{dpr.requestUserId}
-                                                        AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbc.crm_no = tbuaa.crm_no AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'REGION_COORDINATOR')
+                                                        AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbuaa.crm_detail_id = tbcd.id AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'REGION_COORDINATOR')
                                                     </when>
                                                     <otherwise>
                                                         <choose>
                                                             <when test="dpr.hasEffectEngineer or dpr.hasAssistantEngineer">
-                                                                AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbc.crm_no = tbuaa.crm_no AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'ENGINEER')
+                                                                AND EXISTS(SELECT 1 FROM t_b_user_archives_allocation tbuaa WHERE tbuaa.crm_detail_id = tbcd.id AND tbuaa.user_id = #{dpr.requestUserId} and tbuaa.sop_role_type = 'ENGINEER')
                                                             </when>
                                                         </choose>
                                                     </otherwise>

+ 0 - 2
sop-common/src/main/java/com/qmth/sop/common/enums/RoleTypeEnum.java

@@ -34,8 +34,6 @@ public enum RoleTypeEnum {
 
     DEVICE_DELIVERY("设备发货员", "系统角色"),
 
-    PROJECT_MANAGER("项目经理", "项目经理"),
-
     DEFINED("自定义", "自定义角色");
 
     RoleTypeEnum(String desc, String title) {