# Create your tasks here from __future__ import absolute_import, unicode_literals from apps.opm.models import Operation, Opl from apps.opm.services import give_perm_by_opl from apps.utils.task import CustomTask from celery import shared_task from apps.wf.models import State, Ticket @shared_task(base=CustomTask) def opl_end(ticket_id): """ 作业关闭时执行 """ ticket = Ticket.objects.get(id=ticket_id) operation = ticket.opl.operation opls = Opl.objects.filter(operation=operation) opls.filter(ticket=None).delete() # 删除无用许可证 states = opls.values_list('ticket__state__type', flat=True) if 0 in states or 1 in states: pass else: operation.state = Operation.OP_CLOSE operation.save() @shared_task(base=CustomTask) def opl_audit_start(ticket_id): operation = Opl.objects.get(ticket__id=ticket_id).operation if operation.state == Operation.OP_CREATE: operation.state = Operation.OP_AUDIT operation.save() @shared_task(base=CustomTask) def opl_audit_end(ticket_id): opl = Opl.objects.get(ticket__id=ticket_id) operation = opl.operation if operation.state == Operation.OP_AUDIT: operation.state = Operation.OP_WORK operation.save() # 授予区域或围栏权限 give_perm_by_opl(opl)