feat: 获取可交接到的工段
This commit is contained in:
parent
622d594795
commit
b96846d2c0
|
@ -0,0 +1,24 @@
|
||||||
|
# Generated by Django 3.2.12 on 2025-02-07 02:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mtm', '0049_auto_20250107_0949'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='route',
|
||||||
|
name='process',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='route_p', to='mtm.process', verbose_name='工序'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='routemat',
|
||||||
|
name='route',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routemat_route', to='mtm.route', verbose_name='关联路线'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -221,7 +221,7 @@ class Route(CommonADModel):
|
||||||
material = models.ForeignKey(
|
material = models.ForeignKey(
|
||||||
Material, verbose_name='关联产品', on_delete=models.CASCADE, null=True, blank=True)
|
Material, verbose_name='关联产品', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
process = models.ForeignKey(
|
process = models.ForeignKey(
|
||||||
Process, verbose_name='工序', on_delete=models.CASCADE, null=True, blank=True)
|
Process, verbose_name='工序', on_delete=models.CASCADE, null=True, blank=True, related_name="route_p")
|
||||||
mgroup = models.ForeignKey(Mgroup, verbose_name='指定工段', on_delete=models.CASCADE,
|
mgroup = models.ForeignKey(Mgroup, verbose_name='指定工段', on_delete=models.CASCADE,
|
||||||
null=True, blank=True, related_name='route_mgroup')
|
null=True, blank=True, related_name='route_mgroup')
|
||||||
sort = models.PositiveSmallIntegerField('顺序', default=1)
|
sort = models.PositiveSmallIntegerField('顺序', default=1)
|
||||||
|
@ -256,5 +256,5 @@ class Route(CommonADModel):
|
||||||
return rq
|
return rq
|
||||||
|
|
||||||
class RouteMat(BaseModel):
|
class RouteMat(BaseModel):
|
||||||
route = models.ForeignKey(Route, verbose_name='关联路线', on_delete=models.CASCADE)
|
route = models.ForeignKey(Route, verbose_name='关联路线', on_delete=models.CASCADE, related_name="routemat_route")
|
||||||
material = models.ForeignKey(Material, verbose_name='辅助物料', on_delete=models.CASCADE)
|
material = models.ForeignKey(Material, verbose_name='辅助物料', on_delete=models.CASCADE)
|
|
@ -933,3 +933,8 @@ class BatchStSerializer(CustomModelSerializer):
|
||||||
model = BatchSt
|
model = BatchSt
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class HandoverMgroupSerializer(serializers.Serializer):
|
||||||
|
material_in = serializers.CharField(label="物料ID")
|
||||||
|
type = serializers.IntegerField(label="交送类型")
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ from django.db.models import Sum
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
|
|
||||||
from apps.mtm.models import Material, Process, Route
|
from apps.mtm.models import Material, Process, Route, Mgroup, RoutePack
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from apps.utils.mixins import CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin
|
from apps.utils.mixins import CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer,
|
||||||
AttLogSerializer, OtherLogSerializer, MlogInitSerializer, MlogChangeSerializer,
|
AttLogSerializer, OtherLogSerializer, MlogInitSerializer, MlogChangeSerializer,
|
||||||
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
|
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
|
||||||
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
|
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer,
|
||||||
MlogbwCreateUpdateSerializer)
|
MlogbwCreateUpdateSerializer, HandoverMgroupSerializer)
|
||||||
from .services import mlog_submit, handover_submit, mlog_revert
|
from .services import mlog_submit, handover_submit, mlog_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
|
from apps.wf.models import State
|
||||||
|
@ -382,6 +382,29 @@ class HandoverViewSet(CustomModelViewSet):
|
||||||
handover_submit(ins, user, None)
|
handover_submit(ins, user, None)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=True, perms_map={'post': '*'}, serializer_class=HandoverMgroupSerializer)
|
||||||
|
@transaction.atomic
|
||||||
|
def mgroups(self, request, *args, **kwargs):
|
||||||
|
"""获取可交接到的工段
|
||||||
|
|
||||||
|
获取可交接到的工段
|
||||||
|
"""
|
||||||
|
sr = HandoverMgroupSerializer(data=request.data)
|
||||||
|
sr.is_valid(raise_exception=True)
|
||||||
|
vdata = sr.validated_data
|
||||||
|
materialInId = vdata['material_in']
|
||||||
|
type = vdata['type']
|
||||||
|
m_qs = Mgroup.objects.all()
|
||||||
|
if type in [Handover.H_NORMAL, Handover.H_CHANGE]:
|
||||||
|
m_qs = m_qs.filter(process__route_p_routepack__state=RoutePack.RP_S_CONFIRM)
|
||||||
|
m_qs = m_qs.filter(
|
||||||
|
process__route_p__material_in__id=materialInId)|m_qs.filter(
|
||||||
|
process__route_p__routemat_route__material__id=materialInId
|
||||||
|
)
|
||||||
|
elif type in [Handover.H_SCRAP]:
|
||||||
|
m_qs = m_qs.filter(process=None)
|
||||||
|
return Response(list(m_qs.values('id', 'name')))
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverWmSerializer)
|
@action(methods=['post'], detail=False, perms_map={'post': 'handover.create'}, serializer_class=GenHandoverWmSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def gen_by_wm(self, request):
|
def gen_by_wm(self, request):
|
||||||
|
|
Loading…
Reference in New Issue