diff --git a/hb_server/apps/develop/views.py b/hb_server/apps/develop/views.py index ae3a2d8..b3cf203 100644 --- a/hb_server/apps/develop/views.py +++ b/hb_server/apps/develop/views.py @@ -2,9 +2,12 @@ from django.shortcuts import render from rest_framework.views import APIView from rest_framework.permissions import IsAdminUser from rest_framework.response import Response -from apps.inm.models import FIFO +from apps.inm.models import FIFO, Inventory, MaterialBatch from apps.mtm.models import Material +from apps.pm.models import ProductionPlan from apps.sam.models import Order +from apps.wf.models import Ticket +from apps.wpm.models import Operation # Create your views here. class CleanDataView(APIView): @@ -14,7 +17,12 @@ class CleanDataView(APIView): """ 清空数据库 """ - Order.objects.delete() - FIFO.objects.delete() - Material.objects.filter(type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD]).delete() + Order.objects.all().delete(soft=False) + ProductionPlan.objects.all().delete(soft=False) + FIFO.objects.all().delete(soft=False) + Material.objects.filter(type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD]).update(count=0) + MaterialBatch.objects.filter(material__type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD]).delete() + Inventory.objects.filter(material__type__in=[Material.MA_TYPE_GOOD, Material.MA_TYPE_HALFGOOD]).delete() + Ticket.objects.all().delete(soft=False) + Operation.objects.all().delete() return Response() \ No newline at end of file diff --git a/hb_server/apps/wpm/services.py b/hb_server/apps/wpm/services.py index 8974041..4260fa0 100644 --- a/hb_server/apps/wpm/services.py +++ b/hb_server/apps/wpm/services.py @@ -6,6 +6,7 @@ from apps.pm.models import SubProductionPlan, SubProductionProgress from apps.mtm.models import Material, Step, SubprodctionMaterial from apps.qm.models import TestRecord from apps.system.models import User +from apps.wf.models import State, TicketFlow, Transition from apps.wpm.models import WProduct, WproductFlow, WprouctTicket from utils.tools import ranstr class WpmServies(object): @@ -62,11 +63,39 @@ class WpmServies(object): wt = WprouctTicket.objects.order_by('id').last() #取最后的工单 if wt.step.process == test.step.process: wproduct.ng_sign = None + ticket = wt.ticket + ticket_data = wt.ticket_data + ticket_data['retest_result'] = 1 + ticket.update_by = user + ticket.save() + # 创建处理日志 + TicketFlow.objects.create(ticket=ticket, state=ticket.state, + participant_type=State.PARTICIPANT_TYPE_PERSONAL, + intervene_type=0, + participant=user) + + # 更新子计划相关进度 cls.update_subproduction_progress_main(sp=wproduct.subproduction_plan) else:# 如果不合格 wproduct.act_state = WProduct.WPR_ACT_STATE_NOTOK # 需要走不合格品审理的工单 + # 如果已经是返工返修的产品 + if wproduct.ng_sign: + wt = WprouctTicket.objects.order_by('id').last() #取最后的工单 + if wt.step.process == test.step.process: + ticket = wt.ticket + ticket_data = wt.ticket_data + ticket_data['retest_result'] = 0 + ticket.update_by = user + ticket.save() + # 创建处理日志 + TicketFlow.objects.create(ticket=ticket, state=ticket.state, + participant_type=State.PARTICIPANT_TYPE_PERSONAL, + intervene_type=0, + participant=user) + + wproduct.update_by = user wproduct.update_time = timezone.now() wproduct.test = None