diff --git a/apps/wf/services.py b/apps/wf/services.py index f3b3754a..0864efdc 100755 --- a/apps/wf/services.py +++ b/apps/wf/services.py @@ -6,7 +6,7 @@ from apps.system.models import Dept, User from apps.wf.models import CustomField, State, Ticket, TicketFlow, Transition, Workflow from rest_framework.exceptions import APIException, PermissionDenied, ValidationError from django.utils import timezone -from datetime import timedelta +from datetime import timedelta, datetime import random from apps.utils.queryset import get_parent_queryset from apps.wf.tasks import run_task @@ -97,15 +97,15 @@ class WfService(object): return Transition.objects.filter(**kwargs).all() @classmethod - def get_ticket_sn(cls, workflow: Workflow): + def get_ticket_sn(cls, workflow: Workflow, now: str = ''): """ 生成工单流水号 """ - now = timezone.now() + if now == '': + now = datetime.now() today = str(now)[:10]+' 00:00:00' - next_day = str(now+timedelta(days=1))[:10]+' 00:00:00' - ticket_day_count_new = Ticket.objects.filter( - create_time__gte=today, create_time__lte=next_day, workflow=workflow).count()+1 + ticket_day_count_new = Ticket.objects.get_queryset(all=True).filter( + create_time__gte=today, create_time__lte=now, workflow=workflow).count()+1 return '%s_%04d%02d%02d%04d' % (workflow.sn_prefix, now.year, now.month, now.day, ticket_day_count_new) @classmethod