feat: 添加企业资格审核字段和企业信息查询接口

This commit is contained in:
caoqianming 2026-03-09 14:35:22 +08:00
parent f142718cd5
commit 54571ee801
5 changed files with 59 additions and 5 deletions

View File

@ -0,0 +1,25 @@
# Generated by Django 4.2.27 on 2026-03-09 06:21
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('system', '0007_alter_dept_create_by_alter_dept_update_by_and_more'),
('carbon', '0003_enterprise'),
]
operations = [
migrations.AddField(
model_name='enterprise',
name='is_qualified',
field=models.BooleanField(default=False, verbose_name='资格审核通过'),
),
migrations.AlterField(
model_name='enterprise',
name='belong_dept',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterprise_belong_dept', to='system.dept', verbose_name='所属部门'),
),
]

View File

@ -68,6 +68,10 @@ class Enterprise(CommonBDModel):
industry = models.CharField("所属行业", max_length=100, blank=True, null=True) industry = models.CharField("所属行业", max_length=100, blank=True, null=True)
business_status = models.CharField("经营状态", max_length=50, blank=True, null=True) business_status = models.CharField("经营状态", max_length=50, blank=True, null=True)
registration_authority = models.CharField("登记机关", max_length=200, blank=True, null=True) registration_authority = models.CharField("登记机关", max_length=200, blank=True, null=True)
is_qualified = models.BooleanField("资格审核通过", default=False)
belong_dept = models.OneToOneField(
'system.dept', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='所属部门', related_name='enterprise_belong_dept')
class Meta: class Meta:
verbose_name = "企业信息" verbose_name = "企业信息"

View File

@ -1,5 +1,5 @@
from apps.utils.serializers import CustomModelSerializer from apps.utils.serializers import CustomModelSerializer
from .models import Work from .models import Work, Enterprise
from rest_framework import serializers from rest_framework import serializers
from apps.system.serializers import FileSerializer from apps.system.serializers import FileSerializer
@ -38,3 +38,9 @@ class WorkDhCalSerializer(CustomModelSerializer):
class Meta: class Meta:
model = Work model = Work
fields = ["dh_file1", "dh_file2", "dh_file3", "dh_file4", "dh_file5", "dh_file6"] fields = ["dh_file1", "dh_file2", "dh_file3", "dh_file4", "dh_file5", "dh_file6"]
class EnterpriseSerializer(CustomModelSerializer):
class Meta:
model = Enterprise
fields = "__all__"

View File

@ -1,4 +1,4 @@
from .views import WorkViewSet from .views import WorkViewSet, EnterpriseViewSet
from django.urls import path, include from django.urls import path, include
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
@ -7,6 +7,7 @@ HTML_BASE_URL = 'carbon/'
router = DefaultRouter() router = DefaultRouter()
router.register('work', WorkViewSet, basename='carbon_work') router.register('work', WorkViewSet, basename='carbon_work')
router.register('enterprise', EnterpriseViewSet, basename='carbon_enterprise')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),
] ]

View File

@ -1,6 +1,6 @@
from django.shortcuts import render from django.shortcuts import render
from .models import Work, Fingerprint from .models import Work, Fingerprint, Enterprise
from .serializers import WorkSerializer, WorkCreateSerializer, WorkDqCalSerializer, WorkDhCalSerializer from .serializers import WorkSerializer, WorkCreateSerializer, WorkDqCalSerializer, WorkDhCalSerializer, EnterpriseSerializer
from apps.utils.viewsets import CustomModelViewSet from apps.utils.viewsets import CustomModelViewSet
from rest_framework.decorators import action from rest_framework.decorators import action
import os import os
@ -326,5 +326,23 @@ class WorkViewSet(CustomModelViewSet):
return Response({"total_score": score}) return Response({"total_score": score})
class EnterpriseViewSet(CustomModelViewSet):
queryset = Enterprise.objects.all()
serializer_class = EnterpriseSerializer
@action(methods=['get'], detail=False, perms_map={'get': '*'})
def my(self, request, *args, **kwargs):
user = self.request.user
if not user.belong_dept:
raise ParseError("用户未关联部门")
try:
enterprise = Enterprise.objects.get(belong_dept=user.belong_dept)
serializer = self.get_serializer(enterprise)
return Response(serializer.data)
except Enterprise.DoesNotExist:
raise ParseError("未找到关联的企业信息")