fix: mlog confirm bug

This commit is contained in:
caoqianming 2023-10-19 14:07:09 +08:00
parent 21f53dd3ef
commit 53d2276998
2 changed files with 13 additions and 9 deletions

View File

@ -109,7 +109,7 @@ def mlog_confirm(mlog: Mlog):
生产日志创建后需要执行的操作
"""
mtask = mlog.mtask
belong_dept = mtask.belong_dept
belong_dept = mtask.mgroup.belong_dept
material_out = mtask.material_out
material_in = mtask.material_in
if material_in and material_in.is_hidden is False: # 需要进行车间库存管理
@ -136,17 +136,21 @@ def mlog_confirm(mlog: Mlog):
wmaterial.save()
def update_mtask_count(mtask: Mtask):
res = Mlog.objects.filter(mtask=mtask).aaggregate(sum_count_real=Sum(
def update_mtask(mtask: Mtask):
res = Mlog.objects.filter(mtask=mtask).aggregate(sum_count_real=Sum(
'count_real'), sum_count_ok=Sum('count_ok'), sum_count_notok=Sum('count_notok'))
mtask.count_real = res['sum_count_real'] if res['sum_count_real'] else 0
mtask.count_ok = res['sum_count_ok'] if res['sum_count_ok'] else 0
mtask.count_notok = res['sum_count_notok'] if res['sum_count_notok'] else 0
mtask.save()
if mtask.parent:
res2 = Mtask.objects.filter(parent=mtask.parent).aaggregate(sum_count_real=Sum(
fmtask = mtask.parent
res2 = Mtask.objects.filter(parent=fmtask).aggregate(sum_count_real=Sum(
'count_real'), sum_count_ok=Sum('count_ok'), sum_count_notok=Sum('count_notok'))
mtask.count_real = res2['sum_count_real'] if res2['sum_count_real'] else 0
mtask.count_ok = res2['sum_count_ok'] if res2['sum_count_ok'] else 0
mtask.count_notok = res2['sum_count_notok'] if res2['sum_count_notok'] else 0
mtask.save()
fmtask.count_real = res2['sum_count_real'] if res2['sum_count_real'] else 0
fmtask.count_ok = res2['sum_count_ok'] if res2['sum_count_ok'] else 0
fmtask.count_notok = res2['sum_count_notok'] if res2['sum_count_notok'] else 0
fmtask.save()
if Mtask.objects.filter(parent=fmtask).exclude(state=Mtask.MTASK_DONE).count() == 0:
fmtask.state = Mtask.MTASK_DONE
fmtask.save()

View File

@ -103,7 +103,7 @@ class MlogViewSet(CustomModelViewSet):
生产日志
"""
perms_map = {'get': '', 'post': 'mlog.create', 'delete': 'mlog.delete'}
perms_map = {'get': '*', 'post': 'mlog.create', 'delete': 'mlog.delete'}
queryset = Mlog.objects.all()
serializer_class = MlogSerializer
select_related_fields = ['create_by', 'update_by', 'mtask']