feat: number_out_last 改为原始sql查询
This commit is contained in:
parent
835c5f78dd
commit
40eb07eb12
|
@ -9,6 +9,7 @@ from apps.mtm.models import Material
|
|||
from rest_framework.exceptions import ParseError
|
||||
from django.db import transaction
|
||||
from apps.wpmw.filters import WprFilter
|
||||
from apps.utils.sql import query_one_dict
|
||||
|
||||
|
||||
class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
||||
|
@ -60,16 +61,29 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu
|
|||
if not prefix:
|
||||
raise ParseError("请传入前缀参数")
|
||||
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()
|
||||
# 使用原始sql
|
||||
query = """
|
||||
SELECT id, number_out FROM wpmw_wpr
|
||||
WHERE number_out ~ %s order by number_out desc limit 1
|
||||
"""
|
||||
pattern = f'^{prefix}[0-9]+$'
|
||||
number_outs = []
|
||||
wpr_qs_last = query_one_dict(query, [pattern])
|
||||
if wpr_qs_last:
|
||||
number_outs.append(wpr_qs_last.number_out)
|
||||
number_outs.append(wpr_qs_last["number_out"])
|
||||
# 查找未出库的记录
|
||||
if with_unsubmit == "yes":
|
||||
mioitemw_last = MIOItemw.objects.filter(
|
||||
number_out__isnull=False, number_out__startswith=prefix).order_by("number_out").last()
|
||||
# mioitemw_last = MIOItemw.objects.filter(
|
||||
# number_out__isnull=False, number_out__startswith=prefix).order_by("number_out").last()
|
||||
query2 = """
|
||||
select mioitemw.id, mioitemw.number_out from inm_mioitemw mioitemw left join inm_mioitem mioitem on mioitem.id = mioitemw.mioitem_id
|
||||
left join inm_mio mio on mio.id = mioitem.mio_id
|
||||
where mio.submit_time is null and mioitemw.number_out ~ %s order by mioitemw.number_out desc limit 1
|
||||
"""
|
||||
mioitemw_last = query_one_dict(query2, [pattern])
|
||||
if mioitemw_last:
|
||||
number_outs.append(mioitemw_last.number_out)
|
||||
number_outs.append(mioitemw_last["number_out"])
|
||||
if number_outs:
|
||||
number_outs.sort()
|
||||
number_out_last = number_outs[-1]
|
||||
|
|
Loading…
Reference in New Issue