feat: Mlogb添加parent字段

This commit is contained in:
caoqianming 2025-01-07 14:24:00 +08:00
parent d3a304b918
commit e333b84c1b
5 changed files with 31 additions and 22 deletions

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.12 on 2025-01-07 06:23
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('wpm', '0080_mlogb_mlogb_to'),
]
operations = [
migrations.AddField(
model_name='mlogb',
name='parent',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mlogb_parent', to='wpm.mlogb', verbose_name='父级物料'),
),
migrations.AlterField(
model_name='mlogb',
name='mlogb_to',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mlogb_to_mlogb', to='wpm.mlogb', verbose_name='生成的'),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 3.2.12 on 2025-01-07 03:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wpm', '0080_mlogb_mlogb_to'),
]
operations = [
migrations.AddField(
model_name='mlogb',
name='is_main_batchin',
field=models.BooleanField(default=True, verbose_name='是否主输入批次'),
),
]

View File

@ -292,7 +292,6 @@ class Mlog(CommonADModel):
return mlog_count_fields
class Mlogb(BaseModel):
mlogb_to = models.ForeignKey("self", verbose_name='生成的', on_delete=models.SET_NULL, null=True, blank=True)
mlog = models.ForeignKey(Mlog, verbose_name='关联日志',
on_delete=models.CASCADE, related_name='b_mlog')
note = models.TextField('备注', default='', blank=True)
@ -304,7 +303,11 @@ class Mlogb(BaseModel):
material_in = models.ForeignKey(
Material, verbose_name='投入物料', on_delete=models.CASCADE, related_name='mlogb_material_in',
null=True, blank=True)
is_main_batchin = models.BooleanField('是否主输入批次', default=True)
parent = models.ForeignKey("self", verbose_name='父级物料', on_delete=models.CASCADE, null=True, blank=True,
related_name='mlogb_parent')
mlogb_to = models.ForeignKey("self", verbose_name='生成的', on_delete=models.SET_NULL, null=True, blank=True,
related_name='mlogb_to_mlogb')
material_out = models.ForeignKey(
Material, verbose_name='产物', on_delete=models.CASCADE, related_name='mlogb_material_out',
null=True, blank=True)

View File

@ -525,7 +525,7 @@ class MlogbInSerializer(CustomModelSerializer):
class Meta:
model = Mlogb
fields = ['id', 'mlog', 'mtask', 'wm_in', 'count_use', 'count_pn_jgqbl',
'count_break', 'note', "is_main_batchin"]
'count_break', 'note', "parent"]
extra_kwargs = {'count_use': {'required': True}, 'mtask': {'required': True}, 'wm_in': {'required': True}}
def validate(self, attrs):

View File

@ -492,7 +492,7 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
if material_out is None:
raise ParseError('产物不可为空')
# 如果是主要输入物料且是主批次,才需生成输出
if route.material_in != material_in or mlogbin.is_main_batchin is False:
if route.material_in != material_in or mlogbin.parent is None:
return
m_dict = {
"mtask": mlogbin.mtask,