feat: fmlog添加is_fix字段

This commit is contained in:
caoqianming 2025-04-14 22:49:31 +08:00
parent 4a5f6d9d0e
commit 1623d2d684
3 changed files with 35 additions and 2 deletions

View File

@ -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='任务'),
),
]

View File

@ -153,9 +153,11 @@ class WMaterial(CommonBDModel):
class Fmlog(CommonADModel):
"""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')
note = models.TextField('备注', default='', blank=True)
is_fix = models.BooleanField('是否用于返修', default=False) # 返工/复检
enabled = models.BooleanField("是否启用", default=True)
class Mlog(CommonADModel):

View File

@ -541,7 +541,7 @@ class MlogSerializer(CustomModelSerializer):
attrs['mgroup'] = fmlog.mgroup
attrs['mtask'] = fmlog.mtask
attrs['mtype'] = fmlog.mgroup.mtype
if attrs['mtask'].route:
if attrs['mtask'] and attrs['mtask'].route:
attrs['route'] = attrs['mtask'].route
# if attrs['mtask'].mtaskb and mtaskb is None:
# raise ParseError('子任务不能为空')
@ -1153,6 +1153,7 @@ class AttLogSerializer(CustomModelSerializer):
class FmlogSerializer(CustomModelSerializer):
routepack_name = serializers.CharField(
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)
class Meta:
model = Fmlog
@ -1160,6 +1161,11 @@ class FmlogSerializer(CustomModelSerializer):
read_only_fields = EXCLUDE_FIELDS
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']
if mtask.state != Mtask.MTASK_ASSGINED:
raise ParseError('该任务非下达中不可选择')