diff --git a/apps/wpm/migrations/0006_stsflog_duration.py b/apps/wpm/migrations/0006_stsflog_duration.py new file mode 100644 index 00000000..860f551a --- /dev/null +++ b/apps/wpm/migrations/0006_stsflog_duration.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2023-07-25 03:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wpm', '0005_auto_20230724_1118'), + ] + + operations = [ + migrations.AddField( + model_name='stsflog', + name='duration', + field=models.FloatField(blank=True, null=True, verbose_name='停机时长(h)'), + ), + ] diff --git a/apps/wpm/services.py b/apps/wpm/services.py index 49b9ebe3..a8972b52 100644 --- a/apps/wpm/services.py +++ b/apps/wpm/services.py @@ -19,4 +19,11 @@ def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.da "end_time": end_time, "work_hour": round((end_time-start_time).total_seconds/3600) }) - current_date = current_date + datetime.timedelta(days=1) \ No newline at end of file + current_date = current_date + datetime.timedelta(days=1) + + +def cal_shut_hour(): + """ + 计算班的停机时间 + """ + pass \ No newline at end of file diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 478b6bdc..706d1b0c 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -75,14 +75,9 @@ class SfLogViewSet(UpdateModelMixin, ListModelMixin, DestroyModelMixin, CustomGe for material in test_materials: testitems = TestItem.objects.filter(id__in=material.testitems).order_by('sort', '-create_time') for testitem in testitems: - end_time_local = localtime(obj.end_time) - params = {'type': 'sflog', 'material': material, 'testitem': testitem, 'sflog': obj} - params_default = params.update({'year_s': end_time_local.year, 'month_s': end_time_local.month, 'day_s': end_time_local.day}) - ins, _ = QuaStat.objects.get_or_create(**params, defaults=params_default) - if ins.create_by is None: - ins.create_by = request.user - ins.belong_dept = obj.mgroup.belong_dept - ins.save() + params = {'material': material, 'testitem': testitem, 'sflog': obj} + params_default = params.update({'create_by': request.user, 'belong_dept': obj.mgroup.belong_dept}) + QuaStat.objects.get_or_create(**params, defaults=params_default) qs = QuaStat.objects.filter(type='sflog', sflog=obj).order_by('material__sort', 'material__create_time', 'testitem__sort', 'testitem__create_time') sr = QuaStatSerializer(instance=qs, many=True) return Response(sr.data)