employee 增加post
This commit is contained in:
parent
1d4c0d4a42
commit
aab3f6d63c
|
@ -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='所属岗位'),
|
||||
),
|
||||
]
|
|
@ -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 = '员工补充信息'
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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()
|
||||
})
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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():
|
||||
|
|
|
@ -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']
|
|
@ -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):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue