feat: 增加不合格项接口

This commit is contained in:
caoqianming 2024-07-22 17:58:21 +08:00
parent ec0df66542
commit 0ab6e0bc72
5 changed files with 56 additions and 4 deletions

View File

@ -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):
"""

View File

@ -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()),
]

View File

@ -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):
"""

View File

@ -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

View File

@ -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']