46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
from django.shortcuts import render
|
|
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin
|
|
from rest_framework.decorators import action
|
|
from apps.qm.models import QuaStat, TestItem
|
|
from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer
|
|
from apps.qm.tasks import cal_quastat
|
|
from rest_framework.response import Response
|
|
from apps.utils.mixins import BulkCreateModelMixin, BulkUpdateModelMixin
|
|
import datetime
|
|
|
|
from apps.utils.viewsets import CustomGenericViewSet
|
|
|
|
# Create your views here.
|
|
class TestItemViewSet(ListModelMixin, CustomGenericViewSet):
|
|
"""
|
|
list:质检项目
|
|
|
|
质检项目
|
|
"""
|
|
perms_map = {'get': '*'}
|
|
queryset = TestItem.objects.all()
|
|
serializer_class = TestItemSerializer
|
|
filterset_fields = []
|
|
ordering = ['id']
|
|
|
|
class QuaStatViewSet(ListModelMixin, BulkUpdateModelMixin, CustomGenericViewSet):
|
|
"""
|
|
list:质量分析报告
|
|
|
|
质量分析报告
|
|
"""
|
|
perms_map = {'get': '*', 'put': 'quastat.update'}
|
|
queryset = QuaStat.objects.all()
|
|
serializer_class = QuaStatSerializer
|
|
update_serializer_class = QuaStatUpdateSerializer
|
|
filterset_fields = ['type', 'year_s', 'month_s', 'day_s', 'material', 'testitem', 'belong_dept', 'sflog', 'sflog__mgroup']
|
|
select_related_fields = ['belong_dept', 'material', 'testitem']
|
|
|
|
|
|
def perform_update(self, serializer):
|
|
ins = serializer.save()
|
|
if ins.sflog: # 更新值班记录的质检时间
|
|
ins.sflog.last_test_time = datetime.datetime.now()
|
|
ins.sflog.save()
|
|
# 计算其他方面的统计
|
|
cal_quastat.delay(ins.id) |