feat: 优化number_out_last
This commit is contained in:
parent
eebc5238ae
commit
06de49f335
|
@ -60,23 +60,37 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu
|
||||||
def number_out_last(self, request, *args, **kwargs):
|
def number_out_last(self, request, *args, **kwargs):
|
||||||
"""获取最新的出库对外编号
|
"""获取最新的出库对外编号
|
||||||
|
|
||||||
获取最新的出库对外编号(get请求传入prefix参数)"""
|
获取最新的出库对外编号(get请求传入prefix参数和with_unsubmit参数,with_unsubmit默认为yes,表示是否包含未出库的记录,prefix为前缀,如'WPR-2023-0)"""
|
||||||
|
from apps.inm.models import MIOItemw
|
||||||
prefix = request.query_params.get("prefix")
|
prefix = request.query_params.get("prefix")
|
||||||
|
with_unsubmit = request.query_params.get("with_unsubmit", "yes")
|
||||||
wpr_qs_last = Wpr.objects.filter(number_out__startswith=prefix).order_by("number_out").last()
|
wpr_qs_last = Wpr.objects.filter(number_out__startswith=prefix).order_by("number_out").last()
|
||||||
|
number_outs = []
|
||||||
if wpr_qs_last:
|
if wpr_qs_last:
|
||||||
number_out = wpr_qs_last.number_out
|
number_outs.append(wpr_qs_last.number_out)
|
||||||
number_int = number_out.lstrip(prefix).lstrip('0')
|
# 查找未出库的记录
|
||||||
return Response({"number_out_last": wpr_qs_last.number_out, "number_out_int_last": number_int})
|
if with_unsubmit == "yes":
|
||||||
|
mioitemw_last = MIOItemw.objects.filter(
|
||||||
|
mioitem__mio__submit_time__isnull=False,
|
||||||
|
number_out__isnull=False, number_out__startswith=prefix).order_by("number_out").last()
|
||||||
|
if mioitemw_last:
|
||||||
|
number_outs.extend(mioitemw_last.number_out)
|
||||||
|
if number_outs:
|
||||||
|
number_outs.sort()
|
||||||
|
number_out_last = number_outs[-1]
|
||||||
|
number_int_last = number_out_last.lstrip(prefix).lstrip('0')
|
||||||
|
return Response({"number_out_last": number_out_last, "number_out_int_last": number_int_last})
|
||||||
else:
|
else:
|
||||||
return Response({"number_out_last": None})
|
return Response({"number_out_last": None})
|
||||||
|
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=WproutListSerializer)
|
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=WproutListSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def assgin_number_out(self, request, *args, **kwargs):
|
def assgin_number_out(self, request, *args, **kwargs):
|
||||||
"""分配出库对外编号
|
"""分配出库对外编号
|
||||||
|
|
||||||
分配出库对外编号"""
|
分配出库对外编号"""
|
||||||
sr = WproutSerializer(data=request.data)
|
sr = WproutListSerializer(data=request.data)
|
||||||
sr.is_valid(raise_exception=True)
|
sr.is_valid(raise_exception=True)
|
||||||
vdata = sr.validated_data
|
vdata = sr.validated_data
|
||||||
number_outs = [i["number_out"] for i in vdata]
|
number_outs = [i["number_out"] for i in vdata]
|
||||||
|
|
Loading…
Reference in New Issue