employee 增加post

This commit is contained in:
曹前明 2022-07-05 14:37:53 +08:00
parent 1d4c0d4a42
commit aab3f6d63c
8 changed files with 52 additions and 10 deletions

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2.12 on 2022-07-05 06:37
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('system', '0001_initial'),
('hrm', '0002_initial'),
]
operations = [
migrations.AddField(
model_name='employee',
name='post',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.post', verbose_name='所属岗位'),
),
]

View File

@ -1,5 +1,5 @@
from django.db import models
from apps.system.models import User
from apps.system.models import Post, User
from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBModel
@ -39,6 +39,7 @@ class Employee(CommonBModel):
last_check_time = models.DateTimeField('打卡时间', null=True, blank=True)
not_work_remark = models.CharField('当前未打卡说明', null=True, blank=True, max_length=200)
third_info = models.JSONField('三方信息', default=dict, null=False, blank=True) # 主要是定位卡信息
post = models.ForeignKey(Post, verbose_name='所属岗位', on_delete=models.SET_NULL, null=True, blank=True)
class Meta:
verbose_name = '员工补充信息'

View File

@ -16,6 +16,15 @@ from datetime import datetime
from django.conf import settings
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)
class Meta:
model = Employee
fields = ['id', 'type', 'name', 'belong_dept', 'belong_dept_name', 'post', 'post_name']
class EmployeeBaseSerializer(CustomModelSerializer):
def save(self, **kwargs):
if self.validated_data.get('user', None):

View File

@ -11,14 +11,15 @@ def updateEmployee(sender, instance, created, **kwargs):
if not instance.is_superuser and instance.type == 'employee':
ep = Employee.objects.filter(user=instance).first()
if ep:
if ep.belong_dept and ep.belong_dept != instance.belong_dept:
ep.belong_dept = instance.belong_dept
ep.save()
ep.belong_dept = instance.belong_dept
ep.post = instance.posts.all().order_by('sort', 'create_time').first()
ep.save()
else:
Employee.objects.get_or_create(user=instance,
defaults={
"user": instance,
"name": instance.name,
"phone": instance.phone,
"belong_dept": instance.belong_dept
"belong_dept": instance.belong_dept,
"post": instance.posts.all().order_by('sort', 'create_time').first()
})

View File

@ -137,7 +137,7 @@ class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet):
请求日志
"""
perms_map = {'get': 'requestlog.view'}
perms_map = {'get': '*'}
queryset = DrfRequestLog.objects.all()
list_serializer_class = DrfRequestLogSerializer
ordering = ['-requested_at']

View File

@ -349,6 +349,7 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
serializer_class = UserPostSerializer
create_serializer_class = UserPostCreateSerializer
filterset_fields = ['user', 'post', 'dept']
ordering = ['sort', 'create_time']
def perform_create(self, serializer):
with transaction.atomic():

View File

@ -1,6 +1,7 @@
from rest_framework import serializers
from apps.am.models import Area
from apps.hrm.serializers import EmployeeBaseSerializer, EmployeeSimpleSerializer
from apps.third.models import TDevice, Tlog
from apps.utils.serializers import CustomModelSerializer
@ -61,8 +62,9 @@ class TlogSerializer(CustomModelSerializer):
fields = '__all__'
class BltSerializer(serializers.ModelSerializer):
employee_ = EmployeeSimpleSerializer(source='employee', read_only=True)
class BltQuerySerializer(serializers.Serializer):
"""标签复杂查询
"""
areas = serializers.ListField(child=serializers.CharField(), label='区域ID列表')
class Meta:
model = TDevice
fields = ['code', 'obj_cate', 'employee']

View File

@ -58,6 +58,14 @@ class BltViewSet(CustomGenericViewSet):
ret['count_visitor'] = qs.filter(employee__type='visitor').count()
return Response(ret)
@action(methods=['post'], detail=False, perms_map={'post': '*'})
def query(self, request):
"""标签列表复杂查询
标签列表复杂查询
"""
pass
class TDeviceViewSet(ListModelMixin, CustomGenericViewSet):
"""