diff --git a/apps/hrm/serializers.py b/apps/hrm/serializers.py index 706e4886..6566aa4a 100755 --- a/apps/hrm/serializers.py +++ b/apps/hrm/serializers.py @@ -3,6 +3,7 @@ from rest_framework.serializers import ModelSerializer from rest_framework import serializers from apps.hrm.services import HrmService + from apps.utils.serializers import CustomModelSerializer from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE from apps.utils.tools import rannum @@ -101,12 +102,19 @@ class EmployeeSerializer(EmployeeBaseSerializer): belong_dept_ = DeptSimpleSerializer(source='belong_dept', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) post_name = serializers.CharField(source='post.name', read_only=True) + blt_ = serializers.SerializerMethodField() class Meta: model = Employee fields = '__all__' read_only_fields = ['is_atwork', 'last_check_time', 'not_work_remark'] + def get_blt_(self, obj): + if hasattr(obj, 'tdevice'): + from apps.third.serializers import TDeviceSimpleSerializer + return TDeviceSimpleSerializer(instance=obj.tdevice).data + return + class EmployeeNotWorkRemarkSerializer(ModelSerializer): class Meta: diff --git a/apps/third/migrations/0005_alter_tdevice_employee.py b/apps/third/migrations/0005_alter_tdevice_employee.py new file mode 100644 index 00000000..b23ed41c --- /dev/null +++ b/apps/third/migrations/0005_alter_tdevice_employee.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2022-07-11 02:40 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('hrm', '0003_employee_post'), + ('third', '0004_auto_20220707_0957'), + ] + + operations = [ + migrations.AlterField( + model_name='tdevice', + name='employee', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='hrm.employee', verbose_name='当前绑定人员'), + ), + ] diff --git a/apps/third/models.py b/apps/third/models.py index 1b8a7d87..c2e97c95 100755 --- a/apps/third/models.py +++ b/apps/third/models.py @@ -40,8 +40,8 @@ class TDevice(BaseModel): areas = models.ManyToManyField(Area, verbose_name='覆盖区', related_name='tareas') obj_cate = models.CharField('绑定对象', max_length=20, help_text='people/...', null=True, blank=True) - employee = models.ForeignKey(Employee, verbose_name='当前绑定人员', on_delete=models.CASCADE, - null=True, blank=True, related_name='td_employee') + employee = models.OneToOneField(Employee, verbose_name='当前绑定人员', on_delete=models.CASCADE, + null=True, blank=True) is_clock = models.BooleanField('是否打卡设备', default=False) third_info = models.JSONField('三方信息', default=dict, null=False, blank=True)