|
@@ -1,4 +1,5 @@
|
|
|
import json
|
|
|
+import os
|
|
|
|
|
|
from flask import request, jsonify
|
|
|
from flask_restx import Resource, Namespace, reqparse
|
|
@@ -6,6 +7,7 @@ from sqlalchemy import select, insert, delete, update
|
|
|
from sqlalchemy.orm import Session
|
|
|
from werkzeug.datastructures import FileStorage
|
|
|
|
|
|
+from app.configs.config import COMPANY_LOGO_PATH, COMPANY_LOGO_URL
|
|
|
from app.defines import StatesCode, Module, OperationType
|
|
|
from app.database import engine
|
|
|
from app.modle.organization import Company, Department
|
|
@@ -57,16 +59,31 @@ company_details.add_argument(name='on_guard_size', type=str, location='form', re
|
|
|
delete_company = reqparse.RequestParser(bundle_errors=True)
|
|
|
delete_company.add_argument(name='company_id', type=int, location='form', required=False, help='公司id')
|
|
|
|
|
|
+get_company_details = reqparse.RequestParser(bundle_errors=True)
|
|
|
+get_company_details.add_argument(name='company_id', type=int, location='args', required=False, help='公司id')
|
|
|
+
|
|
|
|
|
|
@ns.route('/company')
|
|
|
class CompanyApi(Resource):
|
|
|
method_decorators = [login_required]
|
|
|
|
|
|
- @ns.doc(id='get_company', description='搜索公司')
|
|
|
- @ns.expect()
|
|
|
+ @ns.doc(id='get_company_details', description='获取公司详情')
|
|
|
+ @ns.expect(get_company_details)
|
|
|
def get(self):
|
|
|
- """搜索公司"""
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": '查询'}
|
|
|
+ """获取公司详情"""
|
|
|
+
|
|
|
+ company_id = request.args.get('company_id')
|
|
|
+
|
|
|
+ if company_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Company).where(Company.id == company_id)
|
|
|
+ results = session.execute(stmt).scalars().all()
|
|
|
+
|
|
|
+ save_log(request, Module.ORGANIZATION, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
|
|
|
@ns.doc(id='add_company', description='添加公司')
|
|
|
@ns.expect(company_details)
|
|
@@ -75,8 +92,6 @@ class CompanyApi(Resource):
|
|
|
|
|
|
company_name = request.form.get('company_name')
|
|
|
logo = request.files.get('logo')
|
|
|
- if logo:
|
|
|
- logo = logo.read()
|
|
|
abbreviation = request.form.get('abbreviation')
|
|
|
code = request.form.get('code')
|
|
|
registered_address = request.form.get('registered_address')
|
|
@@ -89,6 +104,13 @@ class CompanyApi(Resource):
|
|
|
if company_name is None:
|
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司名不能为空")
|
|
|
|
|
|
+ # 公司商标存储(url),
|
|
|
+ if logo:
|
|
|
+ logo.save(os.path.join(COMPANY_LOGO_PATH, logo.filename))
|
|
|
+ logo_url = COMPANY_LOGO_URL + logo.filename
|
|
|
+ else:
|
|
|
+ logo_url = None
|
|
|
+
|
|
|
with Session(engine) as session:
|
|
|
# 判断公司是否存在
|
|
|
stmt = select(Company).where(Company.company_name == company_name)
|
|
@@ -99,7 +121,7 @@ class CompanyApi(Resource):
|
|
|
# 添加公司
|
|
|
stmt = insert(Company).values(
|
|
|
company_name=company_name,
|
|
|
- logo=logo,
|
|
|
+ logo=logo_url if logo_url else None,
|
|
|
abbreviation=abbreviation,
|
|
|
code=code,
|
|
|
registered_address=registered_address,
|
|
@@ -117,52 +139,6 @@ class CompanyApi(Resource):
|
|
|
|
|
|
return jsonify(code=StatesCode.SUCCESS, message='添加成功')
|
|
|
|
|
|
- @ns.doc(id='delete_company', description='删除公司')
|
|
|
- @ns.expect(delete_company)
|
|
|
- def delete(self):
|
|
|
- """删除公司"""
|
|
|
- company_id = request.form.get('company_id')
|
|
|
-
|
|
|
- if company_id is None:
|
|
|
- return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
-
|
|
|
- with Session(engine) as session:
|
|
|
- stmt = select(Company).where(Company.id == company_id)
|
|
|
-
|
|
|
- session.delete(session.execute(stmt).scalars().first())
|
|
|
- session.commit()
|
|
|
-
|
|
|
- save_log(request, Module.ORGANIZATION, OperationType.DELETE, StatesCode.SUCCESS)
|
|
|
-
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message="删除成功")
|
|
|
-
|
|
|
-
|
|
|
-get_company_details = reqparse.RequestParser(bundle_errors=True)
|
|
|
-get_company_details.add_argument(name='company_id', type=int, location='args', required=False, help='公司id')
|
|
|
-
|
|
|
-
|
|
|
-@ns.route('/company_details')
|
|
|
-class CompanyDetailsApi(Resource):
|
|
|
- method_decorators = [login_required]
|
|
|
-
|
|
|
- @ns.doc(id='get_company_details', description='获取公司详情')
|
|
|
- @ns.expect(get_company_details)
|
|
|
- def get(self):
|
|
|
- """获取公司详情"""
|
|
|
-
|
|
|
- company_id = request.args.get('company_id')
|
|
|
-
|
|
|
- if company_id is None:
|
|
|
- return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
-
|
|
|
- with Session(engine) as session:
|
|
|
- stmt = select(Company).where(Company.id == company_id)
|
|
|
- results = session.execute(stmt).scalars().all()
|
|
|
-
|
|
|
- save_log(request, Module.ORGANIZATION, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
-
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
-
|
|
|
@ns.doc(id='update_company_details', description='修改公司详情')
|
|
|
@ns.expect(company_details)
|
|
|
def put(self):
|
|
@@ -170,8 +146,6 @@ class CompanyDetailsApi(Resource):
|
|
|
company_id = request.form.get('company_id')
|
|
|
company_name = request.form.get('company_name')
|
|
|
logo = request.files.get('logo')
|
|
|
- if logo:
|
|
|
- logo = logo.read()
|
|
|
abbreviation = request.form.get('abbreviation')
|
|
|
code = request.form.get('code')
|
|
|
registered_address = request.form.get('registered_address')
|
|
@@ -184,10 +158,17 @@ class CompanyDetailsApi(Resource):
|
|
|
if company_name is None:
|
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司名不能为空")
|
|
|
|
|
|
+ # 公司商标存储(url),
|
|
|
+ if logo:
|
|
|
+ logo.save(os.path.join(COMPANY_LOGO_PATH, logo.filename))
|
|
|
+ logo_url = COMPANY_LOGO_URL + logo.filename
|
|
|
+ else:
|
|
|
+ logo_url = None
|
|
|
+
|
|
|
with Session(engine) as session:
|
|
|
stmt = update(Company).where(Company.id == company_id).values(
|
|
|
company_name=company_name,
|
|
|
- logo=logo,
|
|
|
+ logo=logo_url if logo_url else None,
|
|
|
abbreviation=abbreviation,
|
|
|
code=code,
|
|
|
registered_address=registered_address,
|
|
@@ -204,6 +185,25 @@ class CompanyDetailsApi(Resource):
|
|
|
|
|
|
return jsonify(code=StatesCode.SUCCESS, message='修改成功')
|
|
|
|
|
|
+ @ns.doc(id='delete_company', description='删除公司')
|
|
|
+ @ns.expect(company_details)
|
|
|
+ def delete(self):
|
|
|
+ """删除公司"""
|
|
|
+ company_id = request.form.get('company_id')
|
|
|
+
|
|
|
+ if company_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Company).where(Company.id == company_id)
|
|
|
+
|
|
|
+ session.delete(session.execute(stmt).scalars().first())
|
|
|
+ session.commit()
|
|
|
+
|
|
|
+ save_log(request, Module.ORGANIZATION, OperationType.DELETE, StatesCode.SUCCESS)
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message="删除成功")
|
|
|
+
|
|
|
|
|
|
department_details = reqparse.RequestParser(bundle_errors=True)
|
|
|
department_details.add_argument(name='department_id', type=str, location='form', required=False, help='部门id')
|
|
@@ -219,8 +219,8 @@ department_details.add_argument(name='thirdparty_staff', type=str, location='for
|
|
|
department_details.add_argument(name='censure', type=str, location='form', required=False, help='职责')
|
|
|
|
|
|
|
|
|
-@ns.route('/department')
|
|
|
-class DepartmentApi(Resource):
|
|
|
+@ns.route('/department_list')
|
|
|
+class DepartmentListApi(Resource):
|
|
|
method_decorators = [login_required]
|
|
|
|
|
|
@ns.doc(id='department_list', description='获取公司下部门列表')
|
|
@@ -245,6 +245,33 @@ class DepartmentApi(Resource):
|
|
|
|
|
|
return jsonify(code=StatesCode.SUCCESS, message='成功', data=data)
|
|
|
|
|
|
+
|
|
|
+get_department = reqparse.RequestParser(bundle_errors=True)
|
|
|
+get_department.add_argument(name='department_id', type=str, location='args', required=False, help='部门id')
|
|
|
+
|
|
|
+
|
|
|
+@ns.route('/department')
|
|
|
+class DepartmentApi(Resource):
|
|
|
+ method_decorators = [login_required]
|
|
|
+
|
|
|
+ @ns.doc(id='get_department_details', description='获取部门详情')
|
|
|
+ @ns.expect(get_department)
|
|
|
+ def get(self):
|
|
|
+ """获取部门详情"""
|
|
|
+
|
|
|
+ department_id = request.args.get('department_id')
|
|
|
+
|
|
|
+ if department_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="部门id不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Department).where(Department.id == department_id)
|
|
|
+ results = session.execute(stmt).scalars().all()
|
|
|
+
|
|
|
+ save_log(request, Module.ORGANIZATION, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message="成功", data=to_dict(results))
|
|
|
+
|
|
|
@ns.doc(id='add_department', description='添加部门')
|
|
|
@ns.expect(department_details)
|
|
|
def post(self):
|
|
@@ -284,51 +311,6 @@ class DepartmentApi(Resource):
|
|
|
|
|
|
return {"code": StatesCode.SUCCESS, "message": "成功"}
|
|
|
|
|
|
- @ns.doc(id='delete_company_details', description='删除部门')
|
|
|
- @ns.expect(department_details)
|
|
|
- def delete(self):
|
|
|
- """删除部门"""
|
|
|
- department_id = request.form.get('department_id')
|
|
|
-
|
|
|
- if department_id is None:
|
|
|
- return jsonify(code=StatesCode.UNKNOWN_ERROR, message="部门id不能为空")
|
|
|
-
|
|
|
- with Session(engine) as session:
|
|
|
- stmt = delete(Department).where(Department.id == department_id)
|
|
|
- session.execute(stmt)
|
|
|
- session.commit()
|
|
|
-
|
|
|
- save_log(request, Module.ORGANIZATION, OperationType.DELETE, StatesCode.SUCCESS)
|
|
|
-
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": '删除部门'}
|
|
|
-
|
|
|
-
|
|
|
-get_department = reqparse.RequestParser(bundle_errors=True)
|
|
|
-get_department.add_argument(name='department_id', type=str, location='args', required=False, help='部门id')
|
|
|
-
|
|
|
-
|
|
|
-@ns.route('/department_details')
|
|
|
-class DepartmentDetailsApi(Resource):
|
|
|
- method_decorators = [login_required]
|
|
|
-
|
|
|
- @ns.doc(id='get_department_details', description='获取部门详情')
|
|
|
- @ns.expect(get_department)
|
|
|
- def get(self):
|
|
|
- """获取部门详情"""
|
|
|
-
|
|
|
- department_id = request.args.get('department_id')
|
|
|
-
|
|
|
- if department_id is None:
|
|
|
- return jsonify(code=StatesCode.UNKNOWN_ERROR, message="部门id不能为空")
|
|
|
-
|
|
|
- with Session(engine) as session:
|
|
|
- stmt = select(Department).where(Department.id == department_id)
|
|
|
- results = session.execute(stmt).scalars().all()
|
|
|
-
|
|
|
- save_log(request, Module.ORGANIZATION, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
-
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message="成功", data=to_dict(results))
|
|
|
-
|
|
|
@ns.doc(id='update_company_details', description='修改部门详情')
|
|
|
@ns.expect(department_details)
|
|
|
def put(self):
|
|
@@ -370,6 +352,24 @@ class DepartmentDetailsApi(Resource):
|
|
|
|
|
|
return jsonify(code=StatesCode.SUCCESS, message="成功")
|
|
|
|
|
|
+ @ns.doc(id='delete_company_details', description='删除部门')
|
|
|
+ @ns.expect(department_details)
|
|
|
+ def delete(self):
|
|
|
+ """删除部门"""
|
|
|
+ department_id = request.form.get('department_id')
|
|
|
+
|
|
|
+ if department_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="部门id不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = delete(Department).where(Department.id == department_id)
|
|
|
+ session.execute(stmt)
|
|
|
+ session.commit()
|
|
|
+
|
|
|
+ save_log(request, Module.ORGANIZATION, OperationType.DELETE, StatesCode.SUCCESS)
|
|
|
+
|
|
|
+ return {"code": StatesCode.SUCCESS, "message": "成功", "data": '删除部门'}
|
|
|
+
|
|
|
|
|
|
batch_delete_company = reqparse.RequestParser(bundle_errors=True)
|
|
|
batch_delete_company.add_argument(name='company_ids', type=list, location='form', required=False, help='公司ids')
|