订单, 计划, 产品编号自填

This commit is contained in:
曹前明 2022-06-13 09:28:56 +08:00
parent 9f15520dae
commit b05d6349d2
6 changed files with 28 additions and 5 deletions

View File

@ -11,7 +11,7 @@ from utils.mixins import DynamicFieldsSerializerMixin
class ProductionPlanCreateFromOrderSerializer(serializers.ModelSerializer):
class Meta:
model = ProductionPlan
fields = ['order', 'count', 'start_date', 'end_date']
fields = ['order', 'count', 'start_date', 'end_date', 'number']
class ProductionPlanSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):
order_ = OrderSimpleSerializer(source='order', read_only=True)

View File

@ -71,7 +71,7 @@ class ProductionPlanViewSet(CreateUpdateModelAMixin, ListModelMixin, CreateModel
pass
else:
raise APIException('排产数量错误')
instance = serializer.save(create_by=request.user, product=order.product, number='JH'+ranstr(7))
instance = serializer.save(create_by=request.user, product=order.product)
updateOrderPlanedCount(instance.order)
return Response()

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-06-13 01:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('qm', '0028_alter_testrecord_fifo_item'),
]
operations = [
migrations.AlterField(
model_name='testrecord',
name='number',
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='玻璃编号'),
),
]

View File

@ -72,6 +72,7 @@ class TestRecord(CommonADModel):
is_submited = models.BooleanField('是否提交', default=False)
is_midtesting = models.BooleanField('是否子工序检验中', default=False)
remark = models.TextField('备注', default='')
number = models.CharField('玻璃编号', max_length=20, null=True, blank=True)
class TestRecordItem(CommonADModel):

View File

@ -43,10 +43,10 @@ class ContractCreateUpdateSerializer(serializers.ModelSerializer):
class OrderCreateUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = ['customer', 'contract', 'product', 'count', 'delivery_date', 'need_mtest']
fields = ['customer', 'contract', 'product', 'count', 'delivery_date', 'need_mtest', 'number']
def create(self, validated_data):
validated_data['number'] = 'DD' + ranstr(7)
# validated_data['number'] = 'DD' + ranstr(7)
return super().create(validated_data)
class OrderSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializer):

View File

@ -9,6 +9,7 @@ from apps.system.models import User
from apps.wf.models import State, TicketFlow, Transition
from apps.wpm.models import Operation, OperationMaterial, WProduct, WproductFlow, WprouctTicket
from utils.tools import ranstr
from rest_framework.exceptions import ParseError
class WpmService(object):
@classmethod
@ -70,7 +71,10 @@ class WpmService(object):
else:
wproduct.act_state = WProduct.WPR_ACT_STATE_OK
if wproduct.number is None: # 产生半成品编号
wproduct.number = 'WP'+ranstr(7)
if test.number:
wproduct.number = test.number
else:
raise ParseError('请提供玻璃编号')
# 去除ng_sign
if wproduct.ng_sign: