feat: 增加日均计划数
This commit is contained in:
parent
98c3584710
commit
741032f4e8
|
|
@ -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='日均任务数'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -34,6 +34,7 @@ class Utask(CommonBDModel):
|
||||||
Material, verbose_name='领用物', on_delete=models.CASCADE, related_name='utask_material_in', null=True, blank=True)
|
Material, verbose_name='领用物', on_delete=models.CASCADE, related_name='utask_material_in', null=True, blank=True)
|
||||||
count = models.PositiveIntegerField('任务数', default=1)
|
count = models.PositiveIntegerField('任务数', default=1)
|
||||||
count_real = models.PositiveIntegerField('实际生产数', default=0)
|
count_real = models.PositiveIntegerField('实际生产数', default=0)
|
||||||
|
count_day = models.PositiveIntegerField('日均任务数', default=0)
|
||||||
count_ok = models.PositiveIntegerField('合格数', default=0)
|
count_ok = models.PositiveIntegerField('合格数', default=0)
|
||||||
count_notok = models.PositiveIntegerField('不合格数', default=0)
|
count_notok = models.PositiveIntegerField('不合格数', default=0)
|
||||||
start_date = models.DateField('计划开工日期')
|
start_date = models.DateField('计划开工日期')
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from rest_framework import serializers
|
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.mtm.serializers import MaterialSimpleSerializer
|
||||||
from apps.pm.models import Mtask, Utask
|
from apps.pm.models import Mtask, Utask
|
||||||
|
|
@ -19,8 +20,15 @@ class UtaskSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
|
end_date = attrs['end_date']
|
||||||
|
start_date = attrs['start_date']
|
||||||
if 'mgroup' in attrs and attrs['mgroup']:
|
if 'mgroup' in attrs and attrs['mgroup']:
|
||||||
attrs['belong_dept'] = attrs['mgroup'].belong_dept
|
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
|
return attrs
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue