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.core.cache import cache
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from apps.mtm.models import Material, Process
|
from apps.mtm.models import Material, Process
|
||||||
|
@ -8,6 +8,7 @@ from datetime import datetime
|
||||||
from apps.wpm.models import StLog
|
from apps.wpm.models import StLog
|
||||||
from apps.wpm.services import get_sflog
|
from apps.wpm.services import get_sflog
|
||||||
from apps.wpm.tasks import cal_exp_duration_sec
|
from apps.wpm.tasks import cal_exp_duration_sec
|
||||||
|
from apps.wf.models import Ticket
|
||||||
|
|
||||||
|
|
||||||
def get_mgroup_goals(mgroupId, year, reload=False):
|
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:
|
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))
|
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.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 rest_framework.serializers import Serializer
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from apps.wf.models import Ticket
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -193,11 +194,14 @@ class RoutePackViewSet(CustomModelViewSet):
|
||||||
raise ParseError('该状态下不可编辑')
|
raise ParseError('该状态下不可编辑')
|
||||||
return super().update(request, *args, **kwargs)
|
return super().update(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@transaction.atomic
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
obj: RoutePack = self.get_object()
|
obj: RoutePack = self.get_object()
|
||||||
if obj.state != RoutePack.RP_S_CREATE:
|
if obj.state != RoutePack.RP_S_CREATE:
|
||||||
raise ParseError('该状态下不可删除')
|
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):
|
class RouteViewSet(CustomModelViewSet):
|
||||||
queryset = Route.objects.all()
|
queryset = Route.objects.all()
|
||||||
|
|
Loading…
Reference in New Issue