pvz_count_status

dev
AlexP077 3 years ago
parent 6823265c53
commit 684cba5e47

@ -447,17 +447,32 @@ def start_pvz_group_count(instance_id: int):
instance = models.Post_and_pvzGroup.objects.filter(id=instance_id).first() instance = models.Post_and_pvzGroup.objects.filter(id=instance_id).first()
objects = models.Post_and_pvz.objects.filter(group=instance) objects = models.Post_and_pvz.objects.filter(group=instance)
objects.update(include_in_ml=instance.include_in_ml, visible=instance.visible) objects.update(include_in_ml=instance.include_in_ml, visible=instance.visible)
for obj in objects: status, _ = models.TaskStatus.objects.get_or_create(task_name='Смена статуса для групп ПВЗ и Постаматов')
total = objects.count()
for _i, obj in enumerate(objects):
status.status = "Подсчет кол-ва ПВЗ вокруг точек: " + str(int((_i+1) / total * 100)) + "%"
status.save()
LayerService().count_post_pvz_for_placementpoint(obj) LayerService().count_post_pvz_for_placementpoint(obj)
status.status = "Подсчет завершен"
status.save()
@shared_task() @shared_task()
def start_pvz_category_count(instance_id: int): def start_pvz_category_count(instance_id: int):
status, _ = models.TaskStatus.objects.get_or_create(task_name='Смена статуса для категорий ПВЗ и Постаматов')
instance = models.Post_and_pvzCategory.objects.filter(id=instance_id).first() instance = models.Post_and_pvzCategory.objects.filter(id=instance_id).first()
groups = models.Post_and_pvzGroup.objects.filter(category=instance) groups = models.Post_and_pvzGroup.objects.filter(category=instance)
groups.update(include_in_ml=instance.include_in_ml, visible=instance.visible) groups.update(include_in_ml=instance.include_in_ml, visible=instance.visible)
total = 0
for gr in groups: for gr in groups:
total+=models.Post_and_pvz.objects.filter(group=gr).count()
for gr in groups:
_i=0
objects = models.Post_and_pvz.objects.filter(group=gr) objects = models.Post_and_pvz.objects.filter(group=gr)
objects.update(include_in_ml=instance.include_in_ml, visible=instance.visible) objects.update(include_in_ml=instance.include_in_ml, visible=instance.visible)
for obj in objects: for obj in objects:
_i+=1
status.status = "Подсчет кол-ва ПВЗ вокруг точек: " + str(int(_i / total * 100)) + "%"
status.save()
LayerService().count_post_pvz_for_placementpoint(obj) LayerService().count_post_pvz_for_placementpoint(obj)
status.status = "Подсчет завершен"
status.save()

Loading…
Cancel
Save