用户编辑时更新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['time1'] = time2
ep_loc_dict['area_fix_id'] = area_fix['id'] if area_fix else None ep_loc_dict['area_fix_id'] = area_fix['id'] if area_fix else None
cache.set(key_str, ep_loc_dict) cache.set(key_str, ep_loc_dict)
myLogger.info('人员位置:' + str(ep_loc_dict))
return ep_loc_dict return ep_loc_dict

View File

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

View File

@ -431,6 +431,22 @@ class UserViewSet(CustomModelViewSet):
# self.request.query_params._mutable = True # self.request.query_params._mutable = True
# self.request.query_params.setdefault('type', 'employee') # self.request.query_params.setdefault('type', 'employee')
# return super().filter_queryset(queryset) # 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): def create(self, request, *args, **kwargs):
"""创建用户 """创建用户