From a1a3bac26de6911d046b1fa1c404ddb87d55920b Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 1 Dec 2021 10:06:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0process=20type=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/.gitignore | 3 ++- .../apps/mtm/migrations/0038_process_type.py | 18 ++++++++++++++++++ hb_server/apps/mtm/models.py | 9 +++++++++ hb_server/apps/mtm/serializers.py | 2 +- hb_server/apps/wpm/models.py | 1 + hb_server/apps/wpm/serializers.py | 1 + hb_server/apps/wpm/views.py | 2 +- 7 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 hb_server/apps/mtm/migrations/0038_process_type.py diff --git a/hb_server/.gitignore b/hb_server/.gitignore index 4fdd10f..55fdc78 100644 --- a/hb_server/.gitignore +++ b/hb_server/.gitignore @@ -12,4 +12,5 @@ celerybeat-schedule.dat celerybeat-schedule.dir db.sqlite3 temp/ -nohup.out \ No newline at end of file +nohup.out +server/settings_pro.py \ No newline at end of file diff --git a/hb_server/apps/mtm/migrations/0038_process_type.py b/hb_server/apps/mtm/migrations/0038_process_type.py new file mode 100644 index 0000000..61085e0 --- /dev/null +++ b/hb_server/apps/mtm/migrations/0038_process_type.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.9 on 2021-12-01 02:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0037_auto_20211129_1456'), + ] + + operations = [ + migrations.AddField( + model_name='process', + name='type', + field=models.IntegerField(default=30, verbose_name='类型'), + ), + ] diff --git a/hb_server/apps/mtm/models.py b/hb_server/apps/mtm/models.py index 9bd38fd..fe4649e 100644 --- a/hb_server/apps/mtm/models.py +++ b/hb_server/apps/mtm/models.py @@ -51,8 +51,17 @@ class Process(CommonAModel): """ 工序 """ + PROCESS_TYPE_SPEC = 10 + PROCESS_TYPE_KEY = 20 + PROCESS_TYPE_NOMAL = 30 + type_choices = ( + (PROCESS_TYPE_SPEC, '特殊'), + (PROCESS_TYPE_KEY, '关键'), + (PROCESS_TYPE_NOMAL, '普通'), + ) name = models.CharField('工序名称', max_length=100, unique=True) number = models.CharField('编号', max_length=100, unique=True) + type = models.IntegerField('类型', default=30) instruction = models.ForeignKey(File, verbose_name='指导书', on_delete=models.SET_NULL, null=True, blank=True) instruction_content = models.TextField('指导书内容', null=True, blank=True) workshop = models.ForeignKey(Organization, verbose_name='生产车间', on_delete=models.CASCADE, null=True, blank=True) diff --git a/hb_server/apps/mtm/serializers.py b/hb_server/apps/mtm/serializers.py index f1b3ab8..8cc2cb5 100644 --- a/hb_server/apps/mtm/serializers.py +++ b/hb_server/apps/mtm/serializers.py @@ -38,7 +38,7 @@ class ProcessSerializer(serializers.ModelSerializer): class ProcessSimpleSerializer(serializers.ModelSerializer): class Meta: model = Process - fields = ['id', 'name', 'number'] + fields = ['id', 'name', 'number', 'type'] class StepSerializer(serializers.ModelSerializer): class Meta: diff --git a/hb_server/apps/wpm/models.py b/hb_server/apps/wpm/models.py index 14efdf6..ebf5ead 100644 --- a/hb_server/apps/wpm/models.py +++ b/hb_server/apps/wpm/models.py @@ -19,6 +19,7 @@ class WMaterial(BaseModel): batch = models.CharField('批次号', max_length=100, null=True, blank=True) count = models.IntegerField('当前数量', default=0, validators=[MinValueValidator(0)]) + class WProduct(CommonAModel): """ 动态半成品/成品表 diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index cfa7f9e..0a8cb9b 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -19,6 +19,7 @@ class PickHalfSerializer(serializers.Serializer): id = serializers.PrimaryKeyRelatedField(queryset=SubProductionProgress.objects.all(), label='子计划进度ID') wproducts = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=WProduct.objects.all(), label='半成品ID'), required=False) # 从半成品表里直接修改状态 + class PickDetailSerializer(serializers.Serializer): material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID") batch = serializers.CharField(label='物料批次', allow_blank=True) diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index fb5b141..86712f3 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -178,7 +178,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet): vdata = serializer.validated_data record_data = vdata.pop('record_data') wproduct = vdata['wproduct'] - if wproduct.act_state != WProduct.WPR_ACT_STATE_TOTEST: + if wproduct.act_state not in [WProduct.WPR_ACT_STATE_TOTEST, WProduct.WPR_ACT_STATE_TORETEST]: raise exceptions.APIException('该产品当前状态不可检验') if 'is_testok' not in vdata: raise exceptions.APIException('未填写检测结论')