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):