feat: fmlog添加is_fix字段
This commit is contained in:
parent
4a5f6d9d0e
commit
1623d2d684
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 3.2.12 on 2025-04-14 14:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('pm', '0021_auto_20250317_1040'),
|
||||||
|
('wpm', '0107_alter_handoverb_handover'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='fmlog',
|
||||||
|
name='is_fix',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否用于返修'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='fmlog',
|
||||||
|
name='mtask',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='fmlog_mtask', to='pm.mtask', verbose_name='任务'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -153,9 +153,11 @@ class WMaterial(CommonBDModel):
|
||||||
class Fmlog(CommonADModel):
|
class Fmlog(CommonADModel):
|
||||||
"""TN: 父级生产日志
|
"""TN: 父级生产日志
|
||||||
"""
|
"""
|
||||||
mtask = models.ForeignKey(Mtask, verbose_name='任务', on_delete=models.CASCADE, related_name='fmlog_mtask')
|
mtask = models.ForeignKey(Mtask, verbose_name='任务',
|
||||||
|
on_delete=models.CASCADE, related_name='fmlog_mtask', null=True, blank=True)
|
||||||
mgroup = models.ForeignKey(Mgroup, verbose_name='工段', on_delete=models.CASCADE, related_name='fmlog_mgroup')
|
mgroup = models.ForeignKey(Mgroup, verbose_name='工段', on_delete=models.CASCADE, related_name='fmlog_mgroup')
|
||||||
note = models.TextField('备注', default='', blank=True)
|
note = models.TextField('备注', default='', blank=True)
|
||||||
|
is_fix = models.BooleanField('是否用于返修', default=False) # 返工/复检
|
||||||
enabled = models.BooleanField("是否启用", default=True)
|
enabled = models.BooleanField("是否启用", default=True)
|
||||||
|
|
||||||
class Mlog(CommonADModel):
|
class Mlog(CommonADModel):
|
||||||
|
|
|
@ -541,7 +541,7 @@ class MlogSerializer(CustomModelSerializer):
|
||||||
attrs['mgroup'] = fmlog.mgroup
|
attrs['mgroup'] = fmlog.mgroup
|
||||||
attrs['mtask'] = fmlog.mtask
|
attrs['mtask'] = fmlog.mtask
|
||||||
attrs['mtype'] = fmlog.mgroup.mtype
|
attrs['mtype'] = fmlog.mgroup.mtype
|
||||||
if attrs['mtask'].route:
|
if attrs['mtask'] and attrs['mtask'].route:
|
||||||
attrs['route'] = attrs['mtask'].route
|
attrs['route'] = attrs['mtask'].route
|
||||||
# if attrs['mtask'].mtaskb and mtaskb is None:
|
# if attrs['mtask'].mtaskb and mtaskb is None:
|
||||||
# raise ParseError('子任务不能为空')
|
# raise ParseError('子任务不能为空')
|
||||||
|
@ -1153,6 +1153,7 @@ class AttLogSerializer(CustomModelSerializer):
|
||||||
class FmlogSerializer(CustomModelSerializer):
|
class FmlogSerializer(CustomModelSerializer):
|
||||||
routepack_name = serializers.CharField(
|
routepack_name = serializers.CharField(
|
||||||
source='mtask.route.routepack.name', read_only=True)
|
source='mtask.route.routepack.name', read_only=True)
|
||||||
|
mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
|
||||||
mtask_number = serializers.CharField(source='mtask.number', read_only=True)
|
mtask_number = serializers.CharField(source='mtask.number', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Fmlog
|
model = Fmlog
|
||||||
|
@ -1160,6 +1161,11 @@ class FmlogSerializer(CustomModelSerializer):
|
||||||
read_only_fields = EXCLUDE_FIELDS
|
read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
|
is_fix = attrs['is_fix']
|
||||||
|
if is_fix:
|
||||||
|
attrs["mgroup"] = None
|
||||||
|
elif not attrs.get("mtask", None):
|
||||||
|
raise ParseError("请选择任务")
|
||||||
mtask: Mtask = attrs['mtask']
|
mtask: Mtask = attrs['mtask']
|
||||||
if mtask.state != Mtask.MTASK_ASSGINED:
|
if mtask.state != Mtask.MTASK_ASSGINED:
|
||||||
raise ParseError('该任务非下达中不可选择')
|
raise ParseError('该任务非下达中不可选择')
|
||||||
|
|
Loading…
Reference in New Issue