From ef95b3c51ff26d14d4ddea5a31e54304a9ee4fcc Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 9 May 2023 09:46:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=AF=E8=BF=94=E5=9B=9E=E6=9B=B4=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E7=9A=84=E5=AE=9A=E4=BD=8D=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ecm/service.py | 2 ++ apps/hrm/serializers.py | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/ecm/service.py b/apps/ecm/service.py index cabaf5fd..7cb27cee 100644 --- a/apps/ecm/service.py +++ b/apps/ecm/service.py @@ -66,6 +66,7 @@ def get_ep_default(): """ return { 'area_fix_id': None, # 当前所在固定区域ID + 'area_fix_name': None, # 当前所在固定区域Name 'area_temp_id': None, # 当前所在临时区域ID 'xx_detail': {}, # 寻息定位的详细信息 'time0': None, # 定位首次出现时间戳 @@ -440,6 +441,7 @@ def loc_change(data): else: ep_loc_dict['time1'] = time2 ep_loc_dict['area_fix_id'] = area_fix['id'] if area_fix else None + ep_loc_dict['area_fix_name'] = area_fix.get('name', None) if area_fix else None cache.set(key_str, ep_loc_dict, timeout=None) return ep_loc_dict diff --git a/apps/hrm/serializers.py b/apps/hrm/serializers.py index 3f374e15..5ea21938 100755 --- a/apps/hrm/serializers.py +++ b/apps/hrm/serializers.py @@ -23,11 +23,15 @@ from apps.am.models import Area class EmployeeSimpleSerializer(CustomModelSerializer): belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) post_name = serializers.CharField(source='post.name', read_only=True) + location = serializers.SerializerMethodField() class Meta: model = Employee fields = ['id', 'type', 'name', 'belong_dept', 'belong_dept_name', 'post', 'post_name', 'photo', 'third_info', 'number', 'id_number'] + def get_location(self, obj): + key_str = 'ep_{}'.format(obj.id) + return cache.get(key_str, None) # class EmployeeBaseSerializer(CustomModelSerializer): # def save(self, **kwargs): @@ -164,11 +168,7 @@ class EmployeeDetailSerializer(EmployeeSerializer): def get_location(self, obj): key_str = 'ep_{}'.format(obj.id) - ep_loc_dict = cache.get(key_str, None) - if ep_loc_dict: - area_fix_id = ep_loc_dict.get('area_fix_id', None) - ep_loc_dict['area_fix_name'] = Area.objects.get(id=area_fix_id).name if area_fix_id else None - return ep_loc_dict + return cache.get(key_str, None) class EmployeeNotWorkRemarkSerializer(ModelSerializer):