diff --git a/client/src/api/certappunit.js b/client/src/api/certappunit.js
index 75bbe37..050e3e5 100644
--- a/client/src/api/certappunit.js
+++ b/client/src/api/certappunit.js
@@ -51,16 +51,15 @@ export function createcompleteCertappunit(id,data) {
data
})
}
-export function testlistCertappunit(query) {
+export function getTasklist(query) {
return request({
- url: `/project/certappunit/testlist/`,
+ url: '/project/tasklist/',
method: 'get',
params: query
})
}
-
// export function createAccess(data) {
// return request({
// url: '/accessment/certass/',
diff --git a/client/src/views/testorg/feedbacks.vue b/client/src/views/testorg/feedbacks.vue
index e65c6b0..824b7f5 100644
--- a/client/src/views/testorg/feedbacks.vue
+++ b/client/src/views/testorg/feedbacks.vue
@@ -83,20 +83,7 @@
-
-
-
-
-
-
-
+
{
+ getTasklist(this.listQuery).then((response) => {
if (response.data) {
- this.tableData = response.data;
+ this.tableData = response.data.results;
}
this.listLoading = false;
diff --git a/server/apps/project/serializers.py b/server/apps/project/serializers.py
index 50a8b6a..a582c56 100644
--- a/server/apps/project/serializers.py
+++ b/server/apps/project/serializers.py
@@ -89,7 +89,28 @@ class CertappunitSerializer(serializers.ModelSerializer):
certificate = certificates[0]
return {'id':certificate.id,'number':certificate.number}
return None
+class CertappunitSerializerx(serializers.ModelSerializer):
+ certunit_ = CertunitSimpleSerializer(source = 'certunit', read_only=True)
+ decision_ = DictSimpleSerializer(source = 'decision', read_only=True)
+ testorg_ = TestOrgSerializer(source = 'testorg', read_only=True)
+ certificate_ = serializers.SerializerMethodField()
+ class Meta:
+ model = Certappunit
+ fields = '__all__'
+
+ @staticmethod
+ def setup_eager_loading(queryset):
+ """ Perform necessary eager loading of data. """
+ queryset = queryset.select_related('certunit','testorg','decision')
+ return queryset
+
+ def get_certificate_(self, obj):
+ certificates = Certificate.objects.filter(certunit = obj.certunit).order_by('-create_time')
+ if certificates.exists():
+ certificate = certificates[0]
+ return {'id':certificate.id,'number':certificate.number}
+ return None
class EvaluationDetailSerializer(serializers.ModelSerializer):
class Meta:
model = EvaluationDetail
diff --git a/server/apps/project/urls.py b/server/apps/project/urls.py
index bcee0a0..2492634 100644
--- a/server/apps/project/urls.py
+++ b/server/apps/project/urls.py
@@ -10,6 +10,8 @@ router.register('certappunit', CertappunitViewset, basename="certappunit")
router.register('evaluationdetail', EvaluationDetailViewset, basename="evaluationdetail")
router.register('project', ProjectViewSet, basename="project")
urlpatterns = [
-
- path('', include(router.urls))
+ path('tasklist/', TaskList.as_view()),
+ path('', include(router.urls)),
+
+
]
\ No newline at end of file
diff --git a/server/apps/project/views.py b/server/apps/project/views.py
index f2c39f7..63202e7 100644
--- a/server/apps/project/views.py
+++ b/server/apps/project/views.py
@@ -8,6 +8,7 @@ from rest_framework.response import Response
from rest_framework import status
from .models import *
from .serializers import *
+from apps.crm.models import Certunit
from apps.system.models import Dict
from apps.laboratory.models import TestOrg
from apps.system.permission_data import RbacFilterSet
@@ -101,6 +102,10 @@ class CertappViewset(PageOrNot, RbacFilterSet, ModelViewSet):
obj = serializer.save(create_by = self.request.user, belong_dept=self.request.user.dept, state='受理')
CertAppFlow.objects.create(certapp = obj, handler=self.request.user, data=serializer.data, operation='创建申请', state='申请')
headers = self.get_success_headers(serializer.data)
+ if postdata.field_code=='QMS':
+
+ instance,_ = Certunit.objects.get_or_create(enterprise = Enterprise.objects.get(pk=request.data['enterprise']))
+ Certappunit.objects.create(certunit=instance, certapp=obj)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
@action(methods=['put'], detail=True, perms_map={'put':'certapp_complete'},
@@ -261,16 +266,7 @@ class CertappunitViewset(PageOrNot, ModelViewSet):
obj.charge = request.data['charge']
obj.save()
return Response(status=status.HTTP_200_OK)
- @action(methods=['get'], detail=True, perms_map={'get':'certapp_testlist'}, url_name='certappunit_testlist')
- def testlist(self, request, pk=None):
- """
- 实验室任务列表
- """
-
- queryset = Certappunit.objects.filter(teststate__in=['待实验室检验', '到样检测中'])
- return queryset
-
-
+
@action(methods=['put'], detail=True, perms_map={'put':'certapp_teststate'}, url_name='certappunit_teststate')
def teststate(self, request, pk=None):
"""
@@ -318,16 +314,15 @@ class CertappunitViewset(PageOrNot, ModelViewSet):
class TaskList(ListAPIView):
"""
- 我的审核项目
+ 实验室任务
"""
- perms_map = {'get': 'myaudittask_view'}
- serializer_class = ProjectSerializerX
- filterset_class = ProjectFilter
- search_fields = ['auditee__name', 'plan__name']
- ordering=['-pk']
+ perms_map = {'get': 'certapptasklist_view'}
+ serializer_class = CertappunitSerializerx
+ filterset_fields = ['certapp','teststate','id','inspectionstate']
+ ordering= ['-id']
def get_queryset(self):
- queryset = Project.objects.filter(certapp_project__member_certapp__user=self.request.user).distinct()
+ queryset = Certappunit.objects.filter(teststate__in=['待实验室检验', '到样检测中'])
if hasattr(self.get_serializer_class(), 'setup_eager_loading'):
queryset = self.get_serializer_class().setup_eager_loading(queryset)
return queryset