作业人员未就位/未配置灭火器事件

This commit is contained in:
曹前明 2022-09-11 16:51:32 +08:00
parent 9324f59825
commit 568d6545d0
5 changed files with 44 additions and 13 deletions

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.12 on 2022-09-09 08:14
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('hrm', '0003_alter_employee_type'),
]
operations = [
migrations.AlterField(
model_name='employee',
name='user',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='employee', to=settings.AUTH_USER_MODEL, verbose_name='系统账号'),
),
]

View File

@ -1,7 +1,7 @@
from django.db import models from django.db import models
from apps.system.models import Post, User from apps.system.models import Post, User
from apps.utils.models import BaseModel, CommonAModel, CommonBModel from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBModel
class Employee(CommonBModel): class Employee(CommonBModel):
@ -24,7 +24,7 @@ class Employee(CommonBModel):
user = models.OneToOneField(User, user = models.OneToOneField(User,
verbose_name='系统账号', verbose_name='系统账号',
related_name='employee', related_name='employee',
on_delete=models.PROTECT, null=True, blank=True) on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField('姓名', max_length=20) name = models.CharField('姓名', max_length=20)
phone = models.CharField('手机号', max_length=11, null=True, blank=True, unique=True) phone = models.CharField('手机号', max_length=11, null=True, blank=True, unique=True)
email = models.EmailField('邮箱号', null=True, blank=True) email = models.EmailField('邮箱号', null=True, blank=True)
@ -62,7 +62,7 @@ class Employee(CommonBModel):
# CARD_LOCATION = 20 # CARD_LOCATION = 20
class NotWorkRemark(CommonAModel): class NotWorkRemark(CommonADModel):
""" """
离岗说明 离岗说明
""" """

View File

@ -66,12 +66,6 @@ class CustomUpdateModelMixin(UpdateModelMixin):
serializer.save(update_by=self.request.user) serializer.save(update_by=self.request.user)
class CustomDestoryModelMixin(DestroyModelMixin):
def perform_destroy(self, instance):
instance.delete(update_by=self.request.user)
class MyLoggingMixin(object): class MyLoggingMixin(object):
"""Mixin to log requests""" """Mixin to log requests"""

View File

@ -12,13 +12,13 @@ class SoftDeletableQuerySetMixin(object):
its ``is_deleted`` field to True. its ``is_deleted`` field to True.
''' '''
def delete(self, soft=True, update_by=None): def delete(self, soft=True):
''' '''
Soft delete objects from queryset (set their ``is_deleted`` Soft delete objects from queryset (set their ``is_deleted``
field to True) field to True)
''' '''
if soft: if soft:
self.update(is_deleted=True, update_by=update_by) self.update(is_deleted=True)
else: else:
return super(SoftDeletableQuerySetMixin, self).delete() return super(SoftDeletableQuerySetMixin, self).delete()
@ -103,6 +103,9 @@ class CommonAModel(SoftModel):
update_by = models.ForeignKey( update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL, 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by') verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
class Meta: class Meta:
abstract = True abstract = True
@ -118,6 +121,9 @@ class CommonBModel(SoftModel):
update_by = models.ForeignKey( update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL, 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by') verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
belong_dept = models.ForeignKey( belong_dept = models.ForeignKey(
'system.dept', null=True, blank=True, on_delete=models.SET_NULL, 'system.dept', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='所属部门', related_name='%(class)s_belong_dept') verbose_name='所属部门', related_name='%(class)s_belong_dept')
@ -136,6 +142,9 @@ class CommonADModel(BaseModel):
update_by = models.ForeignKey( update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL, 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by') verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
class Meta: class Meta:
abstract = True abstract = True
@ -151,6 +160,9 @@ class CommonBDModel(BaseModel):
update_by = models.ForeignKey( update_by = models.ForeignKey(
'system.user', null=True, blank=True, on_delete=models.SET_NULL, 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='最后编辑人', related_name='%(class)s_update_by') verbose_name='最后编辑人', related_name='%(class)s_update_by')
# delete_by = models.ForeignKey(
# 'system.user', null=True, blank=True, on_delete=models.SET_NULL,
# verbose_name='删除人', related_name='%(class)s_delete_by')
belong_dept = models.ForeignKey( belong_dept = models.ForeignKey(
'system.dept', null=True, blank=True, on_delete=models.SET_NULL, 'system.dept', null=True, blank=True, on_delete=models.SET_NULL,
verbose_name='所属部门', related_name='%(class)s_belong_dept') verbose_name='所属部门', related_name='%(class)s_belong_dept')

View File

@ -8,7 +8,7 @@ from rest_framework.permissions import IsAuthenticated, IsAdminUser
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet from rest_framework.viewsets import GenericViewSet
from apps.system.models import DataFilter, Dept from apps.system.models import DataFilter, Dept, User
from apps.utils.errors import PKS_ERROR from apps.utils.errors import PKS_ERROR
from apps.utils.mixins import MyLoggingMixin from apps.utils.mixins import MyLoggingMixin
from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map
@ -131,11 +131,15 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin,
@action(methods=['post'], detail=False, serializer_class=PkSerializer, permission_classes=[IsAdminUser]) @action(methods=['post'], detail=False, serializer_class=PkSerializer, permission_classes=[IsAdminUser])
def deletes_hard(self, request, *args, **kwargs): def deletes_hard(self, request, *args, **kwargs):
"""批量物理删除
批量物理删除
"""
request_data = request.data request_data = request.data
pks = request_data.get('pks', None) pks = request_data.get('pks', None)
if pks: if pks:
try: try:
self.get_queryset(all=True).filter(id__in=pks).delete(soft=False) self.get_queryset().model.objects.get_queryset(all=True).filter(id__in=pks).delete(soft=False)
except Exception: except Exception:
self.get_queryset().filter(id__in=pks).delete() self.get_queryset().filter(id__in=pks).delete()
return Response(status=204) return Response(status=204)