64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
from django.db import models
 | 
						|
from django.contrib.auth.models import AbstractUser
 | 
						|
from django.db.models.base import Model
 | 
						|
import django.utils.timezone as timezone
 | 
						|
from django.db.models.query import QuerySet
 | 
						|
from apps.system.models import CommonADModel, CommonAModel, CommonBModel, Organization, User, Dict, File,Position
 | 
						|
from utils.model import SoftModel, BaseModel
 | 
						|
from simple_history.models import HistoricalRecords
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class Employee(CommonAModel):
 | 
						|
    """
 | 
						|
    员工信息
 | 
						|
    """
 | 
						|
    JOB_ON = 1
 | 
						|
    JOB_OFF = 2
 | 
						|
    jobstate_choices = (
 | 
						|
         (JOB_ON, '在职'),
 | 
						|
         (JOB_OFF, '离职'),
 | 
						|
    )
 | 
						|
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee_user')
 | 
						|
    number = models.CharField('人员编号', max_length=50,null=True, blank=True, unique=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)
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        verbose_name = '员工补充信息'
 | 
						|
        verbose_name_plural = verbose_name
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return self.name
 | 
						|
 | 
						|
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)
 | 
						|
 | 
						|
 |