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 rest_framework.exceptions import ParseError
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from apps.wpmw.filters import WprFilter
|
from apps.wpmw.filters import WprFilter
|
||||||
|
from apps.utils.sql import query_one_dict
|
||||||
|
|
||||||
|
|
||||||
class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, CustomGenericViewSet):
|
||||||
|
@ -60,16 +61,29 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu
|
||||||
if not prefix:
|
if not prefix:
|
||||||
raise ParseError("请传入前缀参数")
|
raise ParseError("请传入前缀参数")
|
||||||
with_unsubmit = request.query_params.get("with_unsubmit", "yes")
|
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 = []
|
number_outs = []
|
||||||
|
wpr_qs_last = query_one_dict(query, [pattern])
|
||||||
if wpr_qs_last:
|
if wpr_qs_last:
|
||||||
number_outs.append(wpr_qs_last.number_out)
|
number_outs.append(wpr_qs_last["number_out"])
|
||||||
# 查找未出库的记录
|
# 查找未出库的记录
|
||||||
if with_unsubmit == "yes":
|
if with_unsubmit == "yes":
|
||||||
mioitemw_last = MIOItemw.objects.filter(
|
# mioitemw_last = MIOItemw.objects.filter(
|
||||||
number_out__isnull=False, number_out__startswith=prefix).order_by("number_out").last()
|
# 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:
|
if mioitemw_last:
|
||||||
number_outs.append(mioitemw_last.number_out)
|
number_outs.append(mioitemw_last["number_out"])
|
||||||
if number_outs:
|
if number_outs:
|
||||||
number_outs.sort()
|
number_outs.sort()
|
||||||
number_out_last = number_outs[-1]
|
number_out_last = number_outs[-1]
|
||||||
|
|
Loading…
Reference in New Issue