Example #1
0
  private void freshOrgData(String synctime) {
    Map<String, AccountOrg> orgMap = new HashMap<String, AccountOrg>();
    Map<String, AccountDept> deptMap = new HashMap<String, AccountDept>();

    List<LdapOrg> search = ldapDataExtracterService.searchOrgs(synctime);
    // Ldap Bean转Entity
    for (LdapOrg ldapOrg : search) {
      AccountOrg accountOrg = convertldapOrgToEntity(ldapOrg);
      if (accountOrg != null) {
        orgMap.put(accountOrg.getOrgcode(), accountOrg);
      }

      AccountDept accountDept = convertldapOrgToDeptEntity(ldapOrg);
      if (accountDept != null) {
        deptMap.put(accountDept.getPkdept(), accountDept);
      }
    }

    if (!orgMap.isEmpty() && orgMap.size() > 0) {
      List<AccountOrg> insertList = new ArrayList<AccountOrg>();
      for (Entry<String, AccountOrg> entry : orgMap.entrySet()) {
        AccountOrg accountOrg = orgRepository.findByOrgcode(entry.getKey());
        if (accountOrg != null) {
          entry.getValue().setId(accountOrg.getId());
          ;
          orgRepository.saveAndFlush(entry.getValue());
          log.info("-- freshOrgData update accountOrg : {}", entry.getValue());
        } else {
          insertList.add(entry.getValue());
        }
      }
      insertList = orgRepository.save(insertList);
      log.info(
          "-- freshOrgData save accountOrg list : {} ",
          insertList == null ? null : insertList.size());
    }

    if (!deptMap.isEmpty() && deptMap.size() > 0) {
      List<AccountDept> insertList = new ArrayList<AccountDept>();
      for (Entry<String, AccountDept> entry : deptMap.entrySet()) {
        AccountDept accountDept = deptRepository.findByPkdept(entry.getKey());
        if (accountDept != null) {
          entry.getValue().setId(accountDept.getId());
          deptRepository.saveAndFlush(entry.getValue());
          log.info("-- freshDeptData update accountDept : {}", entry.getValue());
        } else {
          insertList.add(entry.getValue());
        }
      }
      // 批量执行插入
      insertList = deptRepository.save(insertList);
      log.info(
          "-- freshDeptData save accountDept list : {} ",
          insertList == null ? null : insertList.size());
    }
  }