检测bug
This commit is contained in:
parent
acad79288d
commit
3df4c68f47
|
@ -1,6 +1,6 @@
|
|||
from rest_framework import serializers, exceptions
|
||||
from rest_framework.serializers import ModelSerializer
|
||||
from apps.inm.models import FIFO, FIFOItem, MaterialBatch, WareHouse
|
||||
from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse
|
||||
from apps.inm.signals import update_inm
|
||||
from apps.mtm.models import Material, RecordForm, Step
|
||||
from apps.mtm.serializers import MaterialSimpleSerializer, StepSimpleSerializer
|
||||
|
@ -18,6 +18,8 @@ class PickDetailSerializer(serializers.Serializer):
|
|||
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
||||
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
||||
pick_count = serializers.IntegerField(label="领料数量", required=False)
|
||||
iproducts = serializers.ListField(child=serializers.PrimaryKeyRelatedField(queryset=IProduct.objects.all()), label='库存半成品ID',
|
||||
required=False)
|
||||
|
||||
class PickSerializer(serializers.Serializer):
|
||||
subproduction_plan=serializers.PrimaryKeyRelatedField(queryset=SubProductionPlan.objects.all(), label="子计划ID")
|
||||
|
@ -38,16 +40,33 @@ class PickSerializer(serializers.Serializer):
|
|||
# except:
|
||||
# raise exceptions.ValidationError('物料不存在')
|
||||
# 创建出库记录
|
||||
|
||||
with transaction.atomic():
|
||||
fifo = FIFO.objects.create(type=FIFO.FIFO_TYPE_DO_OUT, inout_date=timezone.now(), create_by=self.context['request'].user)
|
||||
for i in picks:
|
||||
# 更新出库详情
|
||||
i['count'] = i.pop('pick_count', 0)
|
||||
# 是否勾选每一个
|
||||
if 'iproducts' in i and len(i['iproducts'])>0:
|
||||
i['count'] = len(i['iproducts'])
|
||||
isLowLevel = True
|
||||
if i['count']>0:
|
||||
i['fifo'] = fifo
|
||||
i['is_testok'] = True # 默认检测合格
|
||||
i['subproduction_plan'] = sp
|
||||
FIFOItem.objects.create(**i)
|
||||
fifoitem = FIFOItem.objects.create(**i)
|
||||
# 创建再下一个层级
|
||||
if isLowLevel:
|
||||
mls = []
|
||||
for m in i['iproducts']:
|
||||
ml = {}
|
||||
ml['material'] = m.material
|
||||
ml['number'] = m.number
|
||||
ml['wproduct'] = m.wproduct
|
||||
ml['fifoitem'] = fifoitem
|
||||
mls.append(FIFOItemProduct(**ml))
|
||||
FIFOItemProduct.objects.bulk_create(mls)
|
||||
|
||||
# 更新车间物料
|
||||
wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \
|
||||
subproduction_plan=sp,defaults={
|
||||
|
@ -62,6 +81,12 @@ class PickSerializer(serializers.Serializer):
|
|||
spp = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=1)
|
||||
spp.count_pick = spp.count_pick + i['count']
|
||||
spp.save()
|
||||
# 更新半成品表
|
||||
wproducts = WProduct.objects.filter(pk__in=[x.wproduct for x in i['iproducts']])
|
||||
first_step = Step.objects.get(pk=sp.steps[0].id)
|
||||
wproducts.update(p_state=first_step, is_executed=False,
|
||||
act_state=WProduct.WPR_ACT_STATE_DOING, is_hidden=False, warehouse=None,
|
||||
subproduction_plan=sp, production_plan=sp.production_plan)
|
||||
sp.is_picked=True
|
||||
sp.state = 3 #生产中
|
||||
sp.state_date_real = timezone.now() #实际开工日期
|
||||
|
|
|
@ -168,7 +168,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
|||
wproduct.save()
|
||||
# 更新子计划状态
|
||||
# 获取该子计划主产品数, 更新进度
|
||||
main_count = WProduct.objects.filter(subproduction_plan=wproduct.subproduction_plan, act_stae=WProduct.WPR_ACT_STATE_OK).count()
|
||||
main_count = WProduct.objects.filter(subproduction_plan=wproduct.subproduction_plan, act_state=WProduct.WPR_ACT_STATE_OK).count()
|
||||
instance = SubProductionProgress.objects.get(subproduction_plan=wproduct.subproduction_plan,
|
||||
is_main=True, type=SubprodctionMaterial.SUB_MA_TYPE_OUT)
|
||||
instance.count_real = main_count
|
||||
|
|
Loading…
Reference in New Issue