75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
from django.db import models
|
|
from django.db.models.query import QuerySet
|
|
from apps.system.models import User
|
|
|
|
from apps.utils.models import CommonADModel, CommonAModel, CommonBModel
|
|
|
|
|
|
|
|
|
|
class Employee(CommonBModel):
|
|
"""
|
|
员工信息
|
|
"""
|
|
JOB_ON = 10
|
|
JOB_OFF = 20
|
|
jobstate_choices = (
|
|
(JOB_ON, '在职'),
|
|
(JOB_OFF, '离职'),
|
|
)
|
|
user = models.OneToOneField(User,
|
|
verbose_name='系统账号',
|
|
on_delete=models.PROTECT, related_name='employee_user', null=True, blank=True)
|
|
name = models.CharField('姓名', max_length=20)
|
|
phone = models.CharField('手机号', max_length=11, null=True, blank=True)
|
|
email = models.EmailField('邮箱号', null=True, blank=True)
|
|
number = models.CharField('人员编号', max_length=50, 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)
|
|
gender = models.CharField('性别', max_length=10, default='男')
|
|
signature = models.CharField('签名图片', max_length=200, null=True, blank=True)
|
|
birthday = models.DateField('出生年月日', null=True, blank=True)
|
|
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)
|
|
show_atwork = models.BooleanField('是否展示在岗状态', default=True)
|
|
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=True, blank=True)
|
|
class Meta:
|
|
verbose_name = '员工补充信息'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
# class Card(CommonAModel):
|
|
# """
|
|
# 卡
|
|
# """
|
|
# CARD_FACE = 10
|
|
# CARD_LOCATION = 20
|
|
|
|
|
|
|
|
class NotWorkRemark(CommonAModel):
|
|
"""
|
|
离岗说明
|
|
"""
|
|
not_work_date = models.DateField('未打卡日期')
|
|
user = models.ForeignKey(User, verbose_name='用户', on_delete=models.CASCADE)
|
|
remark = models.CharField('未打卡说明', null=True, blank=True, max_length=200)
|
|
|
|
class ClockRecord(CommonADModel):
|
|
"""
|
|
打卡记录
|
|
"""
|
|
ClOCK_WORK1 = 10
|
|
type_choice = (
|
|
(ClOCK_WORK1, '上班打卡'),
|
|
)
|
|
type = models.PositiveSmallIntegerField('打卡类型', choices=type_choice, default=ClOCK_WORK1)
|
|
|
|
|