|
@@ -1,76 +1,190 @@
|
|
|
from flask import request, jsonify
|
|
|
from flask_restx import Resource, Namespace, reqparse
|
|
|
+from sqlalchemy import select, insert, delete, update
|
|
|
+from sqlalchemy.orm import Session
|
|
|
+from werkzeug.datastructures import FileStorage
|
|
|
|
|
|
from app.defines import StatesCode
|
|
|
+from app.database import engine
|
|
|
+from app.modle.organization import Company, Department
|
|
|
+from app.utils.to_dict import to_dict
|
|
|
|
|
|
ns = Namespace('organization', description='组织管理接口')
|
|
|
|
|
|
+company_list = reqparse.RequestParser(bundle_errors=True)
|
|
|
+company_list.add_argument(name='page_size', type=int, location='args', required=False, help='每页记录数量,默认:20')
|
|
|
+company_list.add_argument(name='page', type=int, location='args', required=False, help='第几页')
|
|
|
|
|
|
-@ns.route('/organization_list')
|
|
|
-class OrganizationListApi(Resource):
|
|
|
- # @ns.doc(id='get_organization_list', description='获取组织列表')
|
|
|
- @ns.doc(id='get_corporation_list', description='获取公司列表')
|
|
|
- @ns.expect()
|
|
|
+
|
|
|
+@ns.route('/company_list')
|
|
|
+class CompanyListApi(Resource):
|
|
|
+ @ns.doc(id='get_company_list', description='获取公司列表')
|
|
|
+ @ns.expect(company_list)
|
|
|
def get(self):
|
|
|
- """获取组织列表"""
|
|
|
- data = [
|
|
|
- {"name": "中讯邮电咨询设计院有限公司", "code": 4032, "corporate": "张三", "contacts": "张三",
|
|
|
- "mobile": "13912345678"},
|
|
|
- {"name": "北京电信设计院有限公司", "code": 9417, "corporate": "李四", "contacts": "李四",
|
|
|
- "mobile": "13912345670"}
|
|
|
- ]
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message='成功', data=data)
|
|
|
-
|
|
|
-@ns.route('/organization')
|
|
|
-class OrganizationApi(Resource):
|
|
|
- @ns.doc(id='get_organization', description='搜索公司')
|
|
|
+ """获取公司列表"""
|
|
|
+
|
|
|
+ page_size = int(request.args.get('page_size', 20))
|
|
|
+ page = int(request.args.get('page', 1))
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Company).offset(page_size * (page - 1)).limit(page_size)
|
|
|
+ results = session.execute(stmt).scalars().all()
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
+
|
|
|
+
|
|
|
+company_details = reqparse.RequestParser(bundle_errors=True)
|
|
|
+company_details.add_argument(name='id', type=int, location='form', required=False, help='id')
|
|
|
+company_details.add_argument(name='company_name', type=str, location='form', required=True, help='公司名')
|
|
|
+company_details.add_argument(name='logo', type=FileStorage, location='files', required=False, help='商标')
|
|
|
+company_details.add_argument(name='abbreviation', type=str, location='form', required=False, help='公司简称')
|
|
|
+company_details.add_argument(name='code', type=str, location='form', required=False, help='统一社会信用代码')
|
|
|
+company_details.add_argument(name='registered_address', type=str, location='form', required=False, help='注册地址')
|
|
|
+company_details.add_argument(name='business_address', type=str, location='form', required=False, help='经营地址')
|
|
|
+company_details.add_argument(name='legal_person_name', type=str, location='form', required=False, help='法人姓名')
|
|
|
+company_details.add_argument(name='company_code', type=str, location='form', required=False, help='公司编码')
|
|
|
+company_details.add_argument(name='staff_size', type=str, location='form', required=False, help='编制人数')
|
|
|
+company_details.add_argument(name='on_guard_size', type=str, location='form', required=False, help='在岗人数')
|
|
|
+
|
|
|
+delete_company = reqparse.RequestParser(bundle_errors=True)
|
|
|
+delete_company.add_argument(name='id', type=int, location='form', required=False, help='id')
|
|
|
+
|
|
|
+
|
|
|
+@ns.route('/company')
|
|
|
+class CompanyApi(Resource):
|
|
|
+ @ns.doc(id='get_company', description='搜索公司')
|
|
|
@ns.expect()
|
|
|
def get(self):
|
|
|
"""搜索公司"""
|
|
|
return {"code": StatesCode.SUCCESS, "message": "成功", "data": '查询'}
|
|
|
|
|
|
- @ns.doc(id='add_organization', description='添加公司')
|
|
|
- @ns.expect()
|
|
|
+ @ns.doc(id='add_company', description='添加公司')
|
|
|
+ @ns.expect(company_details)
|
|
|
def post(self):
|
|
|
"""添加公司"""
|
|
|
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": '添加公司'}
|
|
|
-
|
|
|
- @ns.doc(id='delete_organization', description='添加公司')
|
|
|
- @ns.expect()
|
|
|
+ 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')
|
|
|
+ business_address = request.form.get('business_address')
|
|
|
+ legal_person_name = request.form.get('legal_person_name')
|
|
|
+ company_code = request.form.get('company_code')
|
|
|
+ staff_size = request.form.get('staff_size')
|
|
|
+ on_guard_size = request.form.get('on_guard_size')
|
|
|
+
|
|
|
+ if company_name is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司名不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ # 判断公司是否存在
|
|
|
+ stmt = select(Company).where(Company.company_name == company_name)
|
|
|
+ result = session.execute(stmt).scalars().first()
|
|
|
+ if result:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司已存在")
|
|
|
+
|
|
|
+ # 添加公司
|
|
|
+ session.execute(
|
|
|
+ insert(Company).values(
|
|
|
+ company_name=company_name,
|
|
|
+ logo=logo,
|
|
|
+ abbreviation=abbreviation,
|
|
|
+ code=code,
|
|
|
+ registered_address=registered_address,
|
|
|
+ business_address=business_address,
|
|
|
+ legal_person_name=legal_person_name,
|
|
|
+ company_code=company_code,
|
|
|
+ staff_size=staff_size,
|
|
|
+ on_guard_size=on_guard_size
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ session.commit()
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='添加成功')
|
|
|
+
|
|
|
+ @ns.doc(id='delete_company', description='删除公司')
|
|
|
+ @ns.expect(delete_company)
|
|
|
def delete(self):
|
|
|
"""删除公司"""
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": '删除公司'}
|
|
|
+ company_id = request.form.get('id')
|
|
|
|
|
|
+ if company_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
|
|
|
-@ns.route('/organization_details')
|
|
|
-class OrganizationDetailsApi(Resource):
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Company).where(Company.id == company_id)
|
|
|
|
|
|
- @ns.doc(id='get_organization_details', description='获取公司详情')
|
|
|
- @ns.expect()
|
|
|
+ session.delete(session.execute(stmt).scalars().first())
|
|
|
+ session.commit()
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message="删除成功")
|
|
|
+
|
|
|
+
|
|
|
+get_company_details = reqparse.RequestParser(bundle_errors=True)
|
|
|
+get_company_details.add_argument(name='id', type=int, location='args', required=False, help='id')
|
|
|
+
|
|
|
+
|
|
|
+@ns.route('/company_details')
|
|
|
+class CompanyDetailsApi(Resource):
|
|
|
+
|
|
|
+ @ns.doc(id='get_company_details', description='获取公司详情')
|
|
|
+ @ns.expect(get_company_details)
|
|
|
def get(self):
|
|
|
- """获取organization组织详情"""
|
|
|
+ """获取公司详情"""
|
|
|
|
|
|
- data = {
|
|
|
- "full_name": "北京电信规划设计院有限公司",
|
|
|
- "for_short": "北京规划院",
|
|
|
- "superior_company": "中讯邮电咨询设计有限公司",
|
|
|
- "credit_code": 9111111111,
|
|
|
- "registered_address": "北京海淀区首体南路9号",
|
|
|
- "business_address": "北京海淀区首体南路9号",
|
|
|
- "corporate": "张三",
|
|
|
- "company_code": 11111,
|
|
|
- "authorized_strength": 222,
|
|
|
- "staff_num": 100,
|
|
|
- }
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": data}
|
|
|
+ company_id = request.args.get('id')
|
|
|
|
|
|
- @ns.doc(id='update_organization_details', description='修改公司详情')
|
|
|
- @ns.expect()
|
|
|
- def put(self):
|
|
|
- """更新organization组织详情"""
|
|
|
+ if company_id is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司id不能为空")
|
|
|
|
|
|
- return {"code": StatesCode.SUCCESS, "message": "成功", "data": '修改公司详情'}
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = select(Company).where(Company.id == company_id)
|
|
|
+ results = session.execute(stmt).scalars().all()
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
+
|
|
|
+ @ns.doc(id='update_company_details', description='修改公司详情')
|
|
|
+ @ns.expect(company_details)
|
|
|
+ def put(self):
|
|
|
+ """更新公司详情"""
|
|
|
+ id = request.form.get('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')
|
|
|
+ business_address = request.form.get('business_address')
|
|
|
+ legal_person_name = request.form.get('legal_person_name')
|
|
|
+ company_code = request.form.get('company_code')
|
|
|
+ staff_size = request.form.get('staff_size')
|
|
|
+ on_guard_size = request.form.get('on_guard_size')
|
|
|
+
|
|
|
+ if company_name is None:
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message="公司名不能为空")
|
|
|
+
|
|
|
+ with Session(engine) as session:
|
|
|
+ stmt = update(Company).where(Company.id == id).values(
|
|
|
+ company_name=company_name,
|
|
|
+ logo=logo,
|
|
|
+ abbreviation=abbreviation,
|
|
|
+ code=code,
|
|
|
+ registered_address=registered_address,
|
|
|
+ business_address=business_address,
|
|
|
+ legal_person_name=legal_person_name,
|
|
|
+ company_code=company_code,
|
|
|
+ staff_size=staff_size,
|
|
|
+ on_guard_size=on_guard_size
|
|
|
+ )
|
|
|
+ session.execute(stmt)
|
|
|
+ session.commit()
|
|
|
+
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='修改成功')
|
|
|
|
|
|
|
|
|
@ns.route('/department')
|
|
@@ -83,7 +197,7 @@ class DepartmentApi(Resource):
|
|
|
|
|
|
return {"code": StatesCode.SUCCESS, "message": "成功", "data": '添加部门'}
|
|
|
|
|
|
- @ns.doc(id='delete_organization_details', description='删除部门')
|
|
|
+ @ns.doc(id='delete_company_details', description='删除部门')
|
|
|
@ns.expect()
|
|
|
def delete(self):
|
|
|
"""删除部门"""
|
|
@@ -114,7 +228,7 @@ class DepartmentDetailsApi(Resource):
|
|
|
}
|
|
|
return {"code": StatesCode.SUCCESS, "message": "成功", "data": data}
|
|
|
|
|
|
- @ns.doc(id='update_organization_details', description='修改部门详情')
|
|
|
+ @ns.doc(id='update_company_details', description='修改部门详情')
|
|
|
@ns.expect()
|
|
|
def put(self):
|
|
|
"""更新department部门详情"""
|
|
@@ -122,8 +236,8 @@ class DepartmentDetailsApi(Resource):
|
|
|
return {"code": StatesCode.SUCCESS, "message": "成功", "data": '修改部门详情'}
|
|
|
|
|
|
|
|
|
-@ns.route('/batch_delete_organization')
|
|
|
-class BatchDeleteOrganizationApi(Resource):
|
|
|
+@ns.route('/batch_delete_company')
|
|
|
+class BatchDeletecompanyApi(Resource):
|
|
|
@ns.doc(id='batch_delete_users', description='批量删除公司')
|
|
|
@ns.expect()
|
|
|
def delete(self):
|