diff --git a/apps/develop/urls.py b/apps/develop/urls.py index 096b3e1e..ddbc6380 100755 --- a/apps/develop/urls.py +++ b/apps/develop/urls.py @@ -1,11 +1,12 @@ 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 API_BASE_URL = 'api/develop/' HTML_BASE_URL = 'develop/' router = DefaultRouter() router.register('test', TestViewSet, basename='api_test') +router.register('correct', CorrectViewSet, basename='correct') urlpatterns = [ path(API_BASE_URL + 'reload_server_git/', ReloadServerGit.as_view()), diff --git a/apps/develop/views.py b/apps/develop/views.py index 6481f5d6..01670a4c 100755 --- a/apps/develop/views.py +++ b/apps/develop/views.py @@ -35,8 +35,7 @@ from apps.utils.decorators import auto_log, idempotent class ReloadServerGit(APIView): - authentication_classes = [] - permission_classes = [] + permission_classes = [IsAdminUser] def post(self, request): """ @@ -55,8 +54,7 @@ class ReloadServerGit(APIView): class ReloadClientGit(APIView): - authentication_classes = [] - permission_classes = [] + permission_classes = [IsAdminUser] def post(self, request): """ @@ -119,6 +117,28 @@ class BackupMedia(APIView): 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): authentication_classes = () permission_classes = () diff --git a/apps/wf/services.py b/apps/wf/services.py index 0864efdc..ec3c6a7c 100755 --- a/apps/wf/services.py +++ b/apps/wf/services.py @@ -105,7 +105,7 @@ class WfService(object): now = datetime.now() today = str(now)[:10]+' 00:00:00' 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) @classmethod