feat: base wfmixin 修改时校验

This commit is contained in:
caoqianming 2025-11-24 13:21:50 +08:00
parent a58d95843f
commit c6dc424b33
1 changed files with 3 additions and 0 deletions

View File

@ -36,10 +36,13 @@ class TicketMixin:
def perform_update(self, serializer): def perform_update(self, serializer):
ins = serializer.save() ins = serializer.save()
ruser = self.request.user
if ins.ticket and self.ticket_auto_submit_on_update: if ins.ticket and self.ticket_auto_submit_on_update:
source_state:State = ins.ticket.state source_state:State = ins.ticket.state
if source_state.type != State.STATE_TYPE_START: if source_state.type != State.STATE_TYPE_START:
raise ParseError('该工单已开始流转,不可修改') raise ParseError('该工单已开始流转,不可修改')
if ruser != ins.ticket.create_by:
raise ParseError('非工单创建人不可修改')
transition = WfService.get_state_transitions(source_state).first() transition = WfService.get_state_transitions(source_state).first()
ticket_data = self.gen_ticket_data(ins) ticket_data = self.gen_ticket_data(ins)
WfService.handle_ticket(ticket=ins.ticket, transition=transition, new_ticket_data=ticket_data, WfService.handle_ticket(ticket=ins.ticket, transition=transition, new_ticket_data=ticket_data,