|
@@ -1,5 +1,7 @@
|
|
|
import datetime
|
|
|
|
|
|
+from sqlalchemy import or_
|
|
|
+
|
|
|
from extensions.ext_database import db
|
|
|
from models.account import Account
|
|
|
from models.dept import Dept
|
|
@@ -40,9 +42,28 @@ class DeptService:
|
|
|
@staticmethod
|
|
|
def get_dept_list():
|
|
|
dept_list = []
|
|
|
- dept_results = db.session.query(Dept.dept_id, Dept.dept_name).filter(Dept.status == "active").all()
|
|
|
+
|
|
|
+ condition = or_(Dept.parent_dept_id == None, Dept.parent_dept_id == "")
|
|
|
+ dept_results = db.session.query(Dept).filter(Dept.status == "active", condition).all()
|
|
|
+
|
|
|
+ print(str(dept_results))
|
|
|
for dept_row in dept_results:
|
|
|
- dept_list.append({"dept_id": dept_row.dept_id, "dept_name": dept_row.dept_name})
|
|
|
+ children_dept_list = []
|
|
|
+ children_depts = (
|
|
|
+ db.session.query(Dept.dept_id, Dept.dept_name)
|
|
|
+ .filter(Dept.status == "active", Dept.parent_dept_id == dept_row.dept_id)
|
|
|
+ .all()
|
|
|
+ )
|
|
|
+ for children_dept in children_depts:
|
|
|
+ children_dept_list.append({"dept_id": children_dept.dept_id, "dept_name": children_dept.dept_name})
|
|
|
+ dept_list.append(
|
|
|
+ {
|
|
|
+ "parent_dept_id": "",
|
|
|
+ "dept_id": dept_row.dept_id,
|
|
|
+ "dept_name": dept_row.dept_name,
|
|
|
+ "children": children_dept_list,
|
|
|
+ }
|
|
|
+ )
|
|
|
return dept_list
|
|
|
|
|
|
@staticmethod
|
|
@@ -65,22 +86,33 @@ class DeptService:
|
|
|
return dept
|
|
|
|
|
|
@staticmethod
|
|
|
- def save_dept(dept_name, current_user):
|
|
|
+ def save_dept(dept_name, current_user, parent_dept_id):
|
|
|
dept = Dept(
|
|
|
dept_name=dept_name,
|
|
|
status="active",
|
|
|
created_at=datetime.datetime.now(),
|
|
|
created_by=current_user.id,
|
|
|
+ parent_dept_id=parent_dept_id,
|
|
|
)
|
|
|
db.session.add(dept)
|
|
|
db.session.flush()
|
|
|
db.session.commit()
|
|
|
|
|
|
@staticmethod
|
|
|
- def update_dept(dept_id, dept_name, current_user):
|
|
|
- db.session.query(Dept).filter(Dept.dept_id == dept_id).update(
|
|
|
- {"updated_by": current_user.id, "updated_at": datetime.datetime.now(), "dept_name": dept_name}
|
|
|
+ def update_dept(dept_id, dept_name, current_user, parent_dept_id):
|
|
|
+ sql = (
|
|
|
+ db.session.query(Dept)
|
|
|
+ .filter(Dept.dept_id == dept_id)
|
|
|
+ .update(
|
|
|
+ {
|
|
|
+ "updated_by": current_user.id,
|
|
|
+ "updated_at": datetime.datetime.now(),
|
|
|
+ "dept_name": dept_name,
|
|
|
+ "parent_dept_id": parent_dept_id,
|
|
|
+ }
|
|
|
+ )
|
|
|
)
|
|
|
+ print(str(sql))
|
|
|
db.session.commit()
|
|
|
|
|
|
@staticmethod
|