diff --git a/apps/wpm/services.py b/apps/wpm/services.py index d1383fdd..e3b48061 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -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() diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 10ca04c2..c2b6b637 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -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']