feat: 离职申请支持删除

This commit is contained in:
caoqianming 2025-11-09 23:05:10 +08:00
parent f62bc532de
commit 9408dbd6e5
1 changed files with 12 additions and 5 deletions

View File

@ -26,9 +26,9 @@ from apps.hrm.services import HrmService
from apps.third.dahua import dhClient from apps.third.dahua import dhClient
from apps.third.tapis import dhapis from apps.third.tapis import dhapis
from apps.utils.export import export_excel from apps.utils.export import export_excel
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet, EuModelViewSet
from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin, RetrieveModelMixin from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin, RetrieveModelMixin
from apps.wf.models import Ticket
epTypeOptions = {'employee': '正式员工', 'remployee': '相关方', epTypeOptions = {'employee': '正式员工', 'remployee': '相关方',
'visitor': '访客', 'driver': '货车司机'} 'visitor': '访客', 'driver': '货车司机'}
epStateOptions = {10: '在职', 20: '离职', 30: '退休'} epStateOptions = {10: '在职', 20: '离职', 30: '退休'}
@ -393,9 +393,16 @@ class CertificateViewSet(CustomModelViewSet):
ins.get_state(need_update=True) ins.get_state(need_update=True)
class ResignationViewSet(CustomListModelMixin, BulkCreateModelMixin, RetrieveModelMixin, CustomGenericViewSet): class ResignationViewSet(EuModelViewSet):
perms_map = {"get": "*", "post": "resignation.create"}
select_related_fields = ['employee', 'employee__belong_dept', 'employee__post'] select_related_fields = ['employee', 'employee__belong_dept', 'employee__post']
queryset = Resignation.objects.all() queryset = Resignation.objects.all()
serializer_class = ResignationSerializer serializer_class = ResignationSerializer
search_fields = ["employee__name"] search_fields = ["employee__name"]
def perform_destroy(self, instance):
ticket:Ticket = instance.ticket
if ticket and ticket.state.type != 1:
raise ParseError('该离职记录关联的工单已被处理,不可删除')
instance.delete()
if ticket:
ticket.delete()