用户编辑时更新ep

This commit is contained in:
曹前明 2022-09-21 16:37:11 +08:00
parent e137a7bf39
commit 8896cd0f4b
3 changed files with 27 additions and 1 deletions

View File

@ -478,6 +478,7 @@ def loc_change(data):
ep_loc_dict['time1'] = time2
ep_loc_dict['area_fix_id'] = area_fix['id'] if area_fix else None
cache.set(key_str, ep_loc_dict)
myLogger.info('人员位置:' + str(ep_loc_dict))
return ep_loc_dict

View File

@ -1,6 +1,7 @@
from datetime import datetime, timedelta
from rest_framework.serializers import ModelSerializer
from rest_framework import serializers
from apps.ecm.service import get_ep_default
from apps.hrm.services import HrmService
from apps.utils.fields import MyFilePathField
@ -13,7 +14,7 @@ from django.db import transaction
from apps.third.clients import dhClient
from apps.third.tapis import dhapis
from django.conf import settings
from django.core.cache import cache
from apps.utils.tools import check_phone_e
@ -126,6 +127,7 @@ class EmployeeSerializer(CustomModelSerializer):
class EmployeeDetailSerializer(EmployeeSerializer):
door_range = serializers.SerializerMethodField()
location = serializers.SerializerMethodField()
def get_door_range(self, obj):
third_info = obj.third_info
@ -133,6 +135,13 @@ class EmployeeDetailSerializer(EmployeeSerializer):
if dh_face_card:
_, res = dhClient.request(**dhapis['card_detail'], params={'cardNumber': dh_face_card})
return [res['startDate'], res['endDate']]
def get_location(self, obj):
key_str = 'ep_{}'.format(obj.id)
ep_loc_dict = cache.get_or_set(
key_str, get_ep_default(), timeout=None
)
return ep_loc_dict
class EmployeeNotWorkRemarkSerializer(ModelSerializer):

View File

@ -431,6 +431,22 @@ class UserViewSet(CustomModelViewSet):
# self.request.query_params._mutable = True
# self.request.query_params.setdefault('type', 'employee')
# return super().filter_queryset(queryset)
def perform_update(self, serializer):
instance = serializer.save()
ep = Employee.objects.get_queryset(all=True).filter(user=instance).first()
ep2 = Employee.objects.get_queryset(all=True).filter(phone=instance.phone).first()
if ep:
pass
elif ep2:
ep = ep2
else:
ep = Employee()
ep.user = instance
ep.name = instance.name
ep.phone = instance.phone
ep.type = instance.type
ep.is_deleted = False
ep.save()
def create(self, request, *args, **kwargs):
"""创建用户