فهرست منبع

Merge remote-tracking branch 'origin/master'

Qchen 1 هفته پیش
والد
کامیت
b41ac40c81

+ 8 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -58,6 +58,14 @@ public class UserController extends BaseController {
         return HttpResult.ok(userInfoList);
     }
 
+    @Operation(summary = "报价页面的获取业务员列表", description = "报价页面的获取业务员列表")
+    @PostMapping(value = "/getBaojiaUserInfoList")
+    public HttpResult<Page<SysUserJzgInfoDto>> getBaojiaUserInfoList(@RequestBody SysUserInfoListVo sysUserInfoListVo) {
+        Page page = sysUserInfoListVo.getPage();
+        Page<SysUserJzgInfoDto> userInfoList = sysUserService.getBaojiaUserInfoList(page, sysUserInfoListVo);
+        return HttpResult.ok(userInfoList);
+    }
+
     /**
      * 查询所有成员和业务员的身份
      *

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java

@@ -37,6 +37,15 @@ public interface SysUserJzgInfoMapper extends BaseMapper<SysUserJzgInfo> {
     Page<SysUserJzgInfoDto> queryYwy(Page page, @Param("sysUserInfoListVo") SysUserInfoListVo sysUserInfoListVo,
                                      @Param("systemCode") String systemCode,@Param("leaderId") String leaderId);
 
+    /**
+     * 查询报价业务员
+     *
+     * @author lipf
+     * @date 2026/4/24 11:08
+     */
+    Page<SysUserJzgInfoDto> queryBJYwy(Page page, @Param("sysUserInfoListVo") SysUserInfoListVo sysUserInfoListVo,
+                                     @Param("systemCode") String systemCode,@Param("leaderId") String leaderId);
+
     /**
      * 查询成员
      *

+ 1 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -96,6 +96,7 @@ public interface SysUserService extends IService<SysUser> {
      * @date 2026/4/10 10:01
      */
     Page<SysUserJzgInfoDto> getUserInfoList(Page page, SysUserInfoListVo sysUserInfoListVo);
+    Page<SysUserJzgInfoDto> getBaojiaUserInfoList(Page page, SysUserInfoListVo sysUserInfoListVo);
 
     /**
      * 获取成员转移资源信息

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -995,7 +995,7 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
     @Autowired
     PtlSchemeService ptlSchemeService;
 
-    @GlobalTransactional
+    @Transactional
     @Override
     public Boolean copyScheme(String schemeInfoId, String productCode) {
 

+ 72 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -265,6 +265,78 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         log.info("获取业务员/成员列表:查询出[{}]个业务员。 查询参数: sysUserInfoListVo=[{}]", CollUtil.size(userInfoList.getRecords()),JSONUtil.toJsonStr(sysUserInfoListVo));
         return userInfoList;
     }
+    @Override
+    public Page<SysUserJzgInfoDto> getBaojiaUserInfoList(Page page, SysUserInfoListVo sysUserInfoListVo) {
+        log.info("获取业务员列表:查询参数: sysUserInfoListVo=[{}]", JSONUtil.toJsonStr(sysUserInfoListVo));
+        if(Objects.nonNull(sysUserInfoListVo.getStatus()) && sysUserInfoListVo.getStatus() == 0){
+            List<Integer> typeStatus = new ArrayList<>();
+            sysUserInfoListVo.setStatus(null);
+            typeStatus.add(UserState.UserStateEnum.COMPANY_REVIEW_ING.getValue());
+            typeStatus.add(UserState.UserStateEnum.RESIGN_ING.getValue());
+            typeStatus.add(UserState.UserStateEnum.NOT_CERT.getValue());
+            sysUserInfoListVo.setTypeStatus(typeStatus);
+        }
+        // 前端 查询成员和查询业务员的接口,都使用的是这个接口,但是他们区分的时候,差异很大,因此这里将查询成员和查询业务员的接口拆分开来
+        Page<SysUserJzgInfoDto> userInfoList;
+        String systemCode = baseController.getUserSystemCode();
+
+        String loginUserId = baseController.getUserId();
+        // 查询业务员
+        if("2".equals(sysUserInfoListVo.getIsMember())){
+            String jzgInfoId = null;
+            if("10".equals(sysUserInfoListVo.getFromPage())){
+                long startTime = System.currentTimeMillis();
+                SysUserJzgInfo userInfoJzgInfo = sysUserJzgInfoService.getUserByUserId(loginUserId);
+                log.info("查询耗时:[{}]", System.currentTimeMillis() - startTime);
+                jzgInfoId = userInfoJzgInfo.getId();
+            }
+            log.info("查看成员下的业务员信息:成员的序号:jzgInfoId=[{}]", jzgInfoId);
+            // modify by lipf 查询成员下业务员的时候,不进行分页
+//            page.setSize(Long.MAX_VALUE);
+            userInfoList = sysUserJzgInfoMapper.queryBJYwy(page, sysUserInfoListVo, systemCode, jzgInfoId
+            );
+        }else if("1".equals(sysUserInfoListVo.getIsMember())){
+            // 查询成员
+            log.info("查询成员信息:sysUserInfoListVo=[{}]",JSONUtil.toJsonStr(sysUserInfoListVo)  );
+            userInfoList = sysUserJzgInfoMapper.queryMember(page, sysUserInfoListVo);
+        }else{
+            // 其他场景先使用原来的逻辑
+            userInfoList = sysUserJzgInfoMapper.getUserInfoList(page, sysUserInfoListVo);
+        }
+        List<SysUserJzgInfoDto> records = userInfoList.getRecords();
+        if(CollectionUtil.isNotEmpty(records)){
+            // 填充岗位信息
+            Map<String, String> attrTypeMap = sysUserJzgInfoSalesmanService.queryAllTypeAttrMap();
+            Map<String, SysOrganizationVO> stringSysOrganizationVOMap = sysOrganizationService.queryUserBindOrganization(baseController.getSystemCode());
+            records = records.stream().peek(action->{
+                if(loginUserId.equals(action.getUserId())){
+                    action.setDefaultSelected(true);
+                }
+                String typeAttr = attrTypeMap.getOrDefault(action.getId(),null);
+                // 在【业务员管理页面】 要求类型中,不展示1,2,3,4 对应的类型
+                if(StrUtil.isNotEmpty(typeAttr)){
+                    Set<String> set = Set.of("1","2","3");
+                    typeAttr = Arrays.stream(typeAttr.split(",")).filter(action1-> !set.contains(action1)).collect(Collectors.joining(","));
+                    action.setTypeAttr(typeAttr);
+                }
+                List<SysRole> userRole = sysUserRoleService.getUserRole(action.getUserId());
+                if(CollectionUtil.isNotEmpty(userRole)){
+                    String roleNames = userRole.stream().map(SysRole::getName).distinct().collect(Collectors.joining(","));
+                    action.setRoleName(roleNames);
+                }
+                SysOrganizationVO sysOrganizationVO = stringSysOrganizationVOMap.get(action.getUserId());
+                if(sysOrganizationVO != null){
+                    action.setOrganizationId(sysOrganizationVO.getOrganizationId());
+                    action.setOrganizationName(sysOrganizationVO.getName());
+                }
+
+            }).toList();
+            userInfoList.setRecords(records);
+        }
+        //Page<SysUserJzgInfoDto> userInfoList = sysUserJzgInfoMapper.getUserInfoList(page, sysUserInfoListVo);
+        log.info("获取业务员/成员列表:查询出[{}]个业务员。 查询参数: sysUserInfoListVo=[{}]", CollUtil.size(userInfoList.getRecords()),JSONUtil.toJsonStr(sysUserInfoListVo));
+        return userInfoList;
+    }
 
     @Override
     public UserTransferInfoVo getTransferInfo(String userId) {

+ 3 - 1
tenant/organization/src/main/resources/application.yml

@@ -103,7 +103,7 @@ tenant:
 
   ignoreLoginNames:
   ignoreFunction:
-
+# 过滤部门数据权限(下面的方法名是Mapper中的方法名)
 data-scope:
   tables:
     - sys_user_jzg_info
@@ -116,6 +116,8 @@ data-scope:
     - getTeamUserPage
     - getOrganizationUser
     - deleteOrganizationUser
+    - queryBJYwy
+
 
 
 logging:

+ 68 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -125,6 +125,74 @@
         </where>
         order by suji.create_time desc
     </select>
+    <select id="queryBJYwy" resultMap="BaseResultMap">
+        select
+        suji.id,
+        suji.user_id,
+        suji.work_number,
+        su.username,
+        su.mobile ,
+        suji.name,
+        suji.dept_id,
+        sd.name AS dept_name,
+        suji.status,
+        suji.is_enable,
+        lsu.name AS leader_name,
+        ( select  aa.mobile from sys_user aa
+        where aa.id = lsu.user_id AND aa.is_delete = 0 ) AS leader_id,
+        (select re.name from sys_user_jzg_info re where re.id = suji.referrer_id) referrer_name,
+        suji.referrer_id,
+        suji.create_time AS createTime,
+        suji.create_by AS createBy
+        from
+        sys_user_jzg_info suji
+        left join sys_user su on su.id = suji.user_id AND su.is_delete = 0
+        LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id AND lsu.is_delete = 0
+        left join sys_dept sd on sd.id = suji.dept_id AND sd.is_delete = 0
+        LEFT JOIN sys_dept d ON suji.dept_id = d.id AND d.is_delete = 0
+        <where>
+            suji.is_delete = 0
+            and suji.id  in (
+            select sujis.sys_user_jzg_info_id  from sys_user_jzg_info_salesman sujis  where  sujis.type_attr != 2 AND sujis.type_attr != 3
+            )
+            <if test="leaderId != null and leaderId != ''">
+                and suji.leader_id = #{leaderId}
+            </if>
+            <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
+                and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
+            </if>
+            <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
+                and suji.type_attr = #{sysUserInfoListVo.typeAttr}
+            </if>
+            <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
+                and suji.status = #{sysUserInfoListVo.status}
+            </if>
+            <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
+                AND suji.status IN
+                <foreach item="status" collection="sysUserInfoListVo.typeStatus"
+                         open="(" separator="," close=")">
+                    #{status}
+                </foreach>
+            </if>
+            <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
+                and suji.is_enable = #{sysUserInfoListVo.isEnable}
+            </if>
+            <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
+                and so.id = #{sysUserInfoListVo.sysOrganizationId}
+            </if>
+            <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
+                and (suji.leader_id = #{sysUserInfoListVo.leaderId}
+                or  lsu.name = #{sysUserInfoListVo.leaderId})
+            </if>
+            <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
+                and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
+                or  su.mobile = #{sysUserInfoListVo.salesman}
+                or  suji.work_number = #{sysUserInfoListVo.salesman}
+                or  su.id = #{sysUserInfoListVo.salesman})
+            </if>
+        </where>
+        order by suji.create_time desc
+    </select>
 
     <!-- 查询成员 lipf 2026年4月24日11:10:15 -->
     <select id="queryMember" resultMap="BaseResultMap">