CCCCCCCYYY_ 2022-05-17 09:21 采纳率: 50%
浏览 223
已结题

企业微信部门人员同步

公司内部现在想从飞书转为用企业微信,然后内部所有数据都以SAP的数据为准。
所以需要写一个定时任务,定时从SAP(可理解为数据库)拉取所有部门和人员数据进行同步(部门变动、人员入离职),与企微现有的部门人员作一个比对,对企微进行部门人员异动的更新。
像这种两颗树多叉树型的结构比对和更新,不知怎么去写这个算法..
还是说利用数据库两张表,新数据表和旧数据表进行比对更快?
求一个实现方法,谢谢各位!

  • 写回答

8条回答 默认 最新

  • qq_34370249 2022-05-17 10:59
    关注

    以树形结构进行处理,树形结构设计,根节点为部门,最左侧的叶子节点为根节点部门下的人员,其他叶子节点为根节点部门下的子部门。 如果不存在隶属关系,可以虚构一个隶属关系。
    采用先序遍历,根左右形式同时遍历两个二叉树。 进行对比。

    1. 先判断叶子节点的数量,sap数量大于QW(企业微信),将多余的节点全部拷贝进QW中,将该节点从sap中剔除;sap数量小于QW,将QW中多余的节点全部剔除,将该节点从QW中剔除。处理过后,sap 与 QW的叶子节点数相同。
    2. 同时进入最左侧节点,遍历人员节点。比对人员信息,选择更新或者新增。(一般来说,比对的字段不是很多的话,比对几万次是很快的,几十秒就完成了)更新时,可以使用多线程,增加一点点的速度。
    3. 重复步骤 1.2 直到遍历完所有的节点。
      步骤中的难点,应该是比对的部分,这里有很多实现的方法,看你自己要怎么处理,耗时的部分,应该是步骤1,新增对象和删除对象是很慢的,你可以处理好了以后,在更新QW的内容。
      我看你上面的回答,部门3k+,人员8k+,数据量比较少,不是很多。目测,你执行下来,时间大概是 5-10分钟左右。
      方法不是很巧妙,但是应该可以完成你的任务。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月17日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。