caozixuan 1 рік тому
батько
коміт
ef13a4f701

+ 8 - 0
sop-api/src/main/java/com/qmth/sop/server/api/TBServiceRegionController.java

@@ -65,4 +65,12 @@ public class TBServiceRegionController {
         tbServiceRegionService.removeServiceRegion(SystemConstant.convertIdToLong(serviceRegionId));
         return ResultUtil.ok();
     }
+
+    @ApiOperation(value = "服务区域规划-查询可选大区经理")
+    @RequestMapping(value = "/find_leader", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = ServiceRegionResult.class)})
+    @OperationLog
+    public Result findCanChooseLeader(@ApiParam(value = "服务单元id") @RequestParam(required = false) String serviceUnitId) {
+        return ResultUtil.ok(tbServiceRegionService.findCanChooseLeader(SystemConstant.convertIdToLong(serviceUnitId)));
+    }
 }

+ 57 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/SysUserBriefResult.java

@@ -0,0 +1,57 @@
+package com.qmth.sop.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 用户简略信息返回值
+ * @Author: CaoZixuan
+ * @Date: 2023-09-12
+ */
+public class SysUserBriefResult {
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "用户id")
+    private Long id;
+
+    @ApiModelProperty(value = "登录名")
+    private String loginName;
+
+    @ApiModelProperty(value = "用户真实姓名")
+    private String realName;
+
+    @ApiModelProperty(value = "电话号码")
+    private String mobileNumber;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getMobileNumber() {
+        return mobileNumber;
+    }
+
+    public void setMobileNumber(String mobileNumber) {
+        this.mobileNumber = mobileNumber;
+    }
+}

+ 2 - 1
sop-business/src/main/java/com/qmth/sop/business/mapper/SysUserMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.dto.VerifyCodeCheckDto;
+import com.qmth.sop.business.bean.result.SysUserBriefResult;
 import com.qmth.sop.business.bean.result.SysUserResult;
 import com.qmth.sop.business.bean.result.UserRoleNameResult;
 import com.qmth.sop.business.bean.result.WorkTaskResult;
@@ -111,5 +112,5 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @param roleType 角色类型
      * @return 类型
      */
-    List<SysUser> findByRoleType(@Param("roleType") RoleTypeEnum roleType);
+    List<SysUserBriefResult> findByRoleType(@Param("roleType") RoleTypeEnum roleType);
 }

+ 2 - 5
sop-business/src/main/java/com/qmth/sop/business/service/SysUserService.java

@@ -3,10 +3,7 @@ package com.qmth.sop.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.bean.dto.UserDto;
-import com.qmth.sop.business.bean.result.LoginResult;
-import com.qmth.sop.business.bean.result.SysUserResult;
-import com.qmth.sop.business.bean.result.UserRoleNameResult;
-import com.qmth.sop.business.bean.result.WorkTaskResult;
+import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.common.enums.AppSourceEnum;
 import com.qmth.sop.common.enums.FlowTaskTypeEnum;
@@ -159,5 +156,5 @@ public interface SysUserService extends IService<SysUser> {
      * @param roleType 角色类型
      * @return 用户集合
      */
-    List<SysUser> findUserListByRoleType(RoleTypeEnum roleType);
+    List<SysUserBriefResult> findUserListByRoleType(RoleTypeEnum roleType);
 }

+ 13 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBServiceRegionService.java

@@ -2,10 +2,15 @@ package com.qmth.sop.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.params.ServiceRegionParam;
 import com.qmth.sop.business.bean.result.ServiceRegionResult;
+import com.qmth.sop.business.bean.result.SysUserBriefResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBServiceRegion;
 
+import java.util.List;
+
 /**
  * <p>
  * 服务区域规划表 服务类
@@ -52,4 +57,12 @@ public interface TBServiceRegionService extends IService<TBServiceRegion> {
      * @return 符合条件的大区经理id
      */
     Long findRegionLeader(Long serviceUnitId, String crmNo);
+
+    /**
+     * 根据服务单元id查询可以被选择的大区经理
+     *
+     * @param serviceUnitId 服务单元id
+     * @return 大区经理用户信息
+     */
+    List<SysUserBriefResult> findCanChooseLeader(Long serviceUnitId);
 }

+ 2 - 5
sop-business/src/main/java/com/qmth/sop/business/service/impl/SysUserServiceImpl.java

@@ -10,10 +10,7 @@ import com.qmth.sop.business.bean.auth.AuthBean;
 import com.qmth.sop.business.bean.auth.ExpireTimeBean;
 import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.dto.VerifyCodeCheckDto;
-import com.qmth.sop.business.bean.result.LoginResult;
-import com.qmth.sop.business.bean.result.SysUserResult;
-import com.qmth.sop.business.bean.result.UserRoleNameResult;
-import com.qmth.sop.business.bean.result.WorkTaskResult;
+import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.cache.CommonCacheService;
 import com.qmth.sop.business.entity.*;
 import com.qmth.sop.business.mapper.SysUserMapper;
@@ -466,7 +463,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<SysUser> findUserListByRoleType(RoleTypeEnum roleType) {
+    public List<SysUserBriefResult> findUserListByRoleType(RoleTypeEnum roleType) {
         return this.baseMapper.findByRoleType(roleType);
     }
 }

+ 18 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBServiceRegionServiceImpl.java

@@ -9,6 +9,7 @@ import com.qmth.sop.business.bean.dto.AreaDto;
 import com.qmth.sop.business.bean.params.ServiceRegionParam;
 import com.qmth.sop.business.bean.result.CrmServiceResult;
 import com.qmth.sop.business.bean.result.ServiceRegionResult;
+import com.qmth.sop.business.bean.result.SysUserBriefResult;
 import com.qmth.sop.business.entity.*;
 import com.qmth.sop.business.mapper.TBServiceRegionMapper;
 import com.qmth.sop.business.service.*;
@@ -44,9 +45,9 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
     @Resource
     private TBServiceRegionDetailService tbServiceRegionDetailService;
     @Resource
-    private SysUserRoleService sysUserRoleService;
-    @Resource
     private TBCrmService tbCrmService;
+    @Resource
+    private SysUserRoleService sysUserRoleService;
 
     @Override
     public IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, Long leadId, String city, Integer pageNumber, Integer pageSize) {
@@ -218,4 +219,19 @@ public class TBServiceRegionServiceImpl extends ServiceImpl<TBServiceRegionMappe
         }
         return result;
     }
+
+    @Override
+    public List<SysUserBriefResult> findCanChooseLeader(Long serviceUnitId) {
+        List<SysUserBriefResult> regionLeaderList = sysUserService.findUserListByRoleType(RoleTypeEnum.REGION_MANAGER);
+        List<Long> cantChooseLeader = this.list(new QueryWrapper<TBServiceRegion>()
+                        .lambda()
+                        .eq(TBServiceRegion::getServiceId, serviceUnitId)
+                        .eq(TBServiceRegion::getEnable, true))
+                .stream()
+                .map(TBServiceRegion::getLeadId)
+                .distinct()
+                .collect(Collectors.toList());
+
+        return regionLeaderList.stream().filter(e -> !cantChooseLeader.contains(e.getId())).collect(Collectors.toList());
+    }
 }

+ 13 - 17
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBUserArchivesServiceImpl.java

@@ -6,14 +6,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.sop.business.bean.dto.UserArchivesImportDto;
 import com.qmth.sop.business.bean.params.UserArchivesParam;
-import com.qmth.sop.business.bean.result.ArchivesSourceResult;
-import com.qmth.sop.business.bean.result.RoleResult;
-import com.qmth.sop.business.bean.result.UserArchivesResult;
-import com.qmth.sop.business.bean.result.UserArchivesSubTotalResult;
+import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.*;
 import com.qmth.sop.business.mapper.TBUserArchivesMapper;
 import com.qmth.sop.business.service.*;
-import com.qmth.sop.common.base.BaseEntity;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.*;
 import org.apache.commons.collections4.CollectionUtils;
@@ -282,26 +278,26 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
             result.setInvalidCount(inValidCount);
 
             List<Long> userIdList = validList.stream().map(UserArchivesResult::getUserId).distinct().collect(Collectors.toList());
-            List<SysUser> effectEngineer = sysUserService.findUserListByRoleType(RoleTypeEnum.EFFECT_ENGINEER);
-            Integer effectEngineerCount = 0;
+            List<SysUserBriefResult> effectEngineer = sysUserService.findUserListByRoleType(RoleTypeEnum.EFFECT_ENGINEER);
+            int effectEngineerCount = 0;
             if (CollectionUtils.isNotEmpty(effectEngineer)) {
-                List<Long> effectEngineerIdList = effectEngineer.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList());
+                List<Long> effectEngineerIdList = effectEngineer.stream().map(SysUserBriefResult::getId).distinct().collect(Collectors.toList());
                 effectEngineerCount = (int) userIdList.stream().filter(effectEngineerIdList::contains).count();
             }
             result.setEffectEngineerCount(effectEngineerCount);
 
-            List<SysUser> regionCoordinator = sysUserService.findUserListByRoleType(RoleTypeEnum.REGION_COORDINATOR);
-            Integer regionCoordinatorCount = 0;
+            List<SysUserBriefResult> regionCoordinator = sysUserService.findUserListByRoleType(RoleTypeEnum.REGION_COORDINATOR);
+            int regionCoordinatorCount = 0;
             if (CollectionUtils.isNotEmpty(regionCoordinator)) {
-                List<Long> regionCoordinatorIdList = regionCoordinator.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList());
+                List<Long> regionCoordinatorIdList = regionCoordinator.stream().map(SysUserBriefResult::getId).distinct().collect(Collectors.toList());
                 regionCoordinatorCount = (int) userIdList.stream().filter(regionCoordinatorIdList::contains).count();
             }
             result.setRegionCoordinatorCount(regionCoordinatorCount);
 
-            List<SysUser> assistantEngineer = sysUserService.findUserListByRoleType(RoleTypeEnum.ASSISTANT_ENGINEER);
-            Integer assistantEngineerCount = 0;
+            List<SysUserBriefResult> assistantEngineer = sysUserService.findUserListByRoleType(RoleTypeEnum.ASSISTANT_ENGINEER);
+            int assistantEngineerCount = 0;
             if (CollectionUtils.isNotEmpty(assistantEngineer)) {
-                List<Long> assistantEngineerIdList = assistantEngineer.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList());
+                List<Long> assistantEngineerIdList = assistantEngineer.stream().map(SysUserBriefResult::getId).distinct().collect(Collectors.toList());
                 assistantEngineerCount = (int) userIdList.stream().filter(assistantEngineerIdList::contains).count();
             }
             result.setAssistantEngineerCount(assistantEngineerCount);
@@ -326,17 +322,17 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
 
         List<Long> effectEngineerIdList = sysUserService.findUserListByRoleType(RoleTypeEnum.EFFECT_ENGINEER)
                 .stream()
-                .map(BaseEntity::getId)
+                .map(SysUserBriefResult::getId)
                 .distinct()
                 .collect(Collectors.toList());
         List<Long> regionCoordinatorIdList = sysUserService.findUserListByRoleType(RoleTypeEnum.REGION_COORDINATOR)
                 .stream()
-                .map(BaseEntity::getId)
+                .map(SysUserBriefResult::getId)
                 .distinct()
                 .collect(Collectors.toList());
         List<Long> assistantEngineerIdList = sysUserService.findUserListByRoleType(RoleTypeEnum.ASSISTANT_ENGINEER)
                 .stream()
-                .map(BaseEntity::getId)
+                .map(SysUserBriefResult::getId)
                 .distinct()
                 .collect(Collectors.toList());
 

+ 5 - 0
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -246,3 +246,8 @@ ALTER TABLE t_b_crm
     CHANGE COLUMN lead_id lead_id BIGINT NULL DEFAULT NULL COMMENT '大区经理id' ;
 ALTER TABLE t_b_service_region
     CHANGE COLUMN lead_id lead_id BIGINT NOT NULL COMMENT '大区经理id' ;
+
+-- 2023-09-12
+INSERT INTO sys_privilege(id, name, url, type, parent_id, sequence, property, related, enable, default_auth, front_display) VALUES (2047, '服务区域规划-查询可选大区经理', '/api/service/service/region/find_leader', 'URL', 56, 4, 'AUTH', NULL, 1, 1, 0);
+UPDATE sys_privilege SET related = '2012,2047' WHERE id = 235;
+UPDATE sys_privilege SET related = '2012,2047' WHERE id = 237;

+ 5 - 2
sop-business/src/main/resources/mapper/SysUserMapper.xml

@@ -264,9 +264,12 @@
         </where>
         group by sur.user_id
     </select>
-    <select id="findByRoleType" resultType="com.qmth.sop.business.entity.SysUser">
+    <select id="findByRoleType" resultType="com.qmth.sop.business.bean.result.SysUserBriefResult">
         SELECT
-            su.*
+            su.id AS id,
+            su.login_name AS loginName,
+            su.real_name AS realName,
+            su.mobile_number AS mobileNumber
         FROM
             sys_user_role sur
                 LEFT JOIN