fix: 一些bug调整
This commit is contained in:
parent
71cbda504c
commit
aa32047bf7
|
@ -144,10 +144,10 @@ class RoutePackSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS + ['state', 'ticket']
|
read_only_fields = EXCLUDE_FIELDS + ['state', 'ticket']
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
# def update(self, instance, validated_data):
|
||||||
if validated_data['material'] != instance.material:
|
# if validated_data['material'] != instance.material:
|
||||||
raise ParseError('不可变更产品')
|
# raise ParseError('不可变更产品')
|
||||||
return super().update(instance, validated_data)
|
# return super().update(instance, validated_data)
|
||||||
|
|
||||||
|
|
||||||
class RouteSerializer(CustomModelSerializer):
|
class RouteSerializer(CustomModelSerializer):
|
||||||
|
|
|
@ -16,15 +16,15 @@ class DefectSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS
|
read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
def create(self, validated_data):
|
# def create(self, validated_data):
|
||||||
code = validated_data["code"]
|
# code = validated_data["code"]
|
||||||
if Defect.objects.get_queryset(all=True).filter(code=code).exists():
|
# if Defect.objects.get_queryset(all=True).filter(code=code).exists():
|
||||||
raise ValidationError("缺陷标识已存在")
|
# raise ValidationError("缺陷标识已存在")
|
||||||
return super().create(validated_data)
|
# return super().create(validated_data)
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
# def update(self, instance, validated_data):
|
||||||
validated_data.pop("code", None)
|
# validated_data.pop("code", None)
|
||||||
return super().update(instance, validated_data)
|
# return super().update(instance, validated_data)
|
||||||
|
|
||||||
class TestItemSerializer(CustomModelSerializer):
|
class TestItemSerializer(CustomModelSerializer):
|
||||||
process_name = serializers.CharField(source="process.name", read_only=True)
|
process_name = serializers.CharField(source="process.name", read_only=True)
|
||||||
|
|
|
@ -23,8 +23,9 @@ def ftestwork_submit_validate(ins: FtestWork):
|
||||||
|
|
||||||
def ftestwork_submit(ins:FtestWork, user: User):
|
def ftestwork_submit(ins:FtestWork, user: User):
|
||||||
wm:WMaterial = ins.wm
|
wm:WMaterial = ins.wm
|
||||||
|
fwd_qs = FtestworkDefect.objects.filter(ftestwork=ins)
|
||||||
if ins.need_update_wm:
|
if ins.need_update_wm:
|
||||||
if ins.qct is None:
|
if ins.qct is None or not fwd_qs.exists():
|
||||||
if wm.state == WMaterial.WM_TEST:
|
if wm.state == WMaterial.WM_TEST:
|
||||||
# 更新对应的车间库存
|
# 更新对应的车间库存
|
||||||
wm.count = wm.count - ins.count
|
wm.count = wm.count - ins.count
|
||||||
|
|
|
@ -491,7 +491,7 @@ class MlogSerializer(CustomModelSerializer):
|
||||||
if need_mdefect:
|
if need_mdefect:
|
||||||
MlogbDefect.objects.filter(mlogb__mlog=instance).delete()
|
MlogbDefect.objects.filter(mlogb__mlog=instance).delete()
|
||||||
mlogb_defect_objects = [
|
mlogb_defect_objects = [
|
||||||
MlogbDefect(**{**item, "mlogb": mlogb, "id": idWorker.get_id()})
|
MlogbDefect(**{**item, "mlogb": mox, "id": idWorker.get_id()})
|
||||||
for item in mlogdefect if item["count"] > 0
|
for item in mlogdefect if item["count"] > 0
|
||||||
]
|
]
|
||||||
if mlogb_defect_objects:
|
if mlogb_defect_objects:
|
||||||
|
|
|
@ -31,7 +31,7 @@ def get_alldata_with_batch_gx(batch: str):
|
||||||
"""
|
"""
|
||||||
光芯获取batch的统计数据
|
光芯获取batch的统计数据
|
||||||
"""
|
"""
|
||||||
pass
|
return None, None
|
||||||
|
|
||||||
def get_alldata_with_batch(batch: str):
|
def get_alldata_with_batch(batch: str):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -30,7 +30,7 @@ from .services import mlog_submit, handover_submit, mlog_revert
|
||||||
from apps.wpm.services import mlog_submit_validate, generate_new_batch
|
from apps.wpm.services import mlog_submit_validate, generate_new_batch
|
||||||
from apps.wf.models import State
|
from apps.wf.models import State
|
||||||
from apps.wpmw.models import Wpr
|
from apps.wpmw.models import Wpr
|
||||||
from apps.qm.models import Qct, Ftest
|
from apps.qm.models import Qct, Ftest, TestItem
|
||||||
from apps.enm.models import EnStat
|
from apps.enm.models import EnStat
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from apps.utils.tools import convert_ordereddict
|
from apps.utils.tools import convert_ordereddict
|
||||||
|
@ -181,10 +181,20 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
'material_in__number', 'material_in__specification', 'batch', 'material_in__model',
|
'material_in__number', 'material_in__specification', 'batch', 'material_in__model',
|
||||||
'material_out__name', 'material_out__number', 'material_out__specification', 'material_out__model',]
|
'material_out__name', 'material_out__number', 'material_out__specification', 'material_out__model',]
|
||||||
|
|
||||||
|
def add_info_for_item(self, data):
|
||||||
|
if data.get("oinfo_json", {}):
|
||||||
|
czx_dict = dict(TestItem.objects.filter(id__in=data.get("oinfo_json", {}).keys()).values_list('id', 'name'))
|
||||||
|
data["oinfo_json_"] = {czx_dict.get(k, k): v for k, v in data.get("oinfo_json", {}).items()}
|
||||||
|
return data
|
||||||
|
|
||||||
def add_info_for_list(self, data):
|
def add_info_for_list(self, data):
|
||||||
czx_dict = {}
|
czx_dict = {}
|
||||||
for item in data:
|
for item in data:
|
||||||
czx_dict.update(item.get("oinfo_json", {}))
|
czx_dict.update(item.get("oinfo_json", {}))
|
||||||
|
czx_dict = dict(TestItem.objects.filter(id__in=czx_dict.keys()).values_list('id', 'name'))
|
||||||
|
for item in data:
|
||||||
|
if item.get("oinfo_json", None):
|
||||||
|
item["oinfo_json_"] = {czx_dict.get(k, k): v for k, v in item.get("oinfo_json", {}).items()}
|
||||||
if self.request.query_params.get('with_mlogb', False):
|
if self.request.query_params.get('with_mlogb', False):
|
||||||
data_dict = {item['id']: {**item, "mlogb_full": [], "mlogb": []} for item in data}
|
data_dict = {item['id']: {**item, "mlogb_full": [], "mlogb": []} for item in data}
|
||||||
mlogb_qs = Mlogb.objects.filter(mlog__id__in=data_dict.keys()).select_related("material_in", "material_out").order_by("create_time")
|
mlogb_qs = Mlogb.objects.filter(mlog__id__in=data_dict.keys()).select_related("material_in", "material_out").order_by("create_time")
|
||||||
|
@ -635,7 +645,7 @@ class FmlogViewSet(CustomModelViewSet):
|
||||||
perms_map = {'get': '*', 'post': 'mlog.create', 'put': 'mlog.update', 'delete': 'mlog.delete'}
|
perms_map = {'get': '*', 'post': 'mlog.create', 'put': 'mlog.update', 'delete': 'mlog.delete'}
|
||||||
queryset = Fmlog.objects.all()
|
queryset = Fmlog.objects.all()
|
||||||
serializer_class = FmlogSerializer
|
serializer_class = FmlogSerializer
|
||||||
# update_serializer_class = FmlogUpdateSerializer
|
update_serializer_class = FmlogUpdateSerializer
|
||||||
filterset_fields = ['mtask', 'mgroup', 'mtask__route']
|
filterset_fields = ['mtask', 'mgroup', 'mtask__route']
|
||||||
select_related_fields = ['mtask', 'mgroup', 'mtask__route', 'mtask__route__routepack']
|
select_related_fields = ['mtask', 'mgroup', 'mtask__route', 'mtask__route__routepack']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue