Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop

This commit is contained in:
shijing 2022-01-25 09:54:49 +08:00
commit 573f25bce6
16 changed files with 110 additions and 15 deletions

View File

View File

@ -0,0 +1,4 @@
from django.contrib import admin
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
# Register your models here.

View File

@ -0,0 +1,7 @@
from django.apps import AppConfig
class AuthConfig(AppConfig):
name = 'apps.auth1'
verbose_name = "认证"

View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

View File

@ -0,0 +1,5 @@
from rest_framework import serializers
class LoginSerializer(serializers.Serializer):
username = serializers.CharField(label="用户名")
password = serializers.CharField(label="密码")

View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@ -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')
]

View File

@ -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()

View File

@ -2,7 +2,7 @@ from django.db.models import base
from rest_framework import urlpatterns
from django.urls import path, include
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 = [
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_fifoitem/', UpdateFIFOItem.as_view()),
path('update_spg/', UpdateSpg.as_view())
path('update_spg/', UpdateSpg.as_view()),
path('update_equip_state/', UpdateEquipState.as_view())
]

View File

@ -11,6 +11,7 @@ from apps.sam.models import Order
from apps.wf.models import Ticket
from apps.wpm.models import Operation, OperationMaterial, WProduct, WproductFlow
from apps.wpm.services import WpmServies
from apps.em.tasks import update_equip_state_by_next_check_date
# Create your views here.
class CleanDataView(APIView):
@ -91,3 +92,11 @@ class UpdateSpg(APIView):
for i in SubProductionPlan.objects.filter(subproduction__process__id=1):
WpmServies.update_subproduction_progress_main(sp=i)
return Response()
class UpdateEquipState(APIView):
permission_classes = [IsAdminUser]
def post(self, request, format=None):
update_equip_state_by_next_check_date()
return Response()

View File

@ -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
)

View File

@ -7,4 +7,4 @@ class UserFilter(DynamicFieldsFilterMixin, filters.FilterSet):
name = filters.CharFilter(field_name='name', lookup_expr='contains')
class Meta:
model = User
fields = ['name', 'is_active']
fields = ['name', 'is_active', 'is_atwork']

View File

@ -48,12 +48,6 @@ class TaskList(APIView):
tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.')))
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):
perms_map = {'get': '*', 'post': 'ptask_create',
'put': 'ptask_update', 'delete': 'ptask_delete'}

View File

@ -48,6 +48,7 @@ INSTALLED_APPS = [
'simple_history',
'apps.system',
'apps.monitor',
'apps.auth1',
'apps.pum',
'apps.em',
'apps.hrm',

View File

@ -13,7 +13,7 @@ Including another URLconf
1. Import the include() function: from django.urls import include, path
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.urls.static import static
from django.contrib import admin
@ -23,8 +23,6 @@ from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import routers
from rest_framework.documentation import include_docs_urls
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
from django.views.generic import TemplateView
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'),
# 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/system/', include('apps.system.urls')),
path('api/monitor/', include('apps.monitor.urls')),
path('api/auth/', include('apps.auth1.urls')),
path('api/pum/', include('apps.pum.urls')),
path('api/em/', include('apps.em.urls')),
path('api/hrm/', include('apps.hrm.urls')),