feat: 快速创建日志接口
This commit is contained in:
parent
1d778dbdf0
commit
ca3e811b1b
|
@ -1374,12 +1374,14 @@ class BatchMgroupSerializer(serializers.Serializer):
|
|||
|
||||
class MlogQuickSerializer(CustomModelSerializer):
|
||||
work_start_time = serializers.DateTimeField(label="开始时间")
|
||||
work_end_time = serializers.DateTimeField(label="结束时间")
|
||||
team = serializers.CharField(label="班组ID")
|
||||
equipment = serializers.CharField(label="设备ID")
|
||||
handle_date = serializers.DateField(label="操作日期")
|
||||
work_end_time = serializers.DateTimeField(label="结束时间", required=False)
|
||||
team = serializers.CharField(label="班组ID", required=False)
|
||||
equipment = serializers.CharField(label="设备ID", required=False)
|
||||
wm_in = serializers.CharField(label="输入车间库存ID")
|
||||
count_use = serializers.IntegerField(label="领用数量")
|
||||
is_fix = serializers.BooleanField(label="是否返修")
|
||||
mgroup = serializers.CharField(label="工段ID", required=False)
|
||||
mgroup = serializers.CharField(label="工段ID")
|
||||
route = serializers.CharField(label="工艺步骤ID", required=False)
|
||||
mtask = serializers.CharField(label="任务ID", required=False)
|
||||
handle_user = serializers.CharField(label="操作人员ID")
|
|
@ -26,7 +26,7 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer,
|
|||
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
|
||||
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
|
||||
MlogbwCreateUpdateSerializer, HandoverMgroupSerializer, MlogListSerializer,
|
||||
MlogbSerializer, MlogUserSerializer, BatchLogSerializer)
|
||||
MlogbSerializer, MlogUserSerializer, BatchLogSerializer, MlogQuickSerializer)
|
||||
from .services import mlog_submit, handover_submit, mlog_revert, get_batch_dag, handover_revert
|
||||
from apps.wpm.services import mlog_submit_validate, generate_new_batch
|
||||
from apps.wf.models import State, Ticket
|
||||
|
@ -383,6 +383,46 @@ class MlogViewSet(CustomModelViewSet):
|
|||
res[i] = 0
|
||||
return Response(res)
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.create'}, serializer_class=MlogQuickSerializer)
|
||||
def quick(self, request, *args, **kwargs):
|
||||
"""快速创建日志
|
||||
|
||||
快速创建日志
|
||||
"""
|
||||
sr = MlogQuickSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
mloginit_data = {"mgroup": vdata["mgroup"],
|
||||
"work_start_time": vdata["work_start_time"],
|
||||
"handle_date": vdata["handle_date"],
|
||||
"handle_user": vdata["handle_user"],
|
||||
"is_fix": vdata["is_fix"]}
|
||||
if "work_end_time" in vdata:
|
||||
mloginit_data["work_end_time"] = vdata["work_end_time"]
|
||||
if "route" in vdata:
|
||||
mloginit_data["route"] = vdata["route"]
|
||||
if "equipment" in vdata:
|
||||
mloginit_data["equipment"] = vdata["equipment"]
|
||||
if "team" in vdata:
|
||||
mloginit_data["team"] = vdata["team"]
|
||||
sr_1 = MlogInitSerializer(data=mloginit_data)
|
||||
sr_1.is_valid(raise_exception=True)
|
||||
mlog:Mlog = sr_1.save()
|
||||
# 开始创建消耗产出
|
||||
mlogbin_data = {
|
||||
"mlog": mlog.id,
|
||||
"wm_in": vdata["wm_in"],
|
||||
"count_use": vdata["count_use"]
|
||||
}
|
||||
if "mtask" in vdata:
|
||||
mlogbin_data["mtask"] = vdata["mtask"]
|
||||
if "route" in vdata:
|
||||
mlogbin_data["route"] = vdata["route"]
|
||||
sr_2 = MlogbInSerializer(data=mlogbin_data)
|
||||
sr_2.is_valid(raise_exception=True)
|
||||
mlogbin = sr_2.save()
|
||||
MlogbInViewSet.p_create_after(mlogbin)
|
||||
return Response({"mlog": mlog.id})
|
||||
|
||||
class HandoverViewSet(CustomModelViewSet):
|
||||
"""
|
||||
|
@ -609,9 +649,8 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
|||
ins:Mlogb = serializer.save()
|
||||
ins.mlog.cal_mlog_count_from_mlogb()
|
||||
|
||||
@transaction.atomic
|
||||
def perform_create(self, serializer):
|
||||
mlogbin: Mlogb = serializer.save()
|
||||
@classmethod
|
||||
def p_create_after(cls, mlogbin:Mlogb):
|
||||
mlog:Mlog = mlogbin.mlog
|
||||
mgroup:Mgroup = mlog.mgroup
|
||||
route:Route = mlogbin.route
|
||||
|
@ -744,6 +783,11 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
|||
raise ParseError("不支持生成产出物料!")
|
||||
mlog.cal_mlog_count_from_mlogb()
|
||||
|
||||
@transaction.atomic
|
||||
def perform_create(self, serializer):
|
||||
mlogbin: Mlogb = serializer.save()
|
||||
MlogbInViewSet.p_create_after(mlogbin)
|
||||
|
||||
@classmethod
|
||||
def gen_number_with_rule(cls, rule, material_out:Material, gen_count=1):
|
||||
from apps.wpmw.models import Wpr
|
||||
|
|
Loading…
Reference in New Issue