is_atwork调整位置
This commit is contained in:
parent
985935641e
commit
7bfe483c90
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 3.2.9 on 2022-02-17 13:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hrm', '0005_auto_20220126_1351'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='employee',
|
||||
name='is_atwork',
|
||||
field=models.BooleanField(default=False, verbose_name='当前在岗'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='employee',
|
||||
name='last_check_time',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='打卡时间'),
|
||||
),
|
||||
]
|
|
@ -30,6 +30,8 @@ class Employee(CommonAModel):
|
|||
qualification = models.CharField('学历', max_length=50, null=True, blank=True)
|
||||
job_state = models.IntegerField('在职状态', choices=jobstate_choices, default=1)
|
||||
face_data = models.JSONField('人脸识别数据', null=True, blank=True)
|
||||
is_atwork = models.BooleanField('当前在岗', default=False)
|
||||
last_check_time = models.DateTimeField('打卡时间', null=True, blank=True)
|
||||
class Meta:
|
||||
verbose_name = '员工补充信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
|
|
@ -10,8 +10,6 @@ from django.db.models.query import Prefetch
|
|||
class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer):
|
||||
name = serializers.CharField(source='user.name', read_only=True)
|
||||
dept_ = OrganizationSimpleSerializer(source='user.dept', read_only=True)
|
||||
is_atwork = serializers.BooleanField(source='user.is_atwork', read_only=True)
|
||||
last_check_time = serializers.DateTimeField(source='user.last_check_time', read_only=True)
|
||||
class Meta:
|
||||
model = Employee
|
||||
exclude = ['face_data']
|
||||
|
|
|
@ -2,16 +2,15 @@ from __future__ import absolute_import, unicode_literals
|
|||
|
||||
from celery import shared_task
|
||||
from apps.hrm.models import Employee
|
||||
from apps.system.models import User
|
||||
from django.core.cache import cache
|
||||
|
||||
|
||||
@shared_task
|
||||
def update_all_user_not_atwork():
|
||||
def update_all_employee_not_atwork():
|
||||
"""
|
||||
将所有员工设为非在岗状态
|
||||
"""
|
||||
User.objects.all().update(is_atwork=False, last_check_time = None)
|
||||
Employee.objects.all().update(is_atwork=False, last_check_time = None)
|
||||
|
||||
@shared_task
|
||||
def update_all_user_facedata_cache():
|
||||
|
|
|
@ -92,9 +92,7 @@ class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
|||
ins.update_time = now
|
||||
ins.save()
|
||||
# 设为在岗
|
||||
user.is_atwork = True
|
||||
user.last_check_time = now
|
||||
user.save()
|
||||
Employee.objects.filter(user=user).update(is_atwork=True, last_check_time=now)
|
||||
return Response(UserSimpleSerializer(instance=user).data)
|
||||
return Response(msg, status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response('非打卡时间范围', status=status.HTTP_400_BAD_REQUEST)
|
||||
|
@ -140,9 +138,7 @@ class FaceLogin(CreateAPIView):
|
|||
})
|
||||
# 设为在岗
|
||||
if created:
|
||||
user.is_atwork = True
|
||||
user.last_check_time = now
|
||||
user.save()
|
||||
Employee.objects.filter(user=user).update(is_atwork=True, last_check_time=now)
|
||||
|
||||
return Response({
|
||||
'refresh': str(refresh),
|
||||
|
|
|
@ -10,7 +10,7 @@ from rest_framework.decorators import action
|
|||
from rest_framework.response import Response
|
||||
from utils.pagination import PageOrNot
|
||||
from rest_framework.exceptions import APIException
|
||||
|
||||
from django.db import transaction
|
||||
|
||||
# Create your views here.
|
||||
class MaterialViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
|
||||
|
@ -208,6 +208,22 @@ class RecordFormFieldViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelVi
|
|||
return RecordFormFieldUpdateSerializer
|
||||
return RecordFormFieldSerializer
|
||||
|
||||
@transaction.atomic
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
form = vdata.pop('form', None)
|
||||
instance = RecordForm(**vdata)
|
||||
instance.save(create_by=request.user)
|
||||
if form:
|
||||
for i in RecordFormField.objects.filter(form=form, is_deleted=False):
|
||||
i.pk = None
|
||||
i.form = instance
|
||||
i.parent = None
|
||||
i.save()
|
||||
return super().create(request, *args, **kwargs)
|
||||
|
||||
class TechDocViewSet(OptimizationMixin, CreateUpdateModelAMixin, ModelViewSet):
|
||||
"""
|
||||
技术文件增删改查
|
||||
|
|
|
@ -7,4 +7,4 @@ class UserFilter(DynamicFieldsFilterMixin, filters.FilterSet):
|
|||
name = filters.CharFilter(field_name='name', lookup_expr='contains')
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['name', 'is_active', 'is_atwork']
|
||||
fields = ['name', 'is_active']
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.9 on 2022-01-21 05:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0003_auto_20210812_0909'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='is_atwork',
|
||||
field=models.BooleanField(default=False, verbose_name='当前在岗'),
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.9 on 2022-01-25 08:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0004_user_is_atwork'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='last_check_time',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='打卡时间'),
|
||||
),
|
||||
]
|
|
@ -116,8 +116,6 @@ class User(AbstractUser):
|
|||
superior = models.ForeignKey(
|
||||
'self', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='上级主管')
|
||||
roles = models.ManyToManyField(Role, blank=True, verbose_name='角色')
|
||||
is_atwork = models.BooleanField('当前在岗', default=False)
|
||||
last_check_time = models.DateTimeField('打卡时间', null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '用户信息'
|
||||
|
|
|
@ -144,7 +144,7 @@ class UserListSerializer(DynamicFieldsSerializerMixin, serializers.ModelSerializ
|
|||
fields = ['id', 'name', 'phone', 'email', 'position',
|
||||
'username', 'is_active', 'date_joined',
|
||||
'dept_', 'dept', 'roles', 'avatar',
|
||||
'roles_', 'is_atwork', 'last_check_time']
|
||||
'roles_']
|
||||
|
||||
@staticmethod
|
||||
def setup_eager_loading(queryset):
|
||||
|
|
Loading…
Reference in New Issue