diff --git a/client/src/api/report.js b/client/src/api/report.js index cee1ce8..080ca55 100644 --- a/client/src/api/report.js +++ b/client/src/api/report.js @@ -16,6 +16,14 @@ export function getpdf(id) { }) } +export function pdfAll(query) { + return request({ + url: '/info/pdf/', + method: 'get', + params: query + }) +} + export function getyr(id) { return request({ url: `/info/yr/${id}/`, diff --git a/server/apps/information/migrations/0059_auto_20240708_1306.py b/server/apps/information/migrations/0059_auto_20240708_1306.py new file mode 100644 index 0000000..1d0b3b7 --- /dev/null +++ b/server/apps/information/migrations/0059_auto_20240708_1306.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.12 on 2024-07-08 05:06 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('information', '0058_auto_20240708_1230'), + ] + + operations = [ + migrations.AlterField( + model_name='abilityreview', + name='name', + field=models.CharField(max_length=20, verbose_name='公司名称'), + ), + migrations.AlterField( + model_name='qualification', + name='change_date', + field=models.DateField(blank=True, default=datetime.datetime(2024, 7, 8, 5, 6, 20, 625496, tzinfo=utc), null=True, verbose_name='变更日期'), + ), + ] diff --git a/server/apps/information/views.py b/server/apps/information/views.py index f85abfb..f8b3944 100644 --- a/server/apps/information/views.py +++ b/server/apps/information/views.py @@ -21,6 +21,7 @@ from apps.system.models import Role import os import traceback import shutil +import threading EXCEL_PATH = os.path.join(settings.BASE_DIR, "media/default/检验检测服务业统计数据上报任务.xlsx") @@ -182,7 +183,9 @@ class AbilityReviewViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, Mod class QualityCommendationViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = QualityCommendation.objects.all() serializer_class = QualityCommendationSerializer - + perms_map = {'get': '*', 'post': 'qcom_create', + 'put': 'qcom_update', 'patch': 'qcom_update', 'delete': 'qcom_delete'} + def build_data(self, sheet, start): data_list = [] for row in sheet.iter_rows(min_row=start, values_only=True): # 假设第一行是表头,从第二行开始读取数据 @@ -209,7 +212,7 @@ class QualityCommendationViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixi data_list.append(serializer_data) return data_list - @action(detail=False, methods=['post']) + @action(detail=False, methods=['post'], perms_map={'post': 'qcom_create'}) @transaction.atomic def imp(self, request, *args, **kwargs): """ @@ -249,6 +252,8 @@ class QualityCommendationViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixi class QualityActivitiesViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = QualityActivities.objects.all() serializer_class = QualityActivitiesSerializer + perms_map = {'get': '*', 'post': 'qactivate_create', + 'put': 'qactivate_update', 'patch': 'qactivate_update', 'delete': 'qactivate_delete'} #根据日期过滤数据 @action(detail=False, methods=['post']) @@ -302,7 +307,7 @@ class QualityActivitiesViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, } data_list.append(serializer_data) return data_list - @action(detail=False, methods=['post']) + @action(detail=False, methods=['post'], perms_map={'post':'qactivate_create'}) @transaction.atomic def imp(self, request, *args, **kwargs): """ @@ -314,7 +319,9 @@ class QualityActivitiesViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, class ContactViewSet(ImpMixin, CreateUpdateCustomMixin, ModelViewSet): queryset = Contact.objects.all() serializer_class = ContactSerializer - + perms_map = {'get': '*', 'post': 'contact_create', + 'put': 'contact_update', 'patch': 'contact_update', 'delete': 'contact_delete'} + def get_queryset(self): qs = super().get_queryset() # if self.request.method == 'GET': @@ -345,7 +352,7 @@ class ContactViewSet(ImpMixin, CreateUpdateCustomMixin, ModelViewSet): } data_list.append(serializer_data) return data_list - @action(detail=False, methods=['post']) + @action(detail=False, methods=['post'], perms_map={'post':'contact_create'}) @transaction.atomic def imp(self, request, *args, **kwargs): """ @@ -354,14 +361,6 @@ class ContactViewSet(ImpMixin, CreateUpdateCustomMixin, ModelViewSet): return self.gen_imp_view(request, 2, ContactSerializer) -def dont_wait(func): - def wrapper(*args, **kwargs): - func(*args, **kwargs) - return Response({"message": "操作已在后台开始,结果将不会立即返回。"}) - return wrapper - -import threading - class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = Parsepdf.objects.all().order_by('id') serializer_class = ParsepdfSerializer @@ -369,7 +368,7 @@ class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): #解析pdf到excel - @action(detail=False, methods=['post']) + @action(detail=False, methods=['post'], perms_map={'post':'parsepdf_create'}) @transaction.atomic def parse_pdf(self, request, *args, **kwargs): """ @@ -409,7 +408,9 @@ class ParsePdfViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): class ExternalAuditorsViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = ExternalAuditors.objects.all() serializer_class = ExternalAuditorsSerializer - + perms_map = {'get': '*', 'post': 'ea_create', + 'put': 'ea_update', 'delete': 'ea_delete'} + #根据日期过滤数据 @action(detail=False, methods=['post']) @transaction.atomic @@ -454,7 +455,7 @@ class ExternalAuditorsViewSet(ImpMixin, RbacFilterSet, CreateUpdateCustomMixin, } data_list.append(serializer_data) return data_list - @action(detail=False, methods=['post']) + @action(detail=False, methods=['post'], perms_map={'post': 'ea_create'}) @transaction.atomic def imp(self, request, *args, **kwargs): """ @@ -474,6 +475,8 @@ class AuditLogViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = AuditLog.objects.select_related('instance').all() serializer_class = AuditLogSerializer filterset_fields = ['instance_id'] + perms_map = {'get': '*', 'post': 'aud_create', + 'put': 'aud_update', 'delete': 'aud_delete'} class QualiChangeViewSet(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): @@ -536,4 +539,5 @@ class sendMsgInfo(APIView): class yearReportViewset(RbacFilterSet, CreateUpdateCustomMixin, ModelViewSet): queryset = YearReport.objects.all() serializer_class = YearReportSerializer - perms_map = {'get': '*', 'post': 'yr_create'} \ No newline at end of file + perms_map = {'get': '*', 'post': 'yr_create'} + \ No newline at end of file