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.utils.models import CommonBDModel, BaseModel
|
||||||
from apps.mtm.models import Material, Mgroup, Team
|
from apps.mtm.models import Material, Mgroup, Team
|
||||||
from apps.wpm.models import SfLog
|
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):
|
class TestItem(CommonAModel):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
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/'
|
API_BASE_URL = 'api/qm/'
|
||||||
HTML_BASE_URL = 'qm/'
|
HTML_BASE_URL = 'qm/'
|
||||||
|
@ -14,4 +14,5 @@ router.register('ftestwork', FtestWorkViewSet, basename='ftestwork')
|
||||||
router.register('ptest', PtestViewSet, basename='ptest')
|
router.register('ptest', PtestViewSet, basename='ptest')
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path(API_BASE_URL, include(router.urls)),
|
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 django.shortcuts import render
|
||||||
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin
|
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin
|
||||||
from rest_framework.decorators import action
|
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.models import QuaStat, TestItem, Ftest, Ptest, FtestWork
|
||||||
from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer, FtestSerializer, PtestSerializer, \
|
from apps.qm.serializers import QuaStatSerializer, TestItemSerializer, QuaStatUpdateSerializer, FtestSerializer, PtestSerializer, \
|
||||||
FtestWorkCreateUpdateSerializer, FtestWorkSerializer
|
FtestWorkCreateUpdateSerializer, FtestWorkSerializer
|
||||||
|
@ -13,8 +14,16 @@ from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from apps.wpm.models import SfLog
|
from apps.wpm.models import SfLog
|
||||||
from apps.qm.filters import QuaStatFilter, TestItemFilter
|
from apps.qm.filters import QuaStatFilter, TestItemFilter
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from apps.qm.models import NotOkOption
|
||||||
# Create your views here.
|
# 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):
|
class TestItemViewSet(ListModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -16,6 +16,7 @@ from django.db import transaction
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.utils.timezone import localdate
|
from django.utils.timezone import localdate
|
||||||
|
from apps.qm.models import NotOkOption
|
||||||
|
|
||||||
|
|
||||||
class OtherLogSerializer(CustomModelSerializer):
|
class OtherLogSerializer(CustomModelSerializer):
|
||||||
|
@ -173,6 +174,11 @@ class WMaterialSerializer(CustomModelSerializer):
|
||||||
mgroup_name = serializers.StringRelatedField(source='mgroup.name', read_only=True)
|
mgroup_name = serializers.StringRelatedField(source='mgroup.name', read_only=True)
|
||||||
belong_dept_name = serializers.CharField(
|
belong_dept_name = serializers.CharField(
|
||||||
source='belong_dept.name', read_only=True)
|
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:
|
class Meta:
|
||||||
model = WMaterial
|
model = WMaterial
|
||||||
|
@ -431,7 +437,8 @@ class HandoverSerializer(CustomModelSerializer):
|
||||||
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
||||||
material_name = serializers.StringRelatedField(
|
material_name = serializers.StringRelatedField(
|
||||||
source='material', read_only=True)
|
source='material', read_only=True)
|
||||||
|
wm_notok_sign = serializers.CharField(source='wm.notok_sign', read_only=True)
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
if 'type' not in attrs:
|
if 'type' not in attrs:
|
||||||
attrs['type'] = Handover.H_NORMAL
|
attrs['type'] = Handover.H_NORMAL
|
||||||
|
|
|
@ -314,8 +314,7 @@ class HandoverViewSet(CustomModelViewSet):
|
||||||
queryset = Handover.objects.all()
|
queryset = Handover.objects.all()
|
||||||
serializer_class = HandoverSerializer
|
serializer_class = HandoverSerializer
|
||||||
update_serializer_class = HandoverUpdateSerializer
|
update_serializer_class = HandoverUpdateSerializer
|
||||||
select_related_fields = ['send_user',
|
select_related_fields = ['send_user', 'send_mgroup', 'send_dept', 'recive_user', 'recive_mgroup', 'recive_dept', 'wm']
|
||||||
'send_dept', 'recive_user', 'recive_dept']
|
|
||||||
filterset_class = HandoverFilter
|
filterset_class = HandoverFilter
|
||||||
search_fields = ['id', 'material__name',
|
search_fields = ['id', 'material__name',
|
||||||
'material__number', 'material__specification', 'batch', 'material__model']
|
'material__number', 'material__specification', 'batch', 'material__model']
|
||||||
|
|
Loading…
Reference in New Issue