From 4913162ff80bdd8b39fc09247f9a636b4ae0ebc3 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 13 Oct 2021 13:22:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=B6=88=E8=80=97=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/pm/views.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/hb_server/apps/pm/views.py b/hb_server/apps/pm/views.py index f77a5a6..81093ac 100644 --- a/hb_server/apps/pm/views.py +++ b/hb_server/apps/pm/views.py @@ -66,15 +66,20 @@ class ResourceViewSet(GenericViewSet): rdata = request.data serializer = self.get_serializer(data=rdata) serializer.is_valid(raise_exception=True) + res_d_list = [] res = [] for i in rdata: materials = InputMaterial.objects.filter(subproduction__product__id=i['id'], - subproduction__is_deleted=False, is_deleted=False, material__type__in=[3,4]).order_by('material__number') - for m in materials: - for x in res: - if x['id'] == m.material.id: - x['count'] = x['count'] + m.count*i['count'] - break + subproduction__is_deleted=False, is_deleted=False, material__type__in=[3,4]).order_by('material__number')\ + .values('material__id', 'material__name', 'material__number', 'material__type', 'count', 'material__count') + l_m = list(materials) + for m in l_m: + if m['material__id'] in res_d_list: + index = res_d_list.index(m['material__id']) + res[index]['count'] = res[index]['count'] + m['count']*i['count'] else: - res.append({'id':m.material.id, 'name':m.material.name, 'type':m.material.type, 'number':m.material.number, 'count':m.count*i['count']}) + res_d_list.append(m['material__id']) + res.append({'id':m['material__id'], 'name':m['material__name'], + 'type':m['material__type'], 'number':m['material__number'], + 'count':m['count']*i['count'], 'inv_count':m['material__count']}) return Response(res)