XH_Digital_Management/application/org_mgnt/views.py

357 lines
20 KiB
Python
Raw Normal View History

2024-06-04 16:50:30 +08:00
from django.http import JsonResponse
from django.shortcuts import render
2024-05-31 20:17:40 +08:00
from django.urls import reverse
2024-06-04 16:50:30 +08:00
from rest_framework.decorators import api_view
2024-05-30 13:39:36 +08:00
2024-05-31 20:17:40 +08:00
from application.org_mgnt.models import PrimaryDepartment, SecondaryDepartment, CompanyEntity
from common.utils.page_helper import paginate_query_and_assign_numbers
def pd_list_view(request):
# 声明查询集
query_set = PrimaryDepartment.objects.filter().order_by('-primary_department_id')
# 获取查询参数
2024-05-30 13:39:36 +08:00
department_name = request.GET.get('department_name', '')
2024-05-31 20:17:40 +08:00
# 根据提供的参数进行筛选
2024-05-30 13:39:36 +08:00
if department_name:
2024-05-31 20:17:40 +08:00
query_set = query_set.filter(primary_department=department_name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&department_name={}'.format(department_name)
# 准备上下文
context = {
'items': items,
2024-06-04 16:50:30 +08:00
'list_key': 'primary_department_id',
2024-05-31 20:17:40 +08:00
'filters': [
{
'type': 'text',
'id': 'name',
'name': 'name',
'label': '一级部门名称',
'placeholder': '请输入一级部门名称',
},
], # 筛选框配置
"form_action_url": 'pd_list',
'breadcrumb_list': [
{'title': '首页', 'name': 'index'},
{'title': '组织管理', 'name': 'index'},
{'title': '一级部门表', 'name': 'gbo_list'},
], # 面包屑
'query_params': query_params, # 查询参数字符串
'table_columns': [
{'header': '部门ID', 'field': 'primary_department_id'},
{'header': '部门名称', 'field': 'department_name'},
{'header': '描述', 'field': 'description'},
{'header': '操作', 'field': 'actions'},
],
'show_modify_button': False, # 显示修改记录按钮
'show_add_button': False, # 显示添加按钮
'show_download_button': False, # 显示导出按钮
'show_upload_button': False, # 显示上传Excel按钮
}
return render(request, 'org_mgnt/pd_list.html', context)
def sd_list_view(request):
# 声明查询集
query_set = SecondaryDepartment.objects.filter().order_by('-secondary_department_id')
# 获取查询参数
secondary_department_name = request.GET.get('secondary_department_name', '')
# 根据提供的参数进行筛选
if secondary_department_name:
query_set = query_set.filter(primary_department=secondary_department_name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&secondary_department_name={}'.format(secondary_department_name)
# 准备上下文
context = {
'items': items,
2024-06-04 16:50:30 +08:00
'list_key': "secondary_department_id",
'list_key': 'secondary_department_id',
2024-05-31 20:17:40 +08:00
'filters': [
{
'type': 'text',
'id': 'name',
'name': 'name',
'label': '二级部门名称',
'placeholder': '请输入二级部门名称',
},
], # 筛选框配置
"form_action_url": 'sd_list',
'breadcrumb_list': [
{'title': '首页', 'name': 'index'},
{'title': '组织管理', 'name': 'index'},
{'title': '二级部门表', 'name': 'gbo_list'},
], # 面包屑
'query_params': query_params, # 查询参数字符串
'table_columns': [
{'header': '一级部门名称', 'field': 'primary_department'},
{'header': '二级部门ID', 'field': 'secondary_department_id'},
{'header': '二级部门名称', 'field': 'secondary_department_name'},
{'header': '描述', 'field': 'description'},
{'header': '操作', 'field': 'actions'},
],
'show_modify_button': False, # 显示修改记录按钮
'show_add_button': False, # 显示添加按钮
'show_download_button': False, # 显示导出按钮
'show_upload_button': False, # 显示上传Excel按钮
}
return render(request, 'org_mgnt/sd_list.html', context)
def eir_list_view(request):
# 声明查询集
query_set = CompanyEntity.objects.filter().order_by('-entity_id')
# 获取查询参数
company_name = request.GET.get('company_name', '')
2024-06-04 16:50:30 +08:00
business_status = request.GET.get('business_status', '')
taxpayer_identification_number = request.GET.get('taxpayer_identification_number', '')
2024-05-31 20:17:40 +08:00
# 根据提供的参数进行筛选
if request.GET.get('company_name', ''):
2024-06-04 16:50:30 +08:00
query_set = query_set.filter(company_name=request.GET.get('company_name', ''))
if request.GET.get('business_status', ''):
query_set = query_set.filter(business_status=request.GET.get('business_status', ''))
if request.GET.get('taxpayer_identification_number', ''):
query_set = query_set.filter(
taxpayer_identification_number=request.GET.get('taxpayer_identification_number', ''))
2024-05-31 20:17:40 +08:00
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
2024-06-04 16:50:30 +08:00
query_params = '&company_name={}'.format(company_name) + '&business_status={}'.format(
business_status) + '&taxpayer_identification_number={}'.format(taxpayer_identification_number)
2024-05-31 20:17:40 +08:00
2024-06-04 16:50:30 +08:00
fields = {"company_type": {"id": "operation_company_type", "type": "text", "label": "公司类型"},
"company_name": {"id": "operation_company_name", "type": "text", "label": "公司名称"},
"registration_address": {"id": "operation_registration_address", "type": "text",
"label": "注册地址"},
"registered_capital": {"id": "operation_registered_capital", "type": "text",
"label": "注册资本金"},
"capital_paid_time": {"id": "operation_capital_paid_time", "type": "date", "label": "实缴时间"},
"capital_paid": {"id": "operation_capital_paid", "type": "text", "label": "实缴资金"},
"establishment_time": {"id": "operation_establishment_time", "type": "date",
"label": "设立时间"},
"operation_period": {"id": "operation_operation_period", "type": "text", "label": "营业期限"},
"taxpayer_identification_number": {"id": "operation_taxpayer_identification_number",
"type": "text", "label": "纳税人识别号"},
"business_status": {"id": "operation_business_status", "type": "select", "label": "公司经营状态",
"options": ["存续", "注销"]},
"scope_of_business": {"id": "operation_scope_of_business", "type": "textarea",
"label": "营业范围"},
"purpose_of_company": {"id": "operation_purpose_of_company", "type": "text",
"label": "公司用途"},
"shareholders_and_stakes": {"id": "operation_shareholders_and_stakes", "type": "textarea",
"label": "股东姓名及持股比例"},
"chairman": {"id": "operation_chairman", "type": "text", "label": "董事长"},
"directors": {"id": "operation_directors", "type": "text", "label": "董事"},
"supervisor_chairman": {"id": "operation_supervisor_chairman", "type": "text",
"label": "监事长"},
"employee_supervisor": {"id": "operation_employee_supervisor", "type": "text",
"label": "职工监事"},
"supervisors": {"id": "operation_supervisors", "type": "text", "label": "监事"},
"general_manager": {"id": "operation_general_manager", "type": "text", "label": "总经理"},
"financial_officer": {"id": "operation_financial_officer", "type": "text",
"label": "财务负责人"},
"historical_evolution": {"id": "operation_historical_evolution", "type": "textarea",
"label": "历史沿革"},
"related_bank_accounts": {"id": "operation_related_bank_accounts", "type": "select",
"label": "相关银行账户", "options": []}}
# 构建上下文
2024-05-31 20:17:40 +08:00
context = {
2024-06-04 16:50:30 +08:00
"items": items,
"list_key": "entity_id",
"filters": [{"type": "text", "id": "company_name", "name": "company_name", "label": "公司名称",
"placeholder": "请输入公司名称"},
{"type": "select", "id": "business_status", "name": "business_status", "label": "公司经营状态",
"options": [{"value": "存续", "display": "存续"}, {"value": "注销", "display": "注销"}]},
{"type": "text", "id": "taxpayer_identification_number", "name": "taxpayer_identification_number",
"label": "纳税人识别号", "placeholder": "请输入纳税人识别号"}],
"form_action_url": "eir_list",
"breadcrumb_list": [{"title": "首页", "name": "index"}, {"title": "组织管理", "name": "index"},
2024-05-31 20:17:40 +08:00
{"title": "公司主体信息登记表", "name": "eir_list"}],
2024-06-04 16:50:30 +08:00
"query_params": query_params,
"table_columns": [
{"header": "公司类型", "field": "company_type"},
{"header": "公司名称", "field": "company_name"},
{"header": "注册地址", "field": "registration_address"},
{"header": "注册资本金", "field": "registered_capital"},
{"header": "实缴时间", "field": "capital_paid_time"},
{"header": "实缴资金", "field": "capital_paid"},
{"header": "设立时间", "field": "establishment_time"},
{"header": "营业期限", "field": "operation_period"},
{"header": "纳税人识别号", "field": "taxpayer_identification_number"},
{"header": "公司经营状态", "field": "business_status"},
{"header": "营业范围", "field": "scope_of_business"},
{"header": "公司用途", "field": "purpose_of_company"},
{"header": "股东姓名及持股比例", "field": "shareholders_and_stakes"},
{"header": "董事长", "field": "chairman"}, {"header": "董事", "field": "directors"},
{"header": "监事长", "field": "supervisor_chairman"},
{"header": "职工监事", "field": "employee_supervisor"},
{"header": "监事", "field": "supervisors"}, {"header": "总经理", "field": "general_manager"},
{"header": "财务负责人", "field": "financial_officer"},
{"header": "历史沿革", "field": "historical_evolution"},
{"header": "相关银行账户", "field": "related_bank_accounts"},
{"header": "操作", "field": "actions"}
],
"show_modify_button": True,
"show_add_button": True,
"show_download_button": True,
"show_upload_button": True,
"modify_url": reverse("eir_list_modify"),
"add_url": reverse("eir_list_add"),
"delete_url": reverse("eir_list_delete"),
"form_fields_config": {"fields": fields},
"excel_upload_config": {
"template_url": reverse("download_excel_template",
kwargs={"template_name": "组织管理-公司主体信息登记表-Excel上传模板.xlsx",
"fields": fields}),
"parse_url": reverse("common_excel_parse"),
"save_url": reverse("save_excel_table_data"),
"model_config": {"app_label": "org_mgnt", "model_name": "CompanyEntity"},
"fields_map": {"company_type": "公司类型", "company_name": "公司名称",
"registration_address": "注册地址", "registered_capital": "注册资本金",
"capital_paid_time": "实缴时间", "capital_paid": "实缴资金",
"establishment_time": "设立时间", "operation_period": "营业期限",
"taxpayer_identification_number": "纳税人识别号",
"business_status": "公司经营状态", "scope_of_business": "营业范围",
"purpose_of_company": "公司用途",
"shareholders_and_stakes": "股东姓名及持股比例", "chairman": "董事长",
"directors": "董事", "supervisor_chairman": "监事长",
"employee_supervisor": "职工监事", "supervisors": "监事",
"general_manager": "总经理", "financial_officer": "财务负责人",
"historical_evolution": "历史沿革",
"related_bank_accounts": "相关银行账户"},
"fields_preview_config": {"company_type": {"type": "text", "width": "180px"},
"company_name": {"type": "text", "width": "180px"},
"registration_address": {"type": "text", "width": "180px"},
"registered_capital": {"type": "text", "width": "180px"},
"capital_paid_time": {"type": "date", "width": "180px"},
"capital_paid": {"type": "text", "width": "180px"},
"establishment_time": {"type": "date", "width": "180px"},
"operation_period": {"type": "text", "width": "180px"},
"taxpayer_identification_number": {"type": "text",
"width": "180px"},
"business_status": {"type": "select", "width": "180px",
"options": ["存续", "注销"]},
"scope_of_business": {"type": "textarea", "width": "180px"},
"purpose_of_company": {"type": "text", "width": "180px"},
"shareholders_and_stakes": {"type": "textarea",
"width": "180px"},
"chairman": {"type": "text", "width": "180px"},
"directors": {"type": "text", "width": "180px"},
"supervisor_chairman": {"type": "text", "width": "180px"},
"employee_supervisor": {"type": "text", "width": "180px"},
"supervisors": {"type": "text", "width": "180px"},
"general_manager": {"type": "text", "width": "180px"},
"financial_officer": {"type": "text", "width": "180px"},
"historical_evolution": {"type": "textarea",
"width": "180px"},
"related_bank_accounts": {"type": "select", "width": "180px",
"options": []}}
},
2024-05-30 13:39:36 +08:00
}
2024-05-31 20:17:40 +08:00
return render(request, 'org_mgnt/eir_list.html', context)
2024-06-04 16:50:30 +08:00
def eir_list_add(request):
if request.method == 'POST':
data = {
'company_type': request.POST.get('company_type'), 'company_name': request.POST.get('company_name'),
'registration_address': request.POST.get('registration_address'),
'registered_capital': request.POST.get('registered_capital'),
'capital_paid_time': request.POST.get('capital_paid_time'),
'capital_paid': request.POST.get('capital_paid'),
'establishment_time': request.POST.get('establishment_time'),
'operation_period': request.POST.get('operation_period'),
'taxpayer_identification_number': request.POST.get('taxpayer_identification_number'),
'business_status': request.POST.get('business_status'),
'scope_of_business': request.POST.get('scope_of_business'),
'purpose_of_company': request.POST.get('purpose_of_company'),
'shareholders_and_stakes': request.POST.get('shareholders_and_stakes'),
'chairman': request.POST.get('chairman'), 'directors': request.POST.get('directors'),
'supervisor_chairman': request.POST.get('supervisor_chairman'),
'employee_supervisor': request.POST.get('employee_supervisor'),
'supervisors': request.POST.get('supervisors'), 'general_manager': request.POST.get('general_manager'),
'financial_officer': request.POST.get('financial_officer'),
'historical_evolution': request.POST.get('historical_evolution'),
'related_bank_accounts': request.POST.get('related_bank_accounts')
}
CompanyEntity.objects.create(**data)
return JsonResponse({"message": "添加成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def eir_list_modify(request):
if request.method == 'POST':
entity_id = request.POST.get('entity_id')
data = {
'company_type': request.POST.get('company_type'), 'company_name': request.POST.get('company_name'),
'registration_address': request.POST.get('registration_address'),
'registered_capital': request.POST.get('registered_capital'),
'capital_paid_time': request.POST.get('capital_paid_time'),
'capital_paid': request.POST.get('capital_paid'),
'establishment_time': request.POST.get('establishment_time'),
'operation_period': request.POST.get('operation_period'),
'taxpayer_identification_number': request.POST.get('taxpayer_identification_number'),
'business_status': request.POST.get('business_status'),
'scope_of_business': request.POST.get('scope_of_business'),
'purpose_of_company': request.POST.get('purpose_of_company'),
'shareholders_and_stakes': request.POST.get('shareholders_and_stakes'),
'chairman': request.POST.get('chairman'), 'directors': request.POST.get('directors'),
'supervisor_chairman': request.POST.get('supervisor_chairman'),
'employee_supervisor': request.POST.get('employee_supervisor'),
'supervisors': request.POST.get('supervisors'), 'general_manager': request.POST.get('general_manager'),
'financial_officer': request.POST.get('financial_officer'),
'historical_evolution': request.POST.get('historical_evolution'),
'related_bank_accounts': request.POST.get('related_bank_accounts')
}
target = CompanyEntity.objects.get(entity_id=entity_id)
changes = []
for key, value in data.items():
if getattr(target, key) != value:
changes.append((key, getattr(target, key), value))
CompanyEntity.objects.filter(entity_id=entity_id).update(**data)
return JsonResponse({"message": "修改成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def eir_list_delete(request):
if request.method == 'GET':
entity_id = request.GET.get('entity_id')
CompanyEntity.objects.filter(entity_id=entity_id).delete()
return JsonResponse({"message": "删除成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)