增加定时同步组织架构
This commit is contained in:
0
service/sync/__init__.py
Normal file
0
service/sync/__init__.py
Normal file
38
service/sync/department.py
Normal file
38
service/sync/department.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from service import get_wecom
|
||||
from model import get_session, Department
|
||||
from sqlmodel import delete, select
|
||||
|
||||
|
||||
async def sync_department():
|
||||
wecom = get_wecom()
|
||||
|
||||
department_res = await wecom.get_departments()
|
||||
|
||||
with get_session() as session:
|
||||
# 删除原来的数据
|
||||
stmt = delete(Department)
|
||||
session.execute(stmt)
|
||||
session.commit()
|
||||
|
||||
# DepartmentInfoItem(id=302, name='亮剑一部一组-梁鹏涛', name_en=None, department_leader=['LiangPengTao'], parentid=96, order=100000000)
|
||||
# 插入新的数据
|
||||
for index, item in enumerate(department_res):
|
||||
new_dept = Department(
|
||||
id=index + 1,
|
||||
wecom_dept_id=str(item.id),
|
||||
dname=str(item.name),
|
||||
name_en=str(item.name_en),
|
||||
department_leader=item.department_leader or [],
|
||||
parent_id=str(item.parentid),
|
||||
order=item.order or 0,
|
||||
)
|
||||
session.add(new_dept)
|
||||
session.commit()
|
||||
|
||||
|
||||
def check_department_datebase():
|
||||
with get_session() as session:
|
||||
has = session.exec(select(Department)).first()
|
||||
if not has:
|
||||
return False
|
||||
return True
|
||||
37
service/sync/employee.py
Normal file
37
service/sync/employee.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from service import get_wecom
|
||||
from model import get_session, Employee
|
||||
from sqlmodel import delete, select
|
||||
|
||||
|
||||
async def sync_department_user():
|
||||
wecom = get_wecom()
|
||||
|
||||
dept_res = await wecom.get_departments()
|
||||
|
||||
with get_session() as session:
|
||||
# 删除原来的数据
|
||||
stmt = delete(Employee)
|
||||
session.execute(stmt)
|
||||
session.commit()
|
||||
index_id = 1
|
||||
for dept in dept_res:
|
||||
user_res = await wecom.get_user_in_department(dept.id)
|
||||
for item in user_res:
|
||||
new_employee = Employee(
|
||||
id=index_id,
|
||||
wecom_user_id=item.userid,
|
||||
ename=item.name,
|
||||
dept_ids=[str(i) for i in item.department],
|
||||
open_userid=item.open_userid,
|
||||
)
|
||||
index_id += 1
|
||||
session.add(new_employee)
|
||||
session.commit()
|
||||
|
||||
|
||||
def check_employee_datebase():
|
||||
with get_session() as session:
|
||||
has = session.exec(select(Employee)).first()
|
||||
if not has:
|
||||
return False
|
||||
return True
|
||||
Reference in New Issue
Block a user