feat: 增加多个友好接口

This commit is contained in:
caoqianming 2023-10-23 09:02:37 +08:00
parent a69fa79de8
commit a1c74a0fa6
2 changed files with 26 additions and 20 deletions

View File

@ -63,3 +63,15 @@ class Mtask(CommonADModel):
end_date = models.DateField('计划完工日期')
utask = models.ForeignKey(
Utask, verbose_name='关联大任务', on_delete=models.CASCADE, null=True, blank=True, related_name='mtask_utask')
@property
def related(self):
"""
当天已下达的所有的兄弟小任务
"""
if self.utask:
return Mtask.objects.filter(
utask=self.utask, mgroup__belong_dept=self.mgroup.belong_dept, start_date=self.start_date, end_date=self.start_date, state=self.MTASK_ASSGINED).order_by(
'utask', 'mgroup__process__sort', 'create_time'
)
return Mtask.objects.none()

View File

@ -119,26 +119,23 @@ class MtaskViewSet(CustomModelViewSet):
res_data.append(val)
return Response(res_data)
# @action(methods=['post'], detail=False, perms_map={'post': 'mtask.schedue'}, serializer_class=SchedueSerializer)
# @transaction.atomic
# def schedue_from_orderitems(self, request, *args, **kwargs):
# """从多个订单明细自动排产
@action(methods=['get'], detail=True, perms_map={'get': '*'})
@transaction.atomic
def related(self, request, *args, **kwargs):
"""获取已下达的所有的兄弟小任务
# 从多个订单明细自动排产
# """
# sr = SchedueSerializer(data=request.data)
# sr.is_valid(raise_exception=True)
# vdata = sr.validated_data
# PmService.schedue_from_orderitems(request.user,
# request.data['orderitems'], vdata['start_date'], vdata.get('end_date', None))
# return Response()
获取已下达的所有的兄弟小任务
"""
obj = self.get_object()
rdata = MtaskSerializer(instance=obj.related, many=True).data
return Response(rdata)
def perform_destroy(self, instance):
if instance.state != Mtask.MTASK_CREATED:
raise ParseError('该任务非创建中不可删除')
return super().perform_destroy(instance)
@action(methods=['post'], detail=True, perms_map={'post': 'mtask.submit'}, serializer_class=PkSerializer)
@action(methods=['post'], detail=False, perms_map={'post': 'mtask.submit'}, serializer_class=PkSerializer)
@transaction.atomic
def submit(self, request):
"""提交任务(根据任务ID)
@ -154,14 +151,11 @@ class MtaskViewSet(CustomModelViewSet):
@action(methods=['post'], detail=True, perms_map={'post': 'mtask.submit'}, serializer_class=Serializer)
@transaction.atomic
def submit_related_same_day(self, request):
"""提交同一天该部门下的所有兄弟小任务
"""提交同一天该部门下大任务的所有兄弟小任务
提交同一天的该部门下的所有兄弟小任务
提交同一天的该部门下大任务的所有兄弟小任务
"""
mtask = self.get_object()
utask = mtask.utask
if utask:
mtasks = Mtask.objects.filter(utask=utask, belong_dept=mtask.belong_dept,
start_date=mtask.start_date, end_date=mtask.end_date, state=Mtask.MTASK_ASSGINED)
PmService.mtasks_submit(mtasks)
mtasks = mtask.related
PmService.mtasks_submit(mtasks)
return Response()