检测bug
This commit is contained in:
parent
acad79288d
commit
3df4c68f47
|
|
@ -1,6 +1,6 @@
|
||||||
from rest_framework import serializers, exceptions
|
from rest_framework import serializers, exceptions
|
||||||
from rest_framework.serializers import ModelSerializer
|
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.inm.signals import update_inm
|
||||||
from apps.mtm.models import Material, RecordForm, Step
|
from apps.mtm.models import Material, RecordForm, Step
|
||||||
from apps.mtm.serializers import MaterialSimpleSerializer, StepSimpleSerializer
|
from apps.mtm.serializers import MaterialSimpleSerializer, StepSimpleSerializer
|
||||||
|
|
@ -18,6 +18,8 @@ class PickDetailSerializer(serializers.Serializer):
|
||||||
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
batch = serializers.CharField(label='物料批次', allow_blank=True)
|
||||||
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
warehouse = serializers.PrimaryKeyRelatedField(queryset=WareHouse.objects.all(), label="仓库ID")
|
||||||
pick_count = serializers.IntegerField(label="领料数量", required=False)
|
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):
|
class PickSerializer(serializers.Serializer):
|
||||||
subproduction_plan=serializers.PrimaryKeyRelatedField(queryset=SubProductionPlan.objects.all(), label="子计划ID")
|
subproduction_plan=serializers.PrimaryKeyRelatedField(queryset=SubProductionPlan.objects.all(), label="子计划ID")
|
||||||
|
|
@ -38,16 +40,33 @@ class PickSerializer(serializers.Serializer):
|
||||||
# except:
|
# except:
|
||||||
# raise exceptions.ValidationError('物料不存在')
|
# raise exceptions.ValidationError('物料不存在')
|
||||||
# 创建出库记录
|
# 创建出库记录
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
fifo = FIFO.objects.create(type=FIFO.FIFO_TYPE_DO_OUT, inout_date=timezone.now(), create_by=self.context['request'].user)
|
fifo = FIFO.objects.create(type=FIFO.FIFO_TYPE_DO_OUT, inout_date=timezone.now(), create_by=self.context['request'].user)
|
||||||
for i in picks:
|
for i in picks:
|
||||||
# 更新出库详情
|
# 更新出库详情
|
||||||
i['count'] = i.pop('pick_count', 0)
|
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:
|
if i['count']>0:
|
||||||
i['fifo'] = fifo
|
i['fifo'] = fifo
|
||||||
i['is_testok'] = True # 默认检测合格
|
i['is_testok'] = True # 默认检测合格
|
||||||
i['subproduction_plan'] = sp
|
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'], \
|
wm, _ = WMaterial.objects.get_or_create(material=i['material'], batch=i['batch'], \
|
||||||
subproduction_plan=sp,defaults={
|
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 = SubProductionProgress.objects.get(material=i['material'], subproduction_plan=sp, type=1)
|
||||||
spp.count_pick = spp.count_pick + i['count']
|
spp.count_pick = spp.count_pick + i['count']
|
||||||
spp.save()
|
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.is_picked=True
|
||||||
sp.state = 3 #生产中
|
sp.state = 3 #生产中
|
||||||
sp.state_date_real = timezone.now() #实际开工日期
|
sp.state_date_real = timezone.now() #实际开工日期
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
|
||||||
wproduct.save()
|
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,
|
instance = SubProductionProgress.objects.get(subproduction_plan=wproduct.subproduction_plan,
|
||||||
is_main=True, type=SubprodctionMaterial.SUB_MA_TYPE_OUT)
|
is_main=True, type=SubprodctionMaterial.SUB_MA_TYPE_OUT)
|
||||||
instance.count_real = main_count
|
instance.count_real = main_count
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue