rpj serializer增加rparty, belong_dept
This commit is contained in:
parent
c72548b6f9
commit
a9a36ffd88
|
@ -0,0 +1,28 @@
|
||||||
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
from apps.utils.task import CustomTask
|
||||||
|
from apps.am.models import Area
|
||||||
|
from celery import shared_task
|
||||||
|
from django.core.cache import cache
|
||||||
|
import shapely.geometry
|
||||||
|
|
||||||
|
|
||||||
|
@shared_task(base=CustomTask)
|
||||||
|
def cache_area_info():
|
||||||
|
"""
|
||||||
|
缓存区域信息
|
||||||
|
"""
|
||||||
|
area_list = []
|
||||||
|
for i in Area.objects.filter(type=Area.AREA_TYPE_FIX).exclude(third_info__xx_rail=None):
|
||||||
|
polygon = []
|
||||||
|
for item in i.third_info['xx_rail']['detail']['polygon']['points']:
|
||||||
|
polygon.append([item.x, item.y])
|
||||||
|
poly_context = {'type': 'MULTIPOLYGON',
|
||||||
|
'coordinates': [[area_list]]}
|
||||||
|
area_dict = {
|
||||||
|
'id': i.id,
|
||||||
|
'floor_no': i.third_info['xx_rail']['detail']['floorNo'],
|
||||||
|
'poly_shape': shapely.geometry.asShape(poly_context)
|
||||||
|
}
|
||||||
|
area_list.append(area_dict)
|
||||||
|
cache.set('area_list', area_list, timeout=None)
|
||||||
|
return area_list
|
|
@ -11,7 +11,7 @@ from django.core.cache import cache
|
||||||
import time
|
import time
|
||||||
|
|
||||||
ep_loc_dict = {
|
ep_loc_dict = {
|
||||||
"area": None, # 当前所在区域
|
"area_id": None, # 当前所在区域ID
|
||||||
"time1": None, # 首次在该区域时间戳
|
"time1": None, # 首次在该区域时间戳
|
||||||
"time2": None, # 当前在该区域时间戳
|
"time2": None, # 当前在该区域时间戳
|
||||||
}
|
}
|
||||||
|
@ -142,6 +142,7 @@ class EcmService:
|
||||||
def loc_change(cls, data):
|
def loc_change(cls, data):
|
||||||
blts = TDevice.objects.filter(code=data['userId']).first()
|
blts = TDevice.objects.filter(code=data['userId']).first()
|
||||||
if blts.employee:
|
if blts.employee:
|
||||||
|
# 查询当前所在区域
|
||||||
time2 = int(time.time())
|
time2 = int(time.time())
|
||||||
key_str = f'ep_{blts.employee.id}'
|
key_str = f'ep_{blts.employee.id}'
|
||||||
ep_default_dict = {
|
ep_default_dict = {
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from apps.am.tasks import cache_area_info
|
||||||
from apps.ecm.views import EventCateViewSet, NotifySettingViewSet, EventViewSet, RemindViewSet
|
from apps.ecm.views import EventCateViewSet, NotifySettingViewSet, EventViewSet, RemindViewSet
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
@ -5,6 +6,7 @@ from rest_framework.routers import DefaultRouter
|
||||||
API_BASE_URL = 'api/ecm/'
|
API_BASE_URL = 'api/ecm/'
|
||||||
HTML_BASE_URL = 'ecm/'
|
HTML_BASE_URL = 'ecm/'
|
||||||
|
|
||||||
|
cache_area_info() # 首先缓存区域信息
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register('event_cate', EventCateViewSet, basename='event_cate')
|
router.register('event_cate', EventCateViewSet, basename='event_cate')
|
||||||
router.register('event', EventViewSet, basename='event')
|
router.register('event', EventViewSet, basename='event')
|
||||||
|
|
|
@ -73,6 +73,9 @@ class RpjCreateUpdateSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class RpjListSerializer(CustomModelSerializer):
|
class RpjListSerializer(CustomModelSerializer):
|
||||||
|
rparty_name = serializers.CharField(source='rparty.name', read_only=True)
|
||||||
|
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rpj
|
model = Rpj
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
|
@ -110,6 +110,8 @@ class RpjViewSet(CustomModelViewSet):
|
||||||
create_serializer_class = RpjCreateUpdateSerializer
|
create_serializer_class = RpjCreateUpdateSerializer
|
||||||
update_serializer_class = RpjCreateUpdateSerializer
|
update_serializer_class = RpjCreateUpdateSerializer
|
||||||
serializer_class = RpjListSerializer
|
serializer_class = RpjListSerializer
|
||||||
|
select_related_fields = ['rparty', 'belong_dept']
|
||||||
|
filterset_fields = ['rparty', 'belong_dept']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = super().get_queryset()
|
queryset = super().get_queryset()
|
||||||
|
|
Loading…
Reference in New Issue