diff --git a/apps/wpm/migrations/0081_auto_20250107_1423.py b/apps/wpm/migrations/0081_auto_20250107_1423.py new file mode 100644 index 00000000..ff64d1bb --- /dev/null +++ b/apps/wpm/migrations/0081_auto_20250107_1423.py @@ -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='生成的'), + ), + ] diff --git a/apps/wpm/migrations/0081_mlogb_is_main_batchin.py b/apps/wpm/migrations/0081_mlogb_is_main_batchin.py deleted file mode 100644 index 604a7d5c..00000000 --- a/apps/wpm/migrations/0081_mlogb_is_main_batchin.py +++ /dev/null @@ -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='是否主输入批次'), - ), - ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 48aeaf44..6ee32256 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -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) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index adf6f930..9aa7541c 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -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): diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 5e2d0efb..0d6d55c8 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -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,