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
|
||||
|
||||
ep_loc_dict = {
|
||||
"area": None, # 当前所在区域
|
||||
"area_id": None, # 当前所在区域ID
|
||||
"time1": None, # 首次在该区域时间戳
|
||||
"time2": None, # 当前在该区域时间戳
|
||||
}
|
||||
|
@ -142,6 +142,7 @@ class EcmService:
|
|||
def loc_change(cls, data):
|
||||
blts = TDevice.objects.filter(code=data['userId']).first()
|
||||
if blts.employee:
|
||||
# 查询当前所在区域
|
||||
time2 = int(time.time())
|
||||
key_str = f'ep_{blts.employee.id}'
|
||||
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 django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
@ -5,6 +6,7 @@ from rest_framework.routers import DefaultRouter
|
|||
API_BASE_URL = 'api/ecm/'
|
||||
HTML_BASE_URL = 'ecm/'
|
||||
|
||||
cache_area_info() # 首先缓存区域信息
|
||||
router = DefaultRouter()
|
||||
router.register('event_cate', EventCateViewSet, basename='event_cate')
|
||||
router.register('event', EventViewSet, basename='event')
|
||||
|
|
|
@ -73,6 +73,9 @@ class RpjCreateUpdateSerializer(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:
|
||||
model = Rpj
|
||||
fields = '__all__'
|
||||
|
|
|
@ -110,6 +110,8 @@ class RpjViewSet(CustomModelViewSet):
|
|||
create_serializer_class = RpjCreateUpdateSerializer
|
||||
update_serializer_class = RpjCreateUpdateSerializer
|
||||
serializer_class = RpjListSerializer
|
||||
select_related_fields = ['rparty', 'belong_dept']
|
||||
filterset_fields = ['rparty', 'belong_dept']
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
|
|
Loading…
Reference in New Issue