车间操作自定义表单的可update
This commit is contained in:
parent
bab19a707d
commit
759062e3a2
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.9 on 2021-12-16 01:45
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('inm', '0022_auto_20211208_1408'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='fifoitem',
|
||||||
|
name='is_tested',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否已检验'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='fifoitem',
|
||||||
|
name='is_testok',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否检验合格'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Generated by Django 3.2.9 on 2021-12-16 01:45
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mtm', '0042_alter_recordformfield_field_type'),
|
||||||
|
('qm', '0019_auto_20211214_1504'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='field_key',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='field_name',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='field_type',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='form_field',
|
||||||
|
field=models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='mtm.recordformfield', verbose_name='关联自定义表格字段'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='testrecorditem',
|
||||||
|
name='test_record',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='item_test_record', to='qm.testrecord', verbose_name='关联的检验记录'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -79,9 +79,6 @@ class TestRecordItem(BaseModel):
|
||||||
记录表格字段值
|
记录表格字段值
|
||||||
"""
|
"""
|
||||||
form_field = models.ForeignKey(RecordFormField, verbose_name='关联自定义表格字段', on_delete=models.CASCADE, db_constraint=False)
|
form_field = models.ForeignKey(RecordFormField, verbose_name='关联自定义表格字段', on_delete=models.CASCADE, db_constraint=False)
|
||||||
field_name = models.CharField('字段名', max_length=50)
|
|
||||||
field_key = models.CharField('字段标识', max_length=50)
|
|
||||||
field_type = models.CharField('字段类型', choices=RecordForm.type_choices, max_length=50)
|
|
||||||
field_value = models.JSONField('录入值', default=dict, blank=True)
|
field_value = models.JSONField('录入值', default=dict, blank=True)
|
||||||
is_hidden = models.BooleanField('是否隐藏', default=False)
|
is_hidden = models.BooleanField('是否隐藏', default=False)
|
||||||
is_testok = models.BooleanField('是否合格', null=True, blank=True)
|
is_testok = models.BooleanField('是否合格', null=True, blank=True)
|
||||||
|
|
|
@ -48,6 +48,9 @@ class TestRecordItemUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class TestRecordItemSerializer(serializers.ModelSerializer):
|
class TestRecordItemSerializer(serializers.ModelSerializer):
|
||||||
|
field_key = serializers.CharField(source='form_field.field_key', read_only=True)
|
||||||
|
field_name = serializers.CharField(source='form_field.field_name', read_only=True)
|
||||||
|
field_type = serializers.CharField(source='form_field.field_type', read_only=True)
|
||||||
need_judge = serializers.BooleanField(source='form_field.need_judge', read_only=True)
|
need_judge = serializers.BooleanField(source='form_field.need_judge', read_only=True)
|
||||||
rule_expression = serializers.JSONField(source='form_field.rule_expression', read_only=True)
|
rule_expression = serializers.JSONField(source='form_field.rule_expression', read_only=True)
|
||||||
display_expression = serializers.JSONField(source='form_field.display_expression', read_only=True)
|
display_expression = serializers.JSONField(source='form_field.display_expression', read_only=True)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Generated by Django 3.2.9 on 2021-12-16 01:45
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('wpm', '0032_auto_20211214_1245'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='operationrecorditem',
|
||||||
|
name='field_key',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='operationrecorditem',
|
||||||
|
name='field_name',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='operationrecorditem',
|
||||||
|
name='field_type',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='operationrecorditem',
|
||||||
|
name='sort',
|
||||||
|
),
|
||||||
|
]
|
|
@ -188,11 +188,7 @@ class OperationRecordItem(BaseModel):
|
||||||
记录表格字段值
|
记录表格字段值
|
||||||
"""
|
"""
|
||||||
form_field = models.ForeignKey(RecordFormField, verbose_name='关联字段', on_delete=models.CASCADE, db_constraint=False)
|
form_field = models.ForeignKey(RecordFormField, verbose_name='关联字段', on_delete=models.CASCADE, db_constraint=False)
|
||||||
field_name = models.CharField('字段名', max_length=50)
|
|
||||||
field_key = models.CharField('字段标识', max_length=50)
|
|
||||||
field_type = models.CharField('字段类型', choices=RecordForm.type_choices, max_length=50)
|
|
||||||
field_value = models.JSONField('录入值', default=dict, blank=True)
|
field_value = models.JSONField('录入值', default=dict, blank=True)
|
||||||
sort = models.IntegerField('排序号', default=1)
|
|
||||||
operation_record = models.ForeignKey(OperationRecord, verbose_name='关联的生产记录', on_delete=models.CASCADE)
|
operation_record = models.ForeignKey(OperationRecord, verbose_name='关联的生产记录', on_delete=models.CASCADE)
|
||||||
|
|
||||||
class OperationEquip(BaseModel):
|
class OperationEquip(BaseModel):
|
||||||
|
|
|
@ -251,10 +251,6 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
||||||
obj = serializer.save(**savedict)
|
obj = serializer.save(**savedict)
|
||||||
tris = []
|
tris = []
|
||||||
for m in record_data: # 保存记录详情
|
for m in record_data: # 保存记录详情
|
||||||
form_field = m['form_field']
|
|
||||||
m['field_name'] = form_field.field_name
|
|
||||||
m['field_key'] = form_field.field_key
|
|
||||||
m['field_type'] = form_field.field_type
|
|
||||||
m['is_testok'] = m['is_testok'] if 'is_testok' in m else None
|
m['is_testok'] = m['is_testok'] if 'is_testok' in m else None
|
||||||
m['is_hidden'] = m['is_hidden'] if 'is_hidden' in m else None
|
m['is_hidden'] = m['is_hidden'] if 'is_hidden' in m else None
|
||||||
m['test_record'] = obj
|
m['test_record'] = obj
|
||||||
|
@ -532,7 +528,7 @@ class OperationViewSet(ListModelMixin, RetrieveModelMixin, CreateModelMixin, Upd
|
||||||
WProduct.objects.create(**wpr)
|
WProduct.objects.create(**wpr)
|
||||||
elif step.type == Step.STEP_TYPE_COMB:
|
elif step.type == Step.STEP_TYPE_COMB:
|
||||||
oms_w = OperationMaterial.objects.filter(operation=op, type=SubprodctionMaterial.SUB_MA_TYPE_OUT,
|
oms_w = OperationMaterial.objects.filter(operation=op, type=SubprodctionMaterial.SUB_MA_TYPE_OUT,
|
||||||
subproduction_progress__ismain=True)
|
subproduction_progress__is_main=True)
|
||||||
if len(oms_w) == 1:
|
if len(oms_w) == 1:
|
||||||
oms_w = oms_w[0]
|
oms_w = oms_w[0]
|
||||||
# 校验单片数量是否正确, 暂时未写
|
# 校验单片数量是否正确, 暂时未写
|
||||||
|
@ -655,17 +651,21 @@ class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMixin
|
||||||
opr = self.get_object()
|
opr = self.get_object()
|
||||||
if opr.operation.is_submited:
|
if opr.operation.is_submited:
|
||||||
raise exceptions.APIException('操作已提交不可修改')
|
raise exceptions.APIException('操作已提交不可修改')
|
||||||
wrds = []
|
|
||||||
for m in vdata['record_data']: # 保存记录详情
|
# 已存在信息
|
||||||
|
items = OperationRecordItem.objects.filter(operation=opr, is_deleted=False)
|
||||||
|
for m in vdata['record_data']: # 保存或创建记录详情
|
||||||
form_field = m['form_field']
|
form_field = m['form_field']
|
||||||
m['form_field'] = form_field
|
for i in items:
|
||||||
m['field_name'] = form_field.field_name
|
if i.form_field == form_field:
|
||||||
m['field_key'] = form_field.field_key
|
# 更新操作
|
||||||
m['field_type'] = form_field.field_type
|
i.field_value = m['field_value']
|
||||||
m['sort'] = form_field.sort
|
i.save()
|
||||||
m['operation_record'] = opr
|
else:
|
||||||
wrds.append(OperationRecordItem(**m))
|
OperationRecordItem.objects.create(
|
||||||
OperationRecordItem.objects.bulk_create(wrds)
|
form_field=form_field,
|
||||||
|
field_value=m['field_value'],
|
||||||
|
operation_record=opr)
|
||||||
opr.is_filled = True
|
opr.is_filled = True
|
||||||
opr.save()
|
opr.save()
|
||||||
return Response()
|
return Response()
|
||||||
|
|
Loading…
Reference in New Issue