def delete(self, request, *args, **kwargs): """ 删除工单,仅用于管理员干预处理工单,loonflow管理后台的功能 :param request: :param args: :param kwargs: :return: """ # 校验工单权限 ticket_id = kwargs.get('ticket_id') username = request.META.get('HTTP_USERNAME') json_str = request.body.decode('utf-8') suggestion = '' if json_str: request_data_dict = json.loads(json_str) suggestion = request_data_dict.get('suggestion') flag, result = ticket_base_service_ins.ticket_admin_permission_check(ticket_id, username) if flag is False: return api_response(-1, result, {}) flag, result = ticket_base_service_ins.delete_ticket(ticket_id, username, suggestion) if flag is False: return api_response(-1, result, {}) else: return api_response(0, '', {})
def put(self, request, *args, **kwargs): """ 修改工单状态 :param request: :param args: :param kwargs: :return: """ json_str = request.body.decode('utf-8') if not json_str: return api_response(-1, 'patch参数为空', {}) request_data_dict = json.loads(json_str) ticket_id = kwargs.get('ticket_id') username = request.META.get('HTTP_USERNAME') state_id = request_data_dict.get('state_id') suggestion = request_data_dict.get('suggestion', '') app_name = request.META.get('HTTP_APPNAME') # 调用来源应用是否有此工单对应工作流的权限校验 app_permission_check, msg = account_base_service_ins.app_ticket_permission_check(app_name, ticket_id) if not app_permission_check: return api_response(-1, msg, '') # 强制修改工单状态需要对应工作流的管理员或者超级管理员 flag, result = ticket_base_service_ins.ticket_admin_permission_check(ticket_id, username) if flag is False: return api_response(-1, result, {}) flag, result = ticket_base_service_ins.update_ticket_state(ticket_id, state_id, username, suggestion) if flag is False: return api_response(-1, result, {}) else: return api_response(0, '', {})
def post(self, request, *args, **kwargs): """ 转交操作会直接修改工单处理人,且工单状态不变,所以在使用的时候可以在前端做些提醒 避免用户把工单直接转交给下个人,从而干扰了工单的正常流转( 如用户提交了一个请假单,部门TL审批状态下,tl本来应该点击"同意",工单会自动流转到财务人员审批状态。 应该避免tl直接将工单转交给了某个财务)。这个地方后续会考虑怎么优化下,目前先在前端做提醒 :param request: :param args: :param kwargs: :return: """ json_str = request.body.decode('utf-8') request_data_dict = json.loads(json_str) ticket_id = kwargs.get('ticket_id') username = request.META.get('HTTP_USERNAME') target_username = request_data_dict.get('target_username', '') suggestion = request_data_dict.get('suggestion', '') from_admin = request_data_dict.get('from_admin', 0) app_name = request.META.get('HTTP_APPNAME') app_permission_check, msg = account_base_service_ins.app_ticket_permission_check( app_name, ticket_id) if not app_permission_check: return api_response(-1, msg, {}) if from_admin: flag, result = ticket_base_service_ins.ticket_admin_permission_check( ticket_id, username) if flag is False: return api_response(-1, result, {}) else: # 非管理员操作,校验用户是否有处理权限 flag, result = ticket_base_service_ins.ticket_handle_permission_check( ticket_id, username) if flag is False: return api_response(-1, result, {}) if result.get('permission') is False: return api_response(-1, result.get('msg'), {}) result, msg = ticket_base_service_ins.deliver_ticket( ticket_id, username, target_username, suggestion) if result: code, msg, data = 0, msg, result else: code, msg, data = -1, msg, '' return api_response(code, msg, data)