feat: routepack bind ticket
This commit is contained in:
parent
b2664ca81b
commit
c1161c4391
|
@ -1,4 +1,4 @@
|
|||
from apps.mtm.models import Goal, Mgroup
|
||||
from apps.mtm.models import Goal, Mgroup, RoutePack, Route
|
||||
from django.core.cache import cache
|
||||
from django.db.models import Q
|
||||
from apps.mtm.models import Material, Process
|
||||
|
@ -8,6 +8,7 @@ from datetime import datetime
|
|||
from apps.wpm.models import StLog
|
||||
from apps.wpm.services import get_sflog
|
||||
from apps.wpm.tasks import cal_exp_duration_sec
|
||||
from apps.wf.models import Ticket
|
||||
|
||||
|
||||
def get_mgroup_goals(mgroupId, year, reload=False):
|
||||
|
@ -100,4 +101,29 @@ def mgroup_run_change(mgroup: Mgroup, new_run: bool, last_timex: datetime):
|
|||
elif new_run is False:
|
||||
StLog.objects.create(title="停机", is_shutdown=True, mgroup=mgroup, end_time=None, start_time=last_timex, sflog=get_sflog(mgroup, last_timex))
|
||||
mgroup.is_running = False
|
||||
mgroup.save()
|
||||
mgroup.save()
|
||||
|
||||
def bind_routepack(ticket: Ticket, transition, new_ticket_data: dict):
|
||||
routepack = RoutePack.objects.get(id=new_ticket_data['t_id'])
|
||||
if routepack.ticket and routepack.ticket.id!=ticket.id:
|
||||
raise ParseError('重复创建工单')
|
||||
if not Route.objects.filter(routepack=routepack).exists():
|
||||
raise ParseError('缺少步骤')
|
||||
ticket_data = ticket.ticket_data
|
||||
ticket_data.update({
|
||||
't_model': 'routepack',
|
||||
't_id': routepack.id
|
||||
})
|
||||
ticket.ticket_data = ticket_data
|
||||
ticket.create_by = routepack.create_by
|
||||
ticket.save()
|
||||
if routepack.ticket is None:
|
||||
routepack.ticket = ticket
|
||||
routepack.state = RoutePack.RP_S_AUDIT
|
||||
routepack.save()
|
||||
|
||||
|
||||
def routepack_audit_end(ticket: Ticket):
|
||||
routepack = RoutePack.objects.get(id=ticket.ticket_data['t_id'])
|
||||
routepack.state = RoutePack.RP_S_CONFIRM
|
||||
routepack.save()
|
|
@ -17,6 +17,7 @@ from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin
|
|||
from rest_framework.serializers import Serializer
|
||||
from django.db import transaction
|
||||
from django.db.models import Q
|
||||
from apps.wf.models import Ticket
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
@ -193,11 +194,14 @@ class RoutePackViewSet(CustomModelViewSet):
|
|||
raise ParseError('该状态下不可编辑')
|
||||
return super().update(request, *args, **kwargs)
|
||||
|
||||
@transaction.atomic
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
obj: RoutePack = self.get_object()
|
||||
if obj.state != RoutePack.RP_S_CREATE:
|
||||
raise ParseError('该状态下不可删除')
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
obj.delete()
|
||||
Ticket.objects.filter(ticket_data_t_id=obj.id, ticket_data_t_model='routepack').delete()
|
||||
return Response(status=204)
|
||||
|
||||
class RouteViewSet(CustomModelViewSet):
|
||||
queryset = Route.objects.all()
|
||||
|
|
Loading…
Reference in New Issue