feat: 出入库记录添加乐观锁

This commit is contained in:
caoqianming 2025-09-04 14:42:14 +08:00
parent 4cffb8a563
commit 01b30e21d3
1 changed files with 13 additions and 11 deletions

View File

@ -206,12 +206,13 @@ class MIOViewSet(CustomModelViewSet):
if ins.state != MIO.MIO_CREATE:
raise ParseError('记录状态异常')
with transaction.atomic():
ins.submit_time = timezone.now()
ins.state = MIO.MIO_SUBMITED
ins.submit_user = request.user
ins.update_by = request.user
ins.save()
InmService.update_inm(ins)
now = timezone.now()
updated_count = MIO.objects.filter(id=ins.id, submit_time__isnull=True).update(
submit_time=now, update_time=now, state=MIO.MIO_SUBMITED, submit_user=request.user, update_by=request.user)
if updated_count == 1:
InmService.update_inm(ins)
else:
raise ParseError('记录正在处理中,请稍后再试')
InmService.update_material_count(ins)
return Response(MIOListSerializer(instance=ins).data)
@ -228,11 +229,12 @@ class MIOViewSet(CustomModelViewSet):
if ins.submit_user != user:
raise ParseError('非提交人不可撤回')
with transaction.atomic():
ins.submit_time = None
ins.state = MIO.MIO_CREATE
ins.update_by = user
ins.save()
InmService.update_inm(ins, is_reverse=True)
updated_count = MIO.objects.filter(id=ins.id, submit_time__isnull=False).update(
submit_time=None, update_time=timezone.now(), state=MIO.MIO_CREATE, submit_user=None, update_by=request.user)
if updated_count == 1:
InmService.update_inm(ins, is_reverse=True)
else:
raise ParseError('记录正在处理中,请稍后再试')
InmService.update_material_count(ins)
return Response()