From 3c0e416735090acb4516d632c066a8d241fb96bd Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 31 Mar 2025 14:17:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E9=80=80=E6=96=99?= =?UTF-8?q?=E4=BA=A4=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wpm/migrations/0106_alter_handover_type.py | 18 ++++++++++++++++++ apps/wpm/models.py | 4 +++- apps/wpm/services.py | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 apps/wpm/migrations/0106_alter_handover_type.py diff --git a/apps/wpm/migrations/0106_alter_handover_type.py b/apps/wpm/migrations/0106_alter_handover_type.py new file mode 100644 index 00000000..76f3377e --- /dev/null +++ b/apps/wpm/migrations/0106_alter_handover_type.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-03-31 06:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpm', '0105_handover_new_wm'), + ] + + operations = [ + migrations.AlterField( + model_name='handover', + name='type', + field=models.PositiveSmallIntegerField(choices=[(10, '正常交接'), (20, '返修交接'), (30, '检验交接'), (40, '报废交接'), (50, '改版交接'), (60, '退料交接')], default=10, verbose_name='交接类型'), + ), + ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 149c82cc..1e4d071d 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -481,6 +481,8 @@ class Handover(CommonADModel): H_TEST = 30 H_SCRAP = 40 H_CHANGE = 50 + H_BACK = 60 + H_MERGE = 30 H_DIV = 20 new_batch = models.TextField('新批次号', null=True, blank=True) @@ -489,7 +491,7 @@ class Handover(CommonADModel): [(H_NORMAL, '正常'), (H_DIV, '分批'), (H_MERGE, '合批')]) type = models.PositiveSmallIntegerField('交接类型', choices=[ (H_NORMAL, '正常交接'), (H_REPAIR, '返修交接'), - (H_TEST, '检验交接'), (H_SCRAP, '报废交接'), (H_CHANGE, '改版交接')], default=H_NORMAL) + (H_TEST, '检验交接'), (H_SCRAP, '报废交接'), (H_CHANGE, '改版交接'), (H_BACK, '退料交接')], 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/services.py b/apps/wpm/services.py index 58ac1dfa..ff28613d 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -842,6 +842,24 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime, ) else: raise ParseError("改版交接必须指定接收工段") + elif handover.type == Handover.H_BACK: + if mtype == Handover.H_MERGE and handover.new_wm: + wm_to = handover.new_wm + else: + wm_to, _ = WMaterial.objects.get_or_create( + batch=batch, + material=material, + mgroup=recive_mgroup, + belong_dept=recive_dept, + state=wm_from.state, + notok_sign=wm_from.notok_sign, + defect=wm_from.defect, + defaults={ + "batch_ofrom": wm_from.batch_ofrom, + "material_ofrom": wm_from.material_ofrom, + "create_by": user + } + ) else: raise ParseError("不支持该交接类型")