feat: 快速创建日志接口
This commit is contained in:
parent
1d778dbdf0
commit
ca3e811b1b
|
@ -1374,12 +1374,14 @@ class BatchMgroupSerializer(serializers.Serializer):
|
||||||
|
|
||||||
class MlogQuickSerializer(CustomModelSerializer):
|
class MlogQuickSerializer(CustomModelSerializer):
|
||||||
work_start_time = serializers.DateTimeField(label="开始时间")
|
work_start_time = serializers.DateTimeField(label="开始时间")
|
||||||
work_end_time = serializers.DateTimeField(label="结束时间")
|
handle_date = serializers.DateField(label="操作日期")
|
||||||
team = serializers.CharField(label="班组ID")
|
work_end_time = serializers.DateTimeField(label="结束时间", required=False)
|
||||||
equipment = serializers.CharField(label="设备ID")
|
team = serializers.CharField(label="班组ID", required=False)
|
||||||
|
equipment = serializers.CharField(label="设备ID", required=False)
|
||||||
wm_in = serializers.CharField(label="输入车间库存ID")
|
wm_in = serializers.CharField(label="输入车间库存ID")
|
||||||
count_use = serializers.IntegerField(label="领用数量")
|
count_use = serializers.IntegerField(label="领用数量")
|
||||||
is_fix = serializers.BooleanField(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)
|
route = serializers.CharField(label="工艺步骤ID", required=False)
|
||||||
mtask = 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,
|
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
|
||||||
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
|
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
|
||||||
MlogbwCreateUpdateSerializer, HandoverMgroupSerializer, MlogListSerializer,
|
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 .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.wpm.services import mlog_submit_validate, generate_new_batch
|
||||||
from apps.wf.models import State, Ticket
|
from apps.wf.models import State, Ticket
|
||||||
|
@ -383,6 +383,46 @@ class MlogViewSet(CustomModelViewSet):
|
||||||
res[i] = 0
|
res[i] = 0
|
||||||
return Response(res)
|
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):
|
class HandoverViewSet(CustomModelViewSet):
|
||||||
"""
|
"""
|
||||||
|
@ -609,9 +649,8 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
||||||
ins:Mlogb = serializer.save()
|
ins:Mlogb = serializer.save()
|
||||||
ins.mlog.cal_mlog_count_from_mlogb()
|
ins.mlog.cal_mlog_count_from_mlogb()
|
||||||
|
|
||||||
@transaction.atomic
|
@classmethod
|
||||||
def perform_create(self, serializer):
|
def p_create_after(cls, mlogbin:Mlogb):
|
||||||
mlogbin: Mlogb = serializer.save()
|
|
||||||
mlog:Mlog = mlogbin.mlog
|
mlog:Mlog = mlogbin.mlog
|
||||||
mgroup:Mgroup = mlog.mgroup
|
mgroup:Mgroup = mlog.mgroup
|
||||||
route:Route = mlogbin.route
|
route:Route = mlogbin.route
|
||||||
|
@ -744,6 +783,11 @@ class MlogbInViewSet(CreateModelMixin, UpdateModelMixin, DestroyModelMixin, Cust
|
||||||
raise ParseError("不支持生成产出物料!")
|
raise ParseError("不支持生成产出物料!")
|
||||||
mlog.cal_mlog_count_from_mlogb()
|
mlog.cal_mlog_count_from_mlogb()
|
||||||
|
|
||||||
|
@transaction.atomic
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
mlogbin: Mlogb = serializer.save()
|
||||||
|
MlogbInViewSet.p_create_after(mlogbin)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def gen_number_with_rule(cls, rule, material_out:Material, gen_count=1):
|
def gen_number_with_rule(cls, rule, material_out:Material, gen_count=1):
|
||||||
from apps.wpmw.models import Wpr
|
from apps.wpmw.models import Wpr
|
||||||
|
|
Loading…
Reference in New Issue