rpj serializer增加rparty, belong_dept

This commit is contained in:
曹前明 2022-06-28 09:24:36 +08:00
parent c72548b6f9
commit a9a36ffd88
5 changed files with 37 additions and 1 deletions

View File

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

View File

@ -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 = {

View File

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

View File

@ -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__'

View File

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