OrgSyncByJyzyService.java 21.2 KB
Newer Older
吴泽佳's avatar
吴泽佳 committed
1 2
package com.tanpu.feo.feojob.service;

3
import cn.hutool.core.date.DateTime;
吴泽佳's avatar
吴泽佳 committed
4 5 6
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
7 8
import com.tanpu.common.api.CommonResp;
import com.tanpu.feo.feojob.dao.user.entity.*;
吴泽佳's avatar
吴泽佳 committed
9 10
import com.tanpu.feo.feojob.dto.JyzyTeamDto;
import com.tanpu.feo.feojob.dto.OrgInfoDto;
吴泽佳's avatar
吴泽佳 committed
11
import com.tanpu.feo.feojob.dto.OrgSyncDto;
吴泽佳's avatar
吴泽佳 committed
12
import com.tanpu.feo.feojob.dto.WorkDataDto;
13 14 15
import com.tanpu.feo.feojob.dao.jyzyuser.entity.JyzyOrgEntity;
import com.tanpu.feo.feojob.dao.jyzyuser.entity.JyzyTeamEntity;
import com.tanpu.feo.feojob.dao.jyzyuser.entity.JyzyUserInfoEntity;
吴泽佳's avatar
吴泽佳 committed
16 17
import com.tanpu.feo.feojob.enums.EmployeeDutyEnum;
import com.tanpu.feo.feojob.enums.RoleTypeEnum;
18
import com.tanpu.feo.feojob.feign.fatools.FeignClientForFatools;
xd's avatar
xd committed
19 20 21
import com.tanpu.feo.feojob.service.jyzy.JyzyOrgService;
import com.tanpu.feo.feojob.service.jyzy.JyzyTeamService;
import com.tanpu.feo.feojob.service.jyzy.JyzyUserInfoService;
吴泽佳's avatar
吴泽佳 committed
22 23
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
吴泽佳's avatar
吴泽佳 committed
24

吴泽佳's avatar
吴泽佳 committed
25
import javax.annotation.Resource;
26
import java.util.*;
吴泽佳's avatar
吴泽佳 committed
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
import java.util.stream.Collectors;

@Service
@Slf4j
public class OrgSyncByJyzyService {
    @Resource
    private OrgService orgService;
    @Resource
    private UserInfoService userInfoService;
    @Resource
    private DepartmentService departmentService;
    @Resource
    private DepartmentEmployeeService departmentEmployeeService;
    @Resource
    private EmployeeService employeeService;
    @Resource
    private EmployeeRoleService employeeRoleService;
    @Resource
    private RoleService roleService;
    @Resource
    private JyzyOrgService jyzyOrgService;
    @Resource
    private JyzyTeamService jyzyTeamService;
    @Resource
    private JyzyUserInfoService jyzyUserInfoService;
    @Resource
    private OrgSyncService orgSyncService;
54 55
    @Resource
    private FeignClientForFatools feignClientForFatools;
吴泽佳's avatar
吴泽佳 committed
56

57
    public CommonResp<String> orgSyncByJyzy(OrgSyncDto orgSyncDto) {
吴泽佳's avatar
吴泽佳 committed
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
        try {
            //1 从精业展业 数据库中 获取组织及用户 信息
            List<JyzyTeamDto> jyzyTeamDtoList = getJyzyTeamByOrgCode(orgSyncDto.getJyzyOrgCode());
            log.info("====== 精业展业 获取的数据为:{}", JSONUtil.toJsonStr(jyzyTeamDtoList));
            //2 从feo 数据库中 获取现有的 组织及人员 信息
            OrgInfoDto orgInfoDto = getOrgInfoByFeoOrgCode(orgSyncDto.getFeoOrgCode());
            log.info("====== 理财师机构版 获取的数据为:{}", JSONUtil.toJsonStr(orgInfoDto));
            //3 数据对比
            WorkDataDto<UserInfoEntity> workUserInfo = new WorkDataDto<>();
            WorkDataDto<EmployeeEntity> workEmployee = new WorkDataDto<>();
            WorkDataDto<DepartmentEntity> workDepartment = new WorkDataDto<>();
            WorkDataDto<DepartmentEmployeeEntity> workDepartmentEmployee = new WorkDataDto<>();
            WorkDataDto<EmployeeRoleEntity> workEmployeeRole = new WorkDataDto<>();
            dataCompare(workUserInfo, workEmployee, workDepartment, workDepartmentEmployee, workEmployeeRole, jyzyTeamDtoList, orgInfoDto);
            //4 数据操作
73
            orgSyncService.updateData(orgInfoDto.getOrgId(), workUserInfo, workEmployee, workDepartment, workDepartmentEmployee, workEmployeeRole);
吴泽佳's avatar
吴泽佳 committed
74 75

        } catch (Exception e) {
xd's avatar
xd committed
76
            log.error("=========从 精业展业 同步 机构信息失败,原因--->{}", e.getMessage(), e);
77
            return CommonResp.failed(e.getMessage());
吴泽佳's avatar
吴泽佳 committed
78
        }
79
        return CommonResp.success("同步成功");
吴泽佳's avatar
吴泽佳 committed
80 81 82 83 84 85
    }

    private void dataCompare(WorkDataDto<UserInfoEntity> workUserInfo, WorkDataDto<EmployeeEntity> workEmployee, WorkDataDto<DepartmentEntity> workDepartment,
                             WorkDataDto<DepartmentEmployeeEntity> workDepartmentEmployee, WorkDataDto<EmployeeRoleEntity> workEmployeeRole,
                             List<JyzyTeamDto> jyzyTeamDtoList, OrgInfoDto orgInfoDto) {
        log.info("======开始数据对比======");
86 87 88 89 90 91 92
        try {


            HashMap<String, JyzyUserInfoEntity> jyzyUserInfoHashMap = new HashMap<>();
            jyzyTeamDtoList.forEach(jyzyTeamDto -> jyzyTeamDto.getJyzyUserInfos().forEach(jyzyUserInfo -> jyzyUserInfoHashMap.put(jyzyUserInfo.getId(), jyzyUserInfo)));

            Map<String, String> infoNoAdmin = roleService.findInfoNoAdmin();
93

94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
            // 1 user_info
            List<UserInfoEntity> insertUserInfoList = new ArrayList<>();
            List<UserInfoEntity> deleteUserInfoList = new ArrayList<>();
            List<UserInfoEntity> updateUserInfoList = new ArrayList<>();

            orgInfoDto.getUserInfoList().forEach(userInfo -> {
                JyzyUserInfoEntity jyzyUserInfo = jyzyUserInfoHashMap.get(userInfo.getId());
                // 删除
                if (ObjectUtil.isNull(jyzyUserInfo)) {
                    deleteUserInfoList.add(userInfo);
                    return; // 跳过当前循环
                }
                // 更新
                if (!jyzyUserInfo.getMD5().equals(userInfo.getMD5()) || StrUtil.isBlank(userInfo.getUiWechatXcxQrcode())) {
                    userInfo.update(jyzyUserInfo);
                    if (StrUtil.isBlank(userInfo.getUiWechatXcxQrcode())) { //重新生成 小程序 球形码
110
                        userInfo.setUiWechatXcxQrcode(orgSyncService.createWechatXcxQrcode(userInfo.getId(), userInfo.getUiHeadimg(), orgInfoDto.getOrgQrCodeUrl()));
111 112
                    }
                    updateUserInfoList.add(userInfo);
113
                }
114 115 116 117 118 119 120 121 122
                jyzyUserInfoHashMap.remove(userInfo.getId());
            });
            jyzyUserInfoHashMap.forEach((key, jyzyUserInfo) -> {
                // 新增
                UserInfoEntity userInfo = new UserInfoEntity(jyzyUserInfo);
                userInfo.setOrgId(orgInfoDto.getOrgId());
                userInfo.setLevel(2);
                userInfo.setUiGrade("0");
                userInfo.setUiRegisterTime(DateTime.now());
123
                userInfo.setUiWechatXcxQrcode(orgSyncService.createWechatXcxQrcode(userInfo.getId(), userInfo.getUiHeadimg(), orgInfoDto.getOrgQrCodeUrl()));
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
                insertUserInfoList.add(userInfo);
            });

            List<EmployeeEntity> insertEmployeeList = new ArrayList<>();
            List<EmployeeEntity> updateEmployeeList = new ArrayList<>();
            List<EmployeeEntity> deleteEmployeeList = new ArrayList<>();

            List<EmployeeRoleEntity> insertEmployeeRoleList = new ArrayList<>();
            List<EmployeeRoleEntity> updateEmployeeRoleList = new ArrayList<>();
            List<EmployeeRoleEntity> deleteEmployeeRoleList = new ArrayList<>();

            List<DepartmentEmployeeEntity> insertDepartmentEmployeeList = new ArrayList<>();
            List<DepartmentEmployeeEntity> updateDepartmentEmployeeList = new ArrayList<>();
            List<DepartmentEmployeeEntity> deleteDepartmentEmployeeList = new ArrayList<>();

            // 员工新增
            insertUserInfoList.forEach(userInfoEntity -> {
                // employee
                EmployeeEntity employeeEntity = new EmployeeEntity(userInfoEntity);
                employeeEntity.setOrgId(orgInfoDto.getOrgId());
                employeeEntity.setBoundWechat(StrUtil.isNotBlank(userInfoEntity.getUiOpenid()) ? orgInfoDto.getOrgId() + "_" + userInfoEntity.getId() : null);
                insertEmployeeList.add(employeeEntity);

                // employee_role
                EmployeeRoleEntity employeeRoleEntity = new EmployeeRoleEntity();
                employeeRoleEntity.setEmployeeId(userInfoEntity.getId());
吴泽佳's avatar
吴泽佳 committed
150
                employeeRoleEntity.setRoleId(infoNoAdmin.get("1".equals(userInfoEntity.getUiShenfen()) ? RoleTypeEnum.TEAM.code : RoleTypeEnum.IFA.code));
151 152 153 154 155 156 157
                employeeRoleEntity.setOrgId(orgInfoDto.getOrgId());
                insertEmployeeRoleList.add(employeeRoleEntity);

                // department_employee 在精业展业中 一个用户对应一个部门
                DepartmentEmployeeEntity departmentEmployee = new DepartmentEmployeeEntity();
                departmentEmployee.setEmployeeId(userInfoEntity.getId());
                departmentEmployee.setDepartmentId(userInfoEntity.getTeamId());
吴泽佳's avatar
吴泽佳 committed
158
                departmentEmployee.setType("1".equals(userInfoEntity.getUiShenfen()) ? EmployeeDutyEnum.DIRECTOR.code: EmployeeDutyEnum.STAFF.code);
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
                departmentEmployee.setOrgId(orgInfoDto.getOrgId());
                insertDepartmentEmployeeList.add(departmentEmployee);

            });

            // 员工修改
            updateUserInfoList.forEach(userInfoEntity -> {
                // employee
                Optional<EmployeeEntity> employeeEntityOptional = orgInfoDto.getEmployeeList().stream().filter(employee -> employee.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (employeeEntityOptional.isPresent()) {
                    EmployeeEntity employeeEntity = employeeEntityOptional.get();
                    if (StrUtil.compare(employeeEntity.getName(), userInfoEntity.getUiUsername(), true) != 0
                            || StrUtil.compare(employeeEntity.getPhone(), userInfoEntity.getUiTelphone(), true) != 0
                            || StrUtil.compare(employeeEntity.getMail(), userInfoEntity.getUiEmailMp(), true) != 0
                            || StrUtil.compare(employeeEntity.getNumber(), userInfoEntity.getStaffNo(), true) != 0) {

                        employeeEntity.setName(userInfoEntity.getUiUsername());
                        employeeEntity.setPhone(userInfoEntity.getUiTelphone());
                        employeeEntity.setMail(userInfoEntity.getUiEmailMp());
                        employeeEntity.setNumber(userInfoEntity.getStaffNo());
                        employeeEntity.setBoundWechat(StrUtil.isNotBlank(userInfoEntity.getUiOpenid()) ? orgInfoDto.getOrgId() + "_" + userInfoEntity.getUiUsername() : null);
                        updateEmployeeList.add(employeeEntity);
                    }
182

183 184 185 186 187 188
                }

                // employee_role
                Optional<EmployeeRoleEntity> employeeRoleEntityOptional = orgInfoDto.getEmployeeRoleList().stream().filter(employeeRole -> employeeRole.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (employeeRoleEntityOptional.isPresent()) {
                    EmployeeRoleEntity employeeRoleEntity = employeeRoleEntityOptional.get();
吴泽佳's avatar
吴泽佳 committed
189
                    String role = "1".equals(userInfoEntity.getUiShenfen()) ? RoleTypeEnum.TEAM.code : RoleTypeEnum.IFA.code;
190 191 192 193
                    if (StrUtil.compare(infoNoAdmin.get(role), employeeRoleEntity.getRoleId(), true) != 0) {
                        employeeRoleEntity.setRoleId(infoNoAdmin.get(role));
                        updateEmployeeRoleList.add(employeeRoleEntity);
                    }
194 195 196

                }

197 198 199 200 201 202 203 204 205
                // department_employee
                Optional<DepartmentEmployeeEntity> departmentEmployeeEntityOptional = orgInfoDto.getDepartmentEmployeeList().stream().filter(departmentEmployee -> departmentEmployee.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (departmentEmployeeEntityOptional.isPresent()) {
                    DepartmentEmployeeEntity departmentEmployeeEntity = departmentEmployeeEntityOptional.get();
                    if (StrUtil.compare(userInfoEntity.getTeamId(), departmentEmployeeEntity.getDepartmentId(), true) != 0) {
                        departmentEmployeeEntity.setDepartmentId(userInfoEntity.getTeamId());
                        updateDepartmentEmployeeList.add(departmentEmployeeEntity);
                    }
                }
206 207


208
            });
209

210 211 212 213 214 215 216 217
            // 员工删除
            deleteUserInfoList.forEach(userInfoEntity -> {
                // employee
                Optional<EmployeeEntity> employeeEntityOptional = orgInfoDto.getEmployeeList().stream().filter(employee -> employee.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (employeeEntityOptional.isPresent()) {
                    EmployeeEntity employeeEntity = employeeEntityOptional.get();
                    deleteEmployeeList.add(employeeEntity);
                }
218

219 220 221 222 223 224
                // employee_role
                Optional<EmployeeRoleEntity> employeeRoleEntityOptional = orgInfoDto.getEmployeeRoleList().stream().filter(employeeRole -> employeeRole.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (employeeRoleEntityOptional.isPresent()) {
                    EmployeeRoleEntity employeeRoleEntity = employeeRoleEntityOptional.get();
                    deleteEmployeeRoleList.add(employeeRoleEntity);
                }
225

226 227 228 229 230 231
                // department_employee
                Optional<DepartmentEmployeeEntity> departmentEmployeeEntityOptional = orgInfoDto.getDepartmentEmployeeList().stream().filter(departmentEmployee -> departmentEmployee.getEmployeeId().equals(userInfoEntity.getId())).findFirst();
                if (departmentEmployeeEntityOptional.isPresent()) {
                    DepartmentEmployeeEntity departmentEmployeeEntity = departmentEmployeeEntityOptional.get();
                    deleteDepartmentEmployeeList.add(departmentEmployeeEntity);
                }
232

233
            });
234

235 236 237
            workUserInfo.setInsertList(insertUserInfoList);
            workUserInfo.setUpdateList(updateUserInfoList);
            workUserInfo.setDeleteList(deleteUserInfoList);
238

239 240 241
            workEmployee.setInsertList(insertEmployeeList);
            workEmployee.setUpdateList(updateEmployeeList);
            workEmployee.setDeleteList(deleteEmployeeList);
242

243 244 245
            workDepartmentEmployee.setInsertList(insertDepartmentEmployeeList);
            workDepartmentEmployee.setUpdateList(updateDepartmentEmployeeList);
            workDepartmentEmployee.setDeleteList(deleteDepartmentEmployeeList);
246

247 248 249
            workEmployeeRole.setInsertList(insertEmployeeRoleList);
            workEmployeeRole.setUpdateList(updateEmployeeRoleList);
            workEmployeeRole.setDeleteList(deleteEmployeeRoleList);
250

251 252 253 254
            // 部门
            List<DepartmentEntity> insertDepartmentList = new ArrayList<>();
            List<DepartmentEntity> updateDepartmentList = new ArrayList<>();
            List<DepartmentEntity> deleteDepartmentList = new ArrayList<>();
255

256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
            Map<String, JyzyTeamEntity> jyzyTeamEntityMap = jyzyTeamDtoList.stream().collect(Collectors.toMap(jyzyTeamDto -> jyzyTeamDto.getJyzyTeam().getId(), JyzyTeamDto::getJyzyTeam));
            orgInfoDto.getDepartmentList().forEach(departmentEntity -> {
                JyzyTeamEntity jyzyTeamEntity = jyzyTeamEntityMap.get(departmentEntity.getDepartmentId());
                // 删除
                if (ObjectUtil.isNull(jyzyTeamEntity)) {
                    deleteDepartmentList.add(departmentEntity);
                    return;
                }
                // 更新
                int memberNums = 0;
                Optional<JyzyTeamDto> jyzyTeamDtoOptional = jyzyTeamDtoList.stream().filter(jyzyTeamDto -> jyzyTeamDto.getJyzyTeam().getId().equals(departmentEntity.getDepartmentId())).findFirst();
                if (jyzyTeamDtoOptional.isPresent()) {
                    memberNums = jyzyTeamDtoOptional.get().getJyzyUserInfos().size();
                }
                if (StrUtil.compare(departmentEntity.getDepartmentName(), jyzyTeamEntity.getTeamName(), true) != 0
                        || StrUtil.compare(departmentEntity.getParentDepartId(), jyzyTeamEntity.getPId(), true) != 0
                        || !departmentEntity.getMembers().equals(memberNums)) {
                    departmentEntity.setDepartmentName(jyzyTeamEntity.getTeamName());
                    departmentEntity.setParentDepartId(jyzyTeamEntity.getPId());
                    departmentEntity.setMembers(memberNums);
                    updateDepartmentList.add(departmentEntity);
                }
                jyzyTeamEntityMap.remove(departmentEntity.getDepartmentId());
            });


            // 新增
            jyzyTeamEntityMap.forEach((id, jyzyTeamEntity) -> {
吴泽佳's avatar
吴泽佳 committed
284 285 286 287 288
                int memberNums = 0;
                Optional<JyzyTeamDto> jyzyTeamDtoOptional = jyzyTeamDtoList.stream().filter(jyzyTeamDto -> jyzyTeamDto.getJyzyTeam().getId().equals(id)).findFirst();
                if (jyzyTeamDtoOptional.isPresent()) {
                    memberNums = jyzyTeamDtoOptional.get().getJyzyUserInfos().size();
                }
289 290 291 292 293 294
                DepartmentEntity department = new DepartmentEntity();
                department.setDepartmentId(id);
                department.setParentDepartId(jyzyTeamEntity.getPId());
                department.setDepartmentName(jyzyTeamEntity.getTeamName());
                int length = jyzyTeamEntity.getFullPathId().split("/").length;
                department.setLevel(length - 1);
吴泽佳's avatar
吴泽佳 committed
295
                department.setMembers(memberNums);
296 297 298 299 300 301 302 303 304
                department.setOrgId(orgInfoDto.getOrgId());
                insertDepartmentList.add(department);
            });
            workDepartment.setInsertList(insertDepartmentList);
            workDepartment.setUpdateList(updateDepartmentList);
            workDepartment.setDeleteList(deleteDepartmentList);
        } catch (Exception e) {
            log.error("====== 数据对比失败,失败原因-->", e);
        }
吴泽佳's avatar
吴泽佳 committed
305 306 307 308
        log.info("======结束数据对比======");
    }

    /**
309 310 311 312
     * @description: 根据理财师机构版的机构code 获取其的 机构及用户信息列表
     * @Author: zejia zj wu
     * @date: 2021/5/27 3:13 下午
     */
吴泽佳's avatar
吴泽佳 committed
313 314 315 316 317 318 319 320 321
    private OrgInfoDto getOrgInfoByFeoOrgCode(String feoOrgCode) throws Exception {
        OrgInfoDto.OrgInfoDtoBuilder orgInfoDtoBuilder = OrgInfoDto.builder();
        try {
            // 1 根据orgcode 获取机构信息
            OrgEntity org = orgService.findByOrgCode(feoOrgCode);
            if (ObjectUtil.isEmpty(org) || StrUtil.isBlank(org.getId())) {
                throw new Exception("feoOrgCode 不存在");
            }
            String orgId = org.getId();
322
            orgInfoDtoBuilder.orgId(orgId).orgQrCodeUrl(getQrCodeUrl(org.getId()));
吴泽佳's avatar
吴泽佳 committed
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
            // 2 根据 orgId 获取 userInfoList信息
            List<UserInfoEntity> userInfoList = userInfoService.getUserInfoListByOrgId(orgId);
            orgInfoDtoBuilder.userInfoList(userInfoList);
            // 3 根据 orgId 获取 Employee信息
            List<EmployeeEntity> employeeList = employeeService.getEmployeeSListByOrgId(orgId);
            orgInfoDtoBuilder.employeeList(employeeList);
            // 4 根据 orgId 获取 Department信息
            List<DepartmentEntity> departmentList = departmentService.findDepartmentByOrgId(orgId);
            orgInfoDtoBuilder.departmentList(departmentList);
            // 5 根据 orgId 获取 DepartmentEmployee信息
            List<DepartmentEmployeeEntity> departmentEmployeeList = departmentEmployeeService.findInfoByOrgId(orgId);
            orgInfoDtoBuilder.departmentEmployeeList(departmentEmployeeList);
            // 6 根据 orgId 获取 EmployeeRole信息
            List<EmployeeRoleEntity> employeeRoleList = employeeRoleService.findInfoByOrgId(orgId);
            orgInfoDtoBuilder.employeeRoleList(employeeRoleList);
            // 7 整理数据 将用户安排到 组织下面
            return orgInfoDtoBuilder.build();
        } catch (Exception e) {
xd's avatar
xd committed
341
            log.error("=======从理财师机构版 数据库中 获取组织及用户 信息 方法出错-->{}======", e.getMessage(), e);
吴泽佳's avatar
吴泽佳 committed
342 343 344 345 346
            throw new Exception("同步失败,-->" + e.getMessage());
        }
    }

    /**
347 348 349 350
     * @description: 根据精业展业的机构code 获取精业展业的 机构及人员信息列表
     * @Author: zejia zj wu
     * @date: 2021/5/27 3:12 下午
     */
吴泽佳's avatar
吴泽佳 committed
351 352 353 354 355 356 357
    private List<JyzyTeamDto> getJyzyTeamByOrgCode(String jyzyOrgCode) throws Exception {
        try {
            // 1 根据orgcode 获取机构信息
            JyzyOrgEntity jyzyOrg = jyzyOrgService.getOrgByOrgCode(jyzyOrgCode);
            if (ObjectUtil.isEmpty(jyzyOrg) || StrUtil.isBlank(jyzyOrg.getId())) {
                throw new Exception("jyzyOrgCode 不存在");
            }
358
            // 2 根据 orgId 获取 团队信息 (不包含虚拟组织)
吴泽佳's avatar
吴泽佳 committed
359
            List<JyzyTeamEntity> jyzyTeamList = jyzyTeamService.getTeamListByOrgId(jyzyOrg.getId());
360
            // 3 根据 orgId 获取 用户信息 (包含虚拟组织下面的用户)
吴泽佳's avatar
吴泽佳 committed
361
            List<JyzyUserInfoEntity> userInfoList = jyzyUserInfoService.getUserListByOrgId(jyzyOrg.getId());
362
            // 4 整理数据 将用户安排到 组织下面 (去除虚拟组织下的用户)
吴泽佳's avatar
吴泽佳 committed
363
            return jyzyTeamList.stream().map(jyzyTeam -> JyzyTeamDto.builder()
364 365 366
                    .jyzyTeam(jyzyTeam)
                    .jyzyUserInfos(userInfoList.stream().filter(jyzyUserInfo -> jyzyUserInfo.getTeamId().equals(jyzyTeam.getId())).collect(Collectors.toList()))
                    .build()).collect(Collectors.toList());
吴泽佳's avatar
吴泽佳 committed
367
        } catch (Exception e) {
xd's avatar
xd committed
368
            log.error("=======从精业展业 数据库中 获取组织及用户 信息 方法出错-->{}======", e.getMessage(), e);
吴泽佳's avatar
吴泽佳 committed
369 370 371 372
            throw new Exception("同步失败,-->" + e.getMessage());
        }
    }

373 374 375 376 377 378 379 380
    private String getQrCodeUrl(String orgCode) {
        com.tanpu.feo.feojob.feign.CommonResp<String> commonResp = feignClientForFatools.getQrCodeUrl(orgCode);
        if (commonResp.isNotSuccess()) {
            throw new RuntimeException(commonResp.statusCode + ", " + commonResp.getMessage());
        }
        return commonResp.getAttributes();
    }

吴泽佳's avatar
吴泽佳 committed
381
}