employee字段修改

This commit is contained in:
caoqianming 2022-01-26 13:52:14 +08:00
parent 4139ef91c3
commit a5494e8509
5 changed files with 62 additions and 12 deletions

View File

@ -1,5 +1,6 @@
from django_filters import rest_framework as filters from django_filters import rest_framework as filters
from apps.hrm.models import ClockRecord from apps.hrm.models import ClockRecord, Employee
from utils.mixins import DynamicFieldsFilterMixin
class ClockRecordFilterSet(filters.FilterSet): class ClockRecordFilterSet(filters.FilterSet):
create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte') create_time_start = filters.DateFilter(field_name="create_time", lookup_expr='gte')
@ -7,3 +8,9 @@ class ClockRecordFilterSet(filters.FilterSet):
class Meta: class Meta:
model = ClockRecord model = ClockRecord
fields = ['create_by', 'create_time_start', 'create_time_end'] fields = ['create_by', 'create_time_start', 'create_time_end']
class EmployeeFilterSet(DynamicFieldsFilterMixin, filters.FilterSet):
class Meta:
model = Employee
fields = ['job_state']

View File

@ -0,0 +1,37 @@
# Generated by Django 3.2.9 on 2022-01-26 05:51
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('hrm', '0004_clockrecord'),
]
operations = [
migrations.RenameField(
model_name='employee',
old_name='birthdate',
new_name='birthday',
),
migrations.RenameField(
model_name='employee',
old_name='ID_number',
new_name='id_number',
),
migrations.RenameField(
model_name='employee',
old_name='jobstate',
new_name='job_state',
),
migrations.RenameField(
model_name='employee',
old_name='academic',
new_name='qualification',
),
migrations.RemoveField(
model_name='employee',
name='job',
),
]

View File

@ -14,20 +14,21 @@ class Employee(CommonAModel):
""" """
员工信息 员工信息
""" """
JOB_ON = 1
JOB_OFF = 2
jobstate_choices = ( jobstate_choices = (
(1, '在职'), (JOB_ON, '在职'),
(2, '离职'), (JOB_OFF, '离职'),
) )
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee_user') user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee_user')
number = models.CharField('人员编号', max_length=50,null=True, blank=True, unique=True) number = models.CharField('人员编号', max_length=50,null=True, blank=True, unique=True)
photo = models.CharField('证件照', max_length=1000, null=True, blank=True) photo = models.CharField('证件照', max_length=1000, null=True, blank=True)
ID_number = models.CharField('身份证号', max_length=100, null=True, blank=True) id_number = models.CharField('身份证号', max_length=100, null=True, blank=True)
gender = models.CharField('性别', max_length=10, default='') gender = models.CharField('性别', max_length=10, default='')
signature = models.CharField('签名图片', max_length=200, null=True, blank=True) signature = models.CharField('签名图片', max_length=200, null=True, blank=True)
birthdate = models.DateField('出生年月', null=True, blank=True) birthday = models.DateField('出生年月', null=True, blank=True)
academic = models.CharField('学历', max_length=50, null=True, blank=True) qualification = models.CharField('学历', max_length=50, null=True, blank=True)
jobstate = models.IntegerField('在职状态', choices=jobstate_choices, default=1) job_state = models.IntegerField('在职状态', choices=jobstate_choices, default=1)
job = models.ForeignKey(Position, null=True, blank=True, on_delete=models.SET_NULL, verbose_name='岗位')
face_data = models.JSONField('人脸识别数据', null=True, blank=True) face_data = models.JSONField('人脸识别数据', null=True, blank=True)
class Meta: class Meta:
verbose_name = '员工补充信息' verbose_name = '员工补充信息'

View File

@ -1,11 +1,15 @@
from apps.system.models import User from apps.system.models import User
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from rest_framework import serializers from rest_framework import serializers
from utils.mixins import DynamicFieldsSerializerMixin
from .models import ClockRecord, Employee from .models import ClockRecord, Employee
from apps.system.serializers import UserListSerializer, UserSimpleSerializer from apps.system.serializers import OrganizationSimpleSerializer, UserListSerializer, UserSimpleSerializer
from django.db.models.query import Prefetch from django.db.models.query import Prefetch
class EmployeeSerializer(ModelSerializer): class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer):
name = serializers.CharField(source='user.name', read_only=True)
dept_ = OrganizationSimpleSerializer(source='user.dept_', read_only=True)
class Meta: class Meta:
model = Employee model = Employee
exclude = ['face_data'] exclude = ['face_data']

View File

@ -4,7 +4,7 @@ from django.utils import timezone
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet, GenericViewSet from rest_framework.viewsets import ModelViewSet, GenericViewSet
from rest_framework.mixins import UpdateModelMixin, RetrieveModelMixin, CreateModelMixin, ListModelMixin from rest_framework.mixins import UpdateModelMixin, RetrieveModelMixin, CreateModelMixin, ListModelMixin
from apps.hrm.filters import ClockRecordFilterSet from apps.hrm.filters import ClockRecordFilterSet, EmployeeFilterSet
from apps.hrm.services import HRMService from apps.hrm.services import HRMService
from apps.hrm.tasks import update_all_user_facedata_cache from apps.hrm.tasks import update_all_user_facedata_cache
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
@ -30,6 +30,7 @@ class EmployeeViewSet(CreateUpdateModelAMixin, OptimizationMixin, UpdateModelMix
""" """
perms_map = {'get': '*', 'put': 'employee_update'} perms_map = {'get': '*', 'put': 'employee_update'}
queryset = Employee.objects.all() queryset = Employee.objects.all()
filterset_class = EmployeeFilterSet
serializer_class = EmployeeSerializer serializer_class = EmployeeSerializer
ordering = ['-pk'] ordering = ['-pk']