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