Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
573f25bce6
|
@ -0,0 +1,4 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||||
|
TokenRefreshView)
|
||||||
|
# Register your models here.
|
|
@ -0,0 +1,7 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class AuthConfig(AppConfig):
|
||||||
|
name = 'apps.auth1'
|
||||||
|
verbose_name = "认证"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
|
@ -0,0 +1,5 @@
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
class LoginSerializer(serializers.Serializer):
|
||||||
|
username = serializers.CharField(label="用户名")
|
||||||
|
password = serializers.CharField(label="密码")
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
|
@ -0,0 +1,12 @@
|
||||||
|
from django.urls import path
|
||||||
|
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||||
|
TokenRefreshView)
|
||||||
|
|
||||||
|
from apps.auth1.views import LoginView, LogoutView, TokenBlackView
|
||||||
|
urlpatterns = [
|
||||||
|
path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||||
|
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||||
|
path('token/black/', TokenBlackView.as_view(), name='token_black'),
|
||||||
|
path('login/', LoginView.as_view(), name='api_login'),
|
||||||
|
path('logout/', LogoutView.as_view(), name='api_logout')
|
||||||
|
]
|
|
@ -0,0 +1,47 @@
|
||||||
|
|
||||||
|
from django.shortcuts import render
|
||||||
|
from rest_framework.views import APIView
|
||||||
|
from rest_framework.response import Response
|
||||||
|
from rest_framework import status
|
||||||
|
from django.contrib.auth import authenticate, login, logout
|
||||||
|
from rest_framework.generics import CreateAPIView
|
||||||
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
|
||||||
|
from apps.auth1.serializers import LoginSerializer
|
||||||
|
# Create your views here.
|
||||||
|
|
||||||
|
class TokenBlackView(APIView):
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs): # 可将token加入黑名单
|
||||||
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class LoginView(CreateAPIView):
|
||||||
|
authentication_classes = []
|
||||||
|
permission_classes = []
|
||||||
|
serializer_class = LoginSerializer
|
||||||
|
|
||||||
|
def create(self, request, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
账户密码登录
|
||||||
|
"""
|
||||||
|
serializer = self.get_serializer(data=request.data)
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
vdata = serializer.validated_data
|
||||||
|
user = authenticate(username = vdata.get('username'),
|
||||||
|
password = vdata.get('password'))
|
||||||
|
if user is not None:
|
||||||
|
login(request, user)
|
||||||
|
return Response()
|
||||||
|
return Response('登录失败', status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
class LogoutView(APIView):
|
||||||
|
authentication_classes = []
|
||||||
|
permission_classes = []
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
退出登录
|
||||||
|
"""
|
||||||
|
logout(request)
|
||||||
|
return Response()
|
|
@ -2,7 +2,7 @@ from django.db.models import base
|
||||||
from rest_framework import urlpatterns
|
from rest_framework import urlpatterns
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
from apps.develop.views import CleanDataView, UpdateCuttingView, UpdateFIFOItem, UpdateLastTestResult, UpdateSpg
|
from apps.develop.views import CleanDataView, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateLastTestResult, UpdateSpg
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('cleandata/', CleanDataView.as_view()),
|
path('cleandata/', CleanDataView.as_view()),
|
||||||
|
@ -10,6 +10,7 @@ urlpatterns = [
|
||||||
path('update_last_result/', UpdateLastTestResult.as_view()),
|
path('update_last_result/', UpdateLastTestResult.as_view()),
|
||||||
path('update_last_result/', UpdateLastTestResult.as_view()),
|
path('update_last_result/', UpdateLastTestResult.as_view()),
|
||||||
path('update_fifoitem/', UpdateFIFOItem.as_view()),
|
path('update_fifoitem/', UpdateFIFOItem.as_view()),
|
||||||
path('update_spg/', UpdateSpg.as_view())
|
path('update_spg/', UpdateSpg.as_view()),
|
||||||
|
path('update_equip_state/', UpdateEquipState.as_view())
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ from apps.sam.models import Order
|
||||||
from apps.wf.models import Ticket
|
from apps.wf.models import Ticket
|
||||||
from apps.wpm.models import Operation, OperationMaterial, WProduct, WproductFlow
|
from apps.wpm.models import Operation, OperationMaterial, WProduct, WproductFlow
|
||||||
from apps.wpm.services import WpmServies
|
from apps.wpm.services import WpmServies
|
||||||
|
from apps.em.tasks import update_equip_state_by_next_check_date
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
class CleanDataView(APIView):
|
class CleanDataView(APIView):
|
||||||
|
@ -91,3 +92,11 @@ class UpdateSpg(APIView):
|
||||||
for i in SubProductionPlan.objects.filter(subproduction__process__id=1):
|
for i in SubProductionPlan.objects.filter(subproduction__process__id=1):
|
||||||
WpmServies.update_subproduction_progress_main(sp=i)
|
WpmServies.update_subproduction_progress_main(sp=i)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateEquipState(APIView):
|
||||||
|
permission_classes = [IsAdminUser]
|
||||||
|
|
||||||
|
def post(self, request, format=None):
|
||||||
|
update_equip_state_by_next_check_date()
|
||||||
|
return Response()
|
|
@ -0,0 +1,13 @@
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
|
from celery import shared_task
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from apps.em.models import Equipment
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task
|
||||||
|
def update_equip_state_by_next_check_date():
|
||||||
|
Equipment.objects.filter(next_check_date__lt=timezone.now()).update(
|
||||||
|
state = Equipment.EQUIP_STATE_DISABLE
|
||||||
|
)
|
|
@ -7,4 +7,4 @@ class UserFilter(DynamicFieldsFilterMixin, filters.FilterSet):
|
||||||
name = filters.CharFilter(field_name='name', lookup_expr='contains')
|
name = filters.CharFilter(field_name='name', lookup_expr='contains')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ['name', 'is_active']
|
fields = ['name', 'is_active', 'is_atwork']
|
|
@ -48,12 +48,6 @@ class TaskList(APIView):
|
||||||
tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.')))
|
tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.')))
|
||||||
return Response(tasks)
|
return Response(tasks)
|
||||||
|
|
||||||
class LogoutView(APIView):
|
|
||||||
permission_classes = []
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs): # 可将token加入黑名单
|
|
||||||
return Response(status=status.HTTP_200_OK)
|
|
||||||
|
|
||||||
class PTaskViewSet(OptimizationMixin, ModelViewSet):
|
class PTaskViewSet(OptimizationMixin, ModelViewSet):
|
||||||
perms_map = {'get': '*', 'post': 'ptask_create',
|
perms_map = {'get': '*', 'post': 'ptask_create',
|
||||||
'put': 'ptask_update', 'delete': 'ptask_delete'}
|
'put': 'ptask_update', 'delete': 'ptask_delete'}
|
||||||
|
|
|
@ -48,6 +48,7 @@ INSTALLED_APPS = [
|
||||||
'simple_history',
|
'simple_history',
|
||||||
'apps.system',
|
'apps.system',
|
||||||
'apps.monitor',
|
'apps.monitor',
|
||||||
|
'apps.auth1',
|
||||||
'apps.pum',
|
'apps.pum',
|
||||||
'apps.em',
|
'apps.em',
|
||||||
'apps.hrm',
|
'apps.hrm',
|
||||||
|
|
|
@ -13,7 +13,7 @@ Including another URLconf
|
||||||
1. Import the include() function: from django.urls import include, path
|
1. Import the include() function: from django.urls import include, path
|
||||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
"""
|
"""
|
||||||
from apps.system.views import FileViewSet, LogoutView
|
from apps.system.views import FileViewSet
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
@ -23,8 +23,6 @@ from drf_yasg import openapi
|
||||||
from drf_yasg.views import get_schema_view
|
from drf_yasg.views import get_schema_view
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
from rest_framework.documentation import include_docs_urls
|
from rest_framework.documentation import include_docs_urls
|
||||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
|
||||||
TokenRefreshView)
|
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
from utils.view import GenSignature, UpdateDevelop
|
from utils.view import GenSignature, UpdateDevelop
|
||||||
|
|
||||||
|
@ -53,12 +51,10 @@ urlpatterns = [
|
||||||
path('api/redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
|
path('api/redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
|
||||||
|
|
||||||
# api
|
# api
|
||||||
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
|
||||||
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
|
||||||
path('api/token/black/', LogoutView.as_view(), name='token_black'),
|
|
||||||
path('api/file/', include(router.urls)),
|
path('api/file/', include(router.urls)),
|
||||||
path('api/system/', include('apps.system.urls')),
|
path('api/system/', include('apps.system.urls')),
|
||||||
path('api/monitor/', include('apps.monitor.urls')),
|
path('api/monitor/', include('apps.monitor.urls')),
|
||||||
|
path('api/auth/', include('apps.auth1.urls')),
|
||||||
path('api/pum/', include('apps.pum.urls')),
|
path('api/pum/', include('apps.pum.urls')),
|
||||||
path('api/em/', include('apps.em.urls')),
|
path('api/em/', include('apps.em.urls')),
|
||||||
path('api/hrm/', include('apps.hrm.urls')),
|
path('api/hrm/', include('apps.hrm.urls')),
|
||||||
|
|
Loading…
Reference in New Issue