diff --git a/apps/wpm/migrations/0086_alter_handover_type.py b/apps/wpm/migrations/0086_alter_handover_type.py new file mode 100644 index 00000000..fc060bd8 --- /dev/null +++ b/apps/wpm/migrations/0086_alter_handover_type.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-02-05 01:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpm', '0085_handover_new_batch'), + ] + + operations = [ + migrations.AlterField( + model_name='handover', + name='type', + field=models.PositiveSmallIntegerField(choices=[(10, '正常交接'), (20, '返修交接'), (30, '检验交接'), (40, '报废交接'), (50, '改版交接')], default=10, verbose_name='交接类型'), + ), + ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 90dd7bf2..5ab07b1c 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -368,8 +368,9 @@ class Handover(CommonADModel): H_REPAIR = 20 H_TEST = 30 H_SCRAP = 40 + H_CHANGE = 50 new_batch = models.TextField('新批次号', null=True, blank=True) - type = models.PositiveSmallIntegerField('交接类型', choices=[(H_NORMAL, '正常交接'), (H_REPAIR, '返修交接'), (H_TEST, '检验交接'), (H_SCRAP, '报废交接')], default=H_NORMAL) + type = models.PositiveSmallIntegerField('交接类型', choices=[(H_NORMAL, '正常交接'), (H_REPAIR, '返修交接'), (H_TEST, '检验交接'), (H_SCRAP, '报废交接'), (H_CHANGE, '改版交接')], default=H_NORMAL) send_date = models.DateField('送料日期') send_user = models.ForeignKey( User, verbose_name='交送人', on_delete=models.CASCADE, related_name='handover_send_user') diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 19079659..7605c18f 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -720,6 +720,9 @@ class HandoverSerializer(CustomModelSerializer): def validate(self, attrs): if 'type' not in attrs: attrs['type'] = Handover.H_NORMAL + if attrs["type"] == Handover.H_CHANGE: + if "material_changed" not in attrs: + raise ParseError("必须指定变更后的物料") wm:WMaterial = attrs.get('wm', None) handoverb = attrs.get('handoverb', []) if wm: @@ -777,6 +780,7 @@ class HandoverSerializer(CustomModelSerializer): "recive_mgroup": {"required": False}, "recive_dept": {"required": False}, "material": {"required": False}, + "material_changed": {"required": False}, "batch": {"required": False}, "count": {"required": False}, "count_eweight": {"required": False} diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 4049d578..0f5c96fd 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -624,7 +624,7 @@ def update_mtask(mtask: Mtask, fill_way: int = 10): utask.save() -def handover_submit(handover: Handover, user: User, now: Union[datetime.datetime, None]): +def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, None]): """ 交接提交后需要执行的操作 """ @@ -755,6 +755,9 @@ def handover_submit(handover: Handover, user: User, now: Union[datetime.datetime for batch in batches: MyThread(target=get_alldata_with_batch_and_store, args=(batch,)).start() +def handover_revert(handover:Handover): + pass + def mlog_submit_validate(ins: Mlog): if ins.submit_time: raise ParseError('该日志已提交!')