feat: mlog change接口
This commit is contained in:
parent
2f5edc041c
commit
2e60cb7eaf
|
@ -184,6 +184,10 @@ class Mlog(CommonADModel):
|
|||
def mlogb(self):
|
||||
return Mlogb.objects.filter(mlog=self).exclude(material_out=None)
|
||||
|
||||
@property
|
||||
def mlogb_full(self):
|
||||
return Mlogb.objects.filter(mlog=self)
|
||||
|
||||
@property
|
||||
def audit_ignore_fields(self):
|
||||
return ['create_by', 'update_by',
|
||||
|
|
|
@ -15,6 +15,7 @@ from apps.mtm.serializers import MaterialSimpleSerializer
|
|||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
from django.core.cache import cache
|
||||
from django.utils.timezone import localdate
|
||||
|
||||
|
||||
class OtherLogSerializer(CustomModelSerializer):
|
||||
|
@ -191,6 +192,15 @@ class MlogbSerializer(CustomModelSerializer):
|
|||
extra_kwargs = {
|
||||
'material_out': {'required': True, 'allow_null': False}}
|
||||
|
||||
class MlogbDetailSerializer(CustomModelSerializer):
|
||||
material_out_name = serializers.StringRelatedField(
|
||||
source='material_out', read_only=True)
|
||||
material_in_name = serializers.StringRelatedField(source='material_in', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Mlogb
|
||||
fields = '__all__'
|
||||
|
||||
class MlogSerializer(CustomModelSerializer):
|
||||
belong_dept = serializers.CharField(
|
||||
source='mgroup.belong_dept.id', read_only=True)
|
||||
|
@ -233,6 +243,9 @@ class MlogSerializer(CustomModelSerializer):
|
|||
shift_name = serializers.CharField(source='shift.name', read_only=True)
|
||||
mlogb = MlogbSerializer(
|
||||
label='多产出件信息', many=True, required=False)
|
||||
mlogb_full = MlogbDetailSerializer(
|
||||
label='物料信息', many=True, read_only=True
|
||||
)
|
||||
handle_users_ = UserSimpleSerializer(
|
||||
source='handle_users', many=True, read_only=True)
|
||||
equipments_name = serializers.StringRelatedField(
|
||||
|
@ -329,6 +342,17 @@ class MlogInitSerializer(CustomModelSerializer):
|
|||
attrs['material_out'] = route.material_out
|
||||
return attrs
|
||||
|
||||
class MlogChangeSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Mlog
|
||||
fields = ['id', 'work_end_time', 'handle_user', 'note']
|
||||
|
||||
def validate(self, attrs):
|
||||
if attrs.get('work_end_time', None):
|
||||
attrs['handle_date'] = localdate(attrs['work_end_time'])
|
||||
return attrs
|
||||
|
||||
|
||||
class MlogRevertSerializer(serializers.Serializer):
|
||||
change_reason = serializers.CharField(label='撤回原因')
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, At
|
|||
from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogRevertSerializer,
|
||||
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer,
|
||||
GenHandoverSerializer, GenHandoverWmSerializer, MlogAnaSerializer,
|
||||
AttLogSerializer, OtherLogSerializer, MlogInitSerializer)
|
||||
AttLogSerializer, OtherLogSerializer, MlogInitSerializer, MlogChangeSerializer)
|
||||
from .services import mlog_submit, update_mtask, handover_submit, mlog_revert, cal_material_count_from_mlog, cal_mtask_progress_from_mlog
|
||||
from apps.utils.thread import MyThread
|
||||
from apps.monitor.services import create_auditlog, delete_auditlog
|
||||
|
@ -170,14 +170,27 @@ class MlogViewSet(CustomModelViewSet):
|
|||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'mlog.init'}, serializer_class=MlogInitSerializer)
|
||||
def init(self, request, *args, **kwargs):
|
||||
"""
|
||||
先初始化创建生产日志
|
||||
"""初始化日志
|
||||
|
||||
初始化日志
|
||||
"""
|
||||
sr = MlogInitSerializer(data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
ins = sr.save()
|
||||
return Response(MlogSerializer(ins).data)
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.change'}, serializer_class=MlogChangeSerializer)
|
||||
def change(self, request, *args, **kwargs):
|
||||
"""修改日志
|
||||
|
||||
修改日志
|
||||
"""
|
||||
ins = self.get_object()
|
||||
sr = MlogChangeSerializer(instance=ins, data=request.data)
|
||||
sr.is_valid(raise_exception=True)
|
||||
sr.save()
|
||||
return Response(MlogSerializer(ins).data)
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'mlog.submit'}, serializer_class=Serializer)
|
||||
def submit(self, request, *args, **kwargs):
|
||||
"""日志提交(变动车间库存)
|
||||
|
|
Loading…
Reference in New Issue