fix: 工单流水号bug

This commit is contained in:
caoqianming 2023-04-03 14:53:40 +08:00
parent 4c4e637cc3
commit 96c12108e0
3 changed files with 27 additions and 6 deletions

View File

@ -1,11 +1,12 @@
from django.urls import path, include from django.urls import path, include
from apps.develop.views import BackupDatabase, BackupMedia, ReloadClientGit, ReloadServerGit, ReloadServerOnly, TestViewSet from apps.develop.views import BackupDatabase, BackupMedia, ReloadClientGit, ReloadServerGit, ReloadServerOnly, TestViewSet, CorrectViewSet
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
API_BASE_URL = 'api/develop/' API_BASE_URL = 'api/develop/'
HTML_BASE_URL = 'develop/' HTML_BASE_URL = 'develop/'
router = DefaultRouter() router = DefaultRouter()
router.register('test', TestViewSet, basename='api_test') router.register('test', TestViewSet, basename='api_test')
router.register('correct', CorrectViewSet, basename='correct')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL + 'reload_server_git/', ReloadServerGit.as_view()), path(API_BASE_URL + 'reload_server_git/', ReloadServerGit.as_view()),

View File

@ -35,8 +35,7 @@ from apps.utils.decorators import auto_log, idempotent
class ReloadServerGit(APIView): class ReloadServerGit(APIView):
authentication_classes = [] permission_classes = [IsAdminUser]
permission_classes = []
def post(self, request): def post(self, request):
""" """
@ -55,8 +54,7 @@ class ReloadServerGit(APIView):
class ReloadClientGit(APIView): class ReloadClientGit(APIView):
authentication_classes = [] permission_classes = [IsAdminUser]
permission_classes = []
def post(self, request): def post(self, request):
""" """
@ -119,6 +117,28 @@ class BackupMedia(APIView):
return Response() return Response()
class CorrectViewSet(CustomGenericViewSet):
permission_classes = [IsAdminUser]
@action(methods=['post'], detail=False, serializer_class=Serializer)
def ticket_sn(self, request, pk=None):
"""矫正工单流水号
矫正工单流水号
"""
from apps.wf.models import Ticket
from apps.wf.services import WfService
from django.utils.timezone import localtime
from apps.opm.models import Opl
for i in Ticket.objects.get_queryset(all=True).order_by('create_time'):
sn = WfService.get_ticket_sn(i.workflow, localtime(i.create_time))
Ticket.objects.filter(id=i.id).update(sn=sn)
if hasattr(i, 'opl_ticket'):
opl = getattr(i, 'opl_ticket')
Opl.objects.filter(id=opl.id).update(number=sn)
return Response()
class TestViewSet(CustomGenericViewSet): class TestViewSet(CustomGenericViewSet):
authentication_classes = () authentication_classes = ()
permission_classes = () permission_classes = ()

View File

@ -105,7 +105,7 @@ class WfService(object):
now = datetime.now() now = datetime.now()
today = str(now)[:10]+' 00:00:00' today = str(now)[:10]+' 00:00:00'
ticket_day_count_new = Ticket.objects.get_queryset(all=True).filter( ticket_day_count_new = Ticket.objects.get_queryset(all=True).filter(
create_time__gte=today, create_time__lte=now, workflow=workflow).count()+1 create_time__gte=today, create_time__lte=now, workflow=workflow).count()
return '%s_%04d%02d%02d%04d' % (workflow.sn_prefix, now.year, now.month, now.day, ticket_day_count_new) return '%s_%04d%02d%02d%04d' % (workflow.sn_prefix, now.year, now.month, now.day, ticket_day_count_new)
@classmethod @classmethod