From c4c6b48164f73a4997f8bbd091bce199126d8048 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 25 Jan 2022 08:55:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0em=20tasks=20update=5Fequip?= =?UTF-8?q?=5Fstate=5Fby=5Fnext=5Fcheck=5Fdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/develop/urls.py | 5 +++-- hb_server/apps/develop/views.py | 9 +++++++++ hb_server/apps/em/tasks.py | 13 +++++++++++++ hb_server/apps/system/filters.py | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 hb_server/apps/em/tasks.py diff --git a/hb_server/apps/develop/urls.py b/hb_server/apps/develop/urls.py index 79f8f04..22621ac 100644 --- a/hb_server/apps/develop/urls.py +++ b/hb_server/apps/develop/urls.py @@ -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()) ] diff --git a/hb_server/apps/develop/views.py b/hb_server/apps/develop/views.py index f6a52fc..c1b5b84 100644 --- a/hb_server/apps/develop/views.py +++ b/hb_server/apps/develop/views.py @@ -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() \ No newline at end of file diff --git a/hb_server/apps/em/tasks.py b/hb_server/apps/em/tasks.py new file mode 100644 index 0000000..61ca3de --- /dev/null +++ b/hb_server/apps/em/tasks.py @@ -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 + ) \ No newline at end of file diff --git a/hb_server/apps/system/filters.py b/hb_server/apps/system/filters.py index 22ef179..cd3fde7 100644 --- a/hb_server/apps/system/filters.py +++ b/hb_server/apps/system/filters.py @@ -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'] \ No newline at end of file + fields = ['name', 'is_active', 'is_atwork'] \ No newline at end of file