From c125652de4c50c7b1fce55a547f163bfeec8068b Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 25 Jul 2024 13:11:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20material=E6=B7=BB=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E4=BB=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0036_material_unit_price.py | 18 ++++++++++++++++++ apps/mtm/models.py | 1 + apps/mtm/services.py | 4 +++- media/default/template/material.xlsx | Bin 9725 -> 9748 bytes 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 apps/mtm/migrations/0036_material_unit_price.py diff --git a/apps/mtm/migrations/0036_material_unit_price.py b/apps/mtm/migrations/0036_material_unit_price.py new file mode 100644 index 00000000..2862eac8 --- /dev/null +++ b/apps/mtm/migrations/0036_material_unit_price.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2024-07-25 05:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0035_process_store_notok'), + ] + + operations = [ + migrations.AddField( + model_name='material', + name='unit_price', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='单价'), + ), + ] diff --git a/apps/mtm/models.py b/apps/mtm/models.py index 2db5c76d..31ab88cf 100644 --- a/apps/mtm/models.py +++ b/apps/mtm/models.py @@ -72,6 +72,7 @@ class Material(CommonAModel): need_route = models.BooleanField('是否需要定义工艺路线', default=False) components = models.JSONField('组件', default=dict, null=False, blank=True) brothers = models.JSONField('兄弟件', default=list, null=False, blank=True) + unit_price = models.PositiveIntegerField('单价', null=True, blank=True) class Meta: verbose_name = '物料表' diff --git a/apps/mtm/services.py b/apps/mtm/services.py index e457c4e3..e889a685 100644 --- a/apps/mtm/services.py +++ b/apps/mtm/services.py @@ -77,6 +77,7 @@ def daoru_material(path: str): model = sheet[f'd{i}'].value.replace(' ', '') unit = sheet[f'e{i}'].value.replace(' ', '') count_safe = sheet[f'g{i}'].value + unit_price = sheet[f'h{i}'].value except Exception as e: raise ParseError(f'{i}行物料信息错误: {str(e)}') if type in [20, 30]: @@ -90,7 +91,8 @@ def daoru_material(path: str): if type in [20, 30]: filters['process'] = process default = {'type': type, 'name': name, 'specification': specification, - 'model': model, 'unit': unit, 'number': f'm{type}_{ranstr(6)}', 'id': idWorker.get_id(), 'count_safe': count_safe} + 'model': model, 'unit': unit, 'number': f'm{type}_{ranstr(6)}', 'id': idWorker.get_id(), + 'count_safe': count_safe, 'unit_price': unit_price} material, is_created = Material.objects.get_or_create( **filters, defaults=default) if not is_created: diff --git a/media/default/template/material.xlsx b/media/default/template/material.xlsx index 5d151b6e447be40016972ca2d0ebc6749da486f7..19a678a33739900ffdc7e4ec7e9b5b4d8f640c1d 100644 GIT binary patch delta 3580 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 delta 3619 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 C>$6n=