feat: utask添加优先级字段
This commit is contained in:
parent
0719ef8f42
commit
b3000b013f
|
@ -50,7 +50,7 @@ class MtaskFilter(filters.FilterSet):
|
||||||
"is_count_utask": ["exact"],
|
"is_count_utask": ["exact"],
|
||||||
"start_date": ["exact", "gte", "lte"],
|
"start_date": ["exact", "gte", "lte"],
|
||||||
"end_date": ["exact", "gte", "lte"],
|
"end_date": ["exact", "gte", "lte"],
|
||||||
"mgroup": ["exact"],
|
"mgroup": ["exact", "in"],
|
||||||
"mgroup__name": ["exact"],
|
"mgroup__name": ["exact"],
|
||||||
"mgroup__cate": ["exact"],
|
"mgroup__cate": ["exact"],
|
||||||
"mgroup__process": ["exact"],
|
"mgroup__process": ["exact"],
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.2.12 on 2025-06-11 03:15
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('pm', '0021_auto_20250317_1040'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='utask',
|
||||||
|
name='priority',
|
||||||
|
field=models.PositiveIntegerField(default=20, help_text='10:低;20:中;30:高', verbose_name='优先级'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -37,6 +37,7 @@ class Utask(CommonBDModel):
|
||||||
type = models.CharField('任务类型', max_length=10,
|
type = models.CharField('任务类型', max_length=10,
|
||||||
help_text=str(TASK_TYPE), default='mass')
|
help_text=str(TASK_TYPE), default='mass')
|
||||||
routepack = models.ForeignKey(RoutePack, verbose_name='关联工艺包', on_delete=models.SET_NULL, null=True, blank=True)
|
routepack = models.ForeignKey(RoutePack, verbose_name='关联工艺包', on_delete=models.SET_NULL, null=True, blank=True)
|
||||||
|
priority = models.PositiveIntegerField('优先级', default=20, help_text="10:低;20:中;30:高")
|
||||||
state = models.PositiveIntegerField(
|
state = models.PositiveIntegerField(
|
||||||
'状态', choices=UTASK_STATES, default=UTASK_CREATED, help_text=str(UTASK_STATES))
|
'状态', choices=UTASK_STATES, default=UTASK_CREATED, help_text=str(UTASK_STATES))
|
||||||
number = models.CharField('编号', max_length=50, unique=True)
|
number = models.CharField('编号', max_length=50, unique=True)
|
||||||
|
|
|
@ -27,7 +27,8 @@ class UtaskSerializer(CustomModelSerializer):
|
||||||
model = Utask
|
model = Utask
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'number': {"required": False, "allow_blank": True}
|
'number': {"required": False, "allow_blank": True},
|
||||||
|
"priority": {"required": False, "allow_null": True},
|
||||||
}
|
}
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
|
@ -52,6 +53,7 @@ class UtaskSerializer(CustomModelSerializer):
|
||||||
attrs['count_day'] = math.ceil(attrs['count']/rela_days)
|
attrs['count_day'] = math.ceil(attrs['count']/rela_days)
|
||||||
except Exception:
|
except Exception:
|
||||||
raise ParseError('日均任务数计划失败')
|
raise ParseError('日均任务数计划失败')
|
||||||
|
attrs["priority"] = attrs.get("priority", 20)
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
|
|
|
@ -29,7 +29,8 @@ class UtaskViewSet(CustomModelViewSet):
|
||||||
serializer_class = UtaskSerializer
|
serializer_class = UtaskSerializer
|
||||||
filterset_class = UtaskFilter
|
filterset_class = UtaskFilter
|
||||||
select_related_fields = ['material']
|
select_related_fields = ['material']
|
||||||
ordering = ['-start_date']
|
ordering_fields = ['priority', 'start_date']
|
||||||
|
ordering = ["priority", '-start_date']
|
||||||
|
|
||||||
def perform_destroy(self, instance):
|
def perform_destroy(self, instance):
|
||||||
if instance.state >= Utask.UTASK_WORKING:
|
if instance.state >= Utask.UTASK_WORKING:
|
||||||
|
@ -143,8 +144,8 @@ class MtaskViewSet(CustomModelViewSet):
|
||||||
filterset_class = MtaskFilter
|
filterset_class = MtaskFilter
|
||||||
select_related_fields = ['material_in', 'material_out', 'mgroup']
|
select_related_fields = ['material_in', 'material_out', 'mgroup']
|
||||||
prefetch_related_fields = ['mlog_mtask', 'b_mtask']
|
prefetch_related_fields = ['mlog_mtask', 'b_mtask']
|
||||||
ordering_fields = ['start_date', 'mgroup__process__sort', 'create_time']
|
ordering_fields = ["utask__priority", 'start_date', 'mgroup__process__sort', 'create_time']
|
||||||
ordering = ['-start_date', 'route__sort', 'mgroup__process__sort', '-create_time']
|
ordering = ["utask__priority", '-start_date', 'route__sort', 'mgroup__process__sort', '-create_time']
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer)
|
@action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=MtaskDaySerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
|
|
Loading…
Reference in New Issue