feat: 增加不合格项接口
This commit is contained in:
parent
ec0df66542
commit
0ab6e0bc72
|
@ -3,7 +3,43 @@ from apps.system.models import CommonAModel, CommonADModel, User
|
|||
from apps.utils.models import CommonBDModel, BaseModel
|
||||
from apps.mtm.models import Material, Mgroup, Team
|
||||
from apps.wpm.models import SfLog
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
class NotOkOption(models.TextChoices):
|
||||
zw = "zw", _("炸纹")
|
||||
tw = "tw", _("条纹")
|
||||
qp = "qp", _("气泡")
|
||||
wq = "wq", _("弯曲")
|
||||
dl = "dl", _("断裂")
|
||||
pb = "pb", _("偏壁")
|
||||
dxt = "dxt", _("大小头")
|
||||
js = "js", _("结石")
|
||||
qx = "qx", _("气线")
|
||||
hs = "hs", _("划伤")
|
||||
cs = "cs", _("挫伤")
|
||||
bl = "bl", _("不亮")
|
||||
zz = "zz", _("杂质")
|
||||
d = "d", _("短")
|
||||
zdd = "zdd", _("锥度大")
|
||||
hw = "hw", _("横纹")
|
||||
yp = "yp", _("有皮")
|
||||
bp = "bp", _("爆皮")
|
||||
sc = "sc", _("色差")
|
||||
tydd = "tydd", _("椭圆度大")
|
||||
sw = "sw", _("水雾")
|
||||
zjx = "zjx", _("直径小")
|
||||
zjd = "zjd", _("直径大")
|
||||
bhpcd = "bhpcd", _("壁厚偏差大")
|
||||
xzp = "xzp", _("箱中破")
|
||||
thhs = "thhs", _("退火后碎")
|
||||
swen = "swen", _("水纹")
|
||||
bb = "bb", _("崩边")
|
||||
wm = "wm", _("雾面")
|
||||
md = "md", _("麻点")
|
||||
xh = "xh", _("线痕")
|
||||
b = "b", _("扁")
|
||||
|
||||
wz = "wz", _("未知")
|
||||
|
||||
class TestItem(CommonAModel):
|
||||
"""
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from apps.qm.views import QuaStatViewSet, TestItemViewSet, FtestWorkViewSet, FtestViewSet, PtestViewSet
|
||||
from apps.qm.views import QuaStatViewSet, TestItemViewSet, FtestWorkViewSet, FtestViewSet, PtestViewSet, NotOkOptionView
|
||||
|
||||
API_BASE_URL = 'api/qm/'
|
||||
HTML_BASE_URL = 'qm/'
|
||||
|
@ -14,4 +14,5 @@ router.register('ftestwork', FtestWorkViewSet, basename='ftestwork')
|
|||
router.register('ptest', PtestViewSet, basename='ptest')
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
path(API_BASE_URL + 'notok_option/', NotOkOptionView.as_view()),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from django.shortcuts import render
|
||||
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.views import APIView
|
||||
from apps.qm.models import QuaStat, TestItem, Ftest, Ptest, FtestWork
|
||||
from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer, FtestSerializer, PtestSerializer, \
|
||||
FtestWorkCreateUpdateSerializer, FtestWorkSerializer
|
||||
|
@ -13,8 +14,16 @@ from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
|||
from apps.wpm.models import SfLog
|
||||
from apps.qm.filters import QuaStatFilter, TestItemFilter
|
||||
from django.db import transaction
|
||||
from apps.qm.models import NotOkOption
|
||||
# Create your views here.
|
||||
|
||||
class NotOkOptionView(APIView):
|
||||
perms_map = {'get': '*'}
|
||||
|
||||
def get(self, request):
|
||||
res1 = [{'value': i.value, 'label': i.label} for i in NotOkOption]
|
||||
res2 = {i.value: i.label for i in NotOkOption}
|
||||
return Response({"res_list": res1, "res_dict": res2})
|
||||
|
||||
class TestItemViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
|
|
|
@ -16,6 +16,7 @@ from django.db import transaction
|
|||
from django.utils import timezone
|
||||
from django.core.cache import cache
|
||||
from django.utils.timezone import localdate
|
||||
from apps.qm.models import NotOkOption
|
||||
|
||||
|
||||
class OtherLogSerializer(CustomModelSerializer):
|
||||
|
@ -173,6 +174,11 @@ class WMaterialSerializer(CustomModelSerializer):
|
|||
mgroup_name = serializers.StringRelatedField(source='mgroup.name', read_only=True)
|
||||
belong_dept_name = serializers.CharField(
|
||||
source='belong_dept.name', read_only=True)
|
||||
material_origin_name = serializers.StringRelatedField(source='material_origin', read_only=True)
|
||||
notok_sign_name = serializers.SerializerMethodField()
|
||||
|
||||
def get_notok_sign_name(self, obj):
|
||||
return getattr(NotOkOption, obj.notok_sign, NotOkOption.wz).label if obj.notok_sign else None
|
||||
|
||||
class Meta:
|
||||
model = WMaterial
|
||||
|
@ -431,7 +437,8 @@ class HandoverSerializer(CustomModelSerializer):
|
|||
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
||||
material_name = serializers.StringRelatedField(
|
||||
source='material', read_only=True)
|
||||
|
||||
wm_notok_sign = serializers.CharField(source='wm.notok_sign', read_only=True)
|
||||
|
||||
def validate(self, attrs):
|
||||
if 'type' not in attrs:
|
||||
attrs['type'] = Handover.H_NORMAL
|
||||
|
|
|
@ -314,8 +314,7 @@ class HandoverViewSet(CustomModelViewSet):
|
|||
queryset = Handover.objects.all()
|
||||
serializer_class = HandoverSerializer
|
||||
update_serializer_class = HandoverUpdateSerializer
|
||||
select_related_fields = ['send_user',
|
||||
'send_dept', 'recive_user', 'recive_dept']
|
||||
select_related_fields = ['send_user', 'send_mgroup', 'send_dept', 'recive_user', 'recive_mgroup', 'recive_dept', 'wm']
|
||||
filterset_class = HandoverFilter
|
||||
search_fields = ['id', 'material__name',
|
||||
'material__number', 'material__specification', 'batch', 'material__model']
|
||||
|
|
Loading…
Reference in New Issue