feat: fmlog添加工艺步骤字段及相应返回数据
This commit is contained in:
parent
4bc126ca97
commit
b5c21b7472
|
@ -373,6 +373,14 @@ class Route(CommonADModel):
|
|||
through="mtm.routemat", blank=True)
|
||||
parent = models.ForeignKey('self', verbose_name='上级路线', on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
x = ""
|
||||
if self.material_in:
|
||||
x = x + str(self.material_in) + ">"
|
||||
if self.material_out:
|
||||
x = x + str(self.material_out)
|
||||
return x
|
||||
|
||||
@staticmethod
|
||||
def get_routes(material: Material=None, routepack:RoutePack=None, routeIds=None):
|
||||
"""
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# Generated by Django 3.2.12 on 2025-04-16 09:58
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mtm', '0055_auto_20250327_1239'),
|
||||
('wpm', '0109_auto_20250416_1130'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='fmlog',
|
||||
name='route',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='fmlog_route', to='mtm.route', verbose_name='所用步骤'),
|
||||
),
|
||||
]
|
|
@ -147,6 +147,8 @@ class Fmlog(CommonADModel):
|
|||
"""
|
||||
mtask = models.ForeignKey(Mtask, verbose_name='任务',
|
||||
on_delete=models.CASCADE, related_name='fmlog_mtask', null=True, blank=True)
|
||||
route = models.ForeignKey(Route, verbose_name="所用步骤",
|
||||
on_delete=models.SET_NULL, related_name="fmlog_route", null=True, blank=True)
|
||||
mgroup = models.ForeignKey(Mgroup, verbose_name='工段', on_delete=models.CASCADE, related_name='fmlog_mgroup')
|
||||
note = models.TextField('备注', default='', blank=True)
|
||||
is_fix = models.BooleanField('是否用于返修', default=False) # 返工/复检
|
||||
|
|
|
@ -231,7 +231,7 @@ class MlogbSerializer(CustomModelSerializer):
|
|||
class MlogListSerializer(CustomModelSerializer):
|
||||
mstate_json = serializers.JSONField(source='mgroup.process.mstate_json', read_only=True)
|
||||
supplier_name = serializers.CharField(source='supplier.name', read_only=True)
|
||||
routepack_name = serializers.CharField(source='route.routepack.name', read_only=True)
|
||||
# routepack_name = serializers.CharField(source='route.routepack.name', read_only=True)
|
||||
belong_dept = serializers.CharField(
|
||||
source='mgroup.belong_dept.id', read_only=True)
|
||||
belong_dept_name = serializers.CharField(
|
||||
|
@ -287,7 +287,7 @@ class MlogbDetailSerializer(CustomModelSerializer):
|
|||
class MlogSerializer(CustomModelSerializer):
|
||||
mstate_json = serializers.JSONField(source='mgroup.process.mstate_json', read_only=True)
|
||||
supplier_name = serializers.CharField(source='supplier.name', read_only=True)
|
||||
routepack_name = serializers.CharField(source='route.routepack.name', read_only=True)
|
||||
# routepack_name = serializers.CharField(source='route.routepack.name', read_only=True)
|
||||
belong_dept = serializers.CharField(
|
||||
source='mgroup.belong_dept.id', read_only=True)
|
||||
belong_dept_name = serializers.CharField(
|
||||
|
@ -1021,8 +1021,8 @@ class HandoverSerializer(CustomModelSerializer):
|
|||
# raise ParseError(f'第{ind+1}物料与交接部门不一致')
|
||||
if attrs["material"] != wm.material:
|
||||
raise ParseError(f'第{ind+1}物料与交接物料不一致')
|
||||
if wm.state != WMaterial.WM_OK and attrs['type'] in [Handover.H_NORMAL, Handover.H_TEST]:
|
||||
raise ParseError(f'第{ind+1}物料不合格,不能进行正常/检验交接')
|
||||
# if wm.state != WMaterial.WM_OK and attrs['type'] in [Handover.H_NORMAL, Handover.H_TEST]:
|
||||
# raise ParseError(f'第{ind+1}物料不合格,不能进行正常/检验交接')
|
||||
if wm.count_xtest is not None:
|
||||
raise ParseError(f'第{ind+1}物料检验中,不能进行交接')
|
||||
attrs["count"] = t_count
|
||||
|
@ -1177,8 +1177,9 @@ class AttLogSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class FmlogSerializer(CustomModelSerializer):
|
||||
routepack_name = serializers.CharField(
|
||||
source='mtask.route.routepack.name', read_only=True)
|
||||
# routepack_name = serializers.CharField(
|
||||
# source='mtask.route.routepack.name', read_only=True)
|
||||
route_name = serializers.StringRelatedField(source="route", read_only=True)
|
||||
mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
|
||||
mtask_number = serializers.CharField(source='mtask.number', read_only=True)
|
||||
class Meta:
|
||||
|
@ -1190,11 +1191,13 @@ class FmlogSerializer(CustomModelSerializer):
|
|||
is_fix = attrs.get("is_fix", False)
|
||||
if is_fix:
|
||||
attrs["mtask"] = None
|
||||
elif not attrs.get("mtask", None):
|
||||
raise ParseError("请选择任务")
|
||||
elif not attrs.get("mtask", None) or not attrs.get("route", None):
|
||||
raise ParseError("请选择任务或工艺步骤")
|
||||
mtask: Mtask = attrs['mtask']
|
||||
if mtask.state != Mtask.MTASK_ASSGINED:
|
||||
if mtask and mtask.state != Mtask.MTASK_ASSGINED:
|
||||
raise ParseError('该任务非下达中不可选择')
|
||||
if mtask:
|
||||
attrs["route"] = mtask.route
|
||||
return attrs
|
||||
|
||||
class FmlogUpdateSerializer(CustomModelSerializer):
|
||||
|
|
Loading…
Reference in New Issue