From 7a9d18c5bea246ef8f1079dcadd0df304a2f6e54 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 16 Dec 2021 16:11:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E6=9B=B4=E6=96=B0=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=E5=92=8C=E5=8F=AF=E9=80=89=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/wf/views.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hb_server/apps/wf/views.py b/hb_server/apps/wf/views.py index 8ad571d..4fa8a11 100644 --- a/hb_server/apps/wf/views.py +++ b/hb_server/apps/wf/views.py @@ -157,14 +157,9 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin save_ticket_data = {} # 只保存必填项以及可选项 for key, value in ticket_data.items(): - if key in start_state.state_fields: - print(start_state.state_fields[key]) - if start_state.state_fields[key] in [State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL]: - print(key, True) if key in field_key_list and key in start_state.state_fields and start_state.state_fields[key] in [ State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL]: save_ticket_data[key] = value - print('1') ticket = serializer.save(state=start_state, create_by=request.user, @@ -237,6 +232,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin raise APIException('工单不存在') data = request.data result = WfService.ticket_handle_permission_check(ticket, request.user) + field_key_list = WfService.get_workflow_custom_fields_list(ticket.workflow) source_state = ticket.state source_ticket_data = ticket.ticket_data if result.get('permission') is False: @@ -249,6 +245,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin if value == State.STATE_FIELD_REQUIRED: if key not in ticket_data or not ticket_data[key]: raise APIException('字段{}必填'.format(key)) + destination_state = WfService.get_next_state_by_transition_and_ticket_info(ticket, transition, ticket_data, request) multi_all_person = ticket.multi_all_person if multi_all_person: @@ -290,7 +287,7 @@ class TicketViewSet(OptimizationMixin, CreateUpdateCustomMixin, CreateModelMixin ticket.act_state = Ticket.TICKET_ACT_STATE_BACK # 只更新必填和可选的字段 - for key, value in ticket.state.state_fields.items(): + for key, value in source_state.state_fields.items(): if value in (State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL): source_ticket_data[key] = ticket_data[key] ticket.ticket_data = source_ticket_data