From 741032f4e8ddcf18c48d1f1b35d5f6d0e74ef95c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 27 Nov 2023 15:38:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=9D=87?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/pm/migrations/0015_utask_count_day.py | 18 ++++++++++++++++++ apps/pm/models.py | 1 + apps/pm/serializers.py | 10 +++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 apps/pm/migrations/0015_utask_count_day.py diff --git a/apps/pm/migrations/0015_utask_count_day.py b/apps/pm/migrations/0015_utask_count_day.py new file mode 100644 index 00000000..3a077f2f --- /dev/null +++ b/apps/pm/migrations/0015_utask_count_day.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2023-11-27 07:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pm', '0014_mtask_peifen_kg'), + ] + + operations = [ + migrations.AddField( + model_name='utask', + name='count_day', + field=models.PositiveIntegerField(default=0, verbose_name='日均任务数'), + ), + ] diff --git a/apps/pm/models.py b/apps/pm/models.py index 42d5e148..770ffca2 100644 --- a/apps/pm/models.py +++ b/apps/pm/models.py @@ -34,6 +34,7 @@ class Utask(CommonBDModel): Material, verbose_name='领用物', on_delete=models.CASCADE, related_name='utask_material_in', null=True, blank=True) count = models.PositiveIntegerField('任务数', default=1) count_real = models.PositiveIntegerField('实际生产数', default=0) + count_day = models.PositiveIntegerField('日均任务数', default=0) count_ok = models.PositiveIntegerField('合格数', default=0) count_notok = models.PositiveIntegerField('不合格数', default=0) start_date = models.DateField('计划开工日期') diff --git a/apps/pm/serializers.py b/apps/pm/serializers.py index 10721915..2fa97378 100644 --- a/apps/pm/serializers.py +++ b/apps/pm/serializers.py @@ -1,5 +1,6 @@ from rest_framework import serializers -from rest_framework.exceptions import ValidationError +from rest_framework.exceptions import ValidationError, ParseError +import math from apps.mtm.serializers import MaterialSimpleSerializer from apps.pm.models import Mtask, Utask @@ -19,8 +20,15 @@ class UtaskSerializer(CustomModelSerializer): fields = '__all__' def validate(self, attrs): + end_date = attrs['end_date'] + start_date = attrs['start_date'] if 'mgroup' in attrs and attrs['mgroup']: attrs['belong_dept'] = attrs['mgroup'].belong_dept + try: + rela_days = (end_date - start_date).days + 1 + attrs['count_day'] = math.ceil(attrs['count']/rela_days) + except Exception: + raise ParseError('日均任务数计划失败') return attrs def update(self, instance, validated_data):