|
|
|
@ -52,17 +52,19 @@ class PointService:
|
|
|
|
wkt = "POINT(" + str(coords['lng']) + " " + str(coords['lat']) + ")"
|
|
|
|
wkt = "POINT(" + str(coords['lng']) + " " + str(coords['lat']) + ")"
|
|
|
|
response = response[0]['address']
|
|
|
|
response = response[0]['address']
|
|
|
|
obj = models.PlacementPoint.objects.filter(street=response['street'], house_number=response['houseNumber'],
|
|
|
|
obj = models.PlacementPoint.objects.filter(street=response['street'], house_number=response['houseNumber'],
|
|
|
|
subject_rf=response.get('state'),city=response['city'],is_vis=True,
|
|
|
|
subject_rf=response.get('state'), city=response['city'],
|
|
|
|
|
|
|
|
is_vis=True,
|
|
|
|
category=cat).values().first()
|
|
|
|
category=cat).values().first()
|
|
|
|
if obj:
|
|
|
|
if obj:
|
|
|
|
obj.pop('id')
|
|
|
|
obj.pop('id')
|
|
|
|
models.PrePlacementPoint.objects.get_or_create(**{**obj, "matching_status": MatchingStatus.Matched.name})
|
|
|
|
models.PrePlacementPoint.objects.get_or_create(
|
|
|
|
|
|
|
|
**{**obj, "matching_status": MatchingStatus.Matched.name})
|
|
|
|
matched += 1
|
|
|
|
matched += 1
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
models.PrePlacementPoint.objects.get_or_create(address=addr, street=response['street'],
|
|
|
|
models.PrePlacementPoint.objects.get_or_create(address=addr, street=response['street'],
|
|
|
|
house_number=response['houseNumber'],
|
|
|
|
house_number=response['houseNumber'],
|
|
|
|
category=cat, geometry=wkt,
|
|
|
|
category=cat, geometry=wkt,
|
|
|
|
matching_status=MatchingStatus.New.name)
|
|
|
|
matching_status=MatchingStatus.New.name)
|
|
|
|
return total, matched, problem
|
|
|
|
return total, matched, problem
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
@ -168,6 +170,11 @@ class PointService:
|
|
|
|
wkt__distance_lt=(origin, Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS))).aggregate(
|
|
|
|
wkt__distance_lt=(origin, Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS))).aggregate(
|
|
|
|
param1__sum=Sum('param1'))['param1__sum']
|
|
|
|
param1__sum=Sum('param1'))['param1__sum']
|
|
|
|
point.age_day = AGE_DAY_LIMIT
|
|
|
|
point.age_day = AGE_DAY_LIMIT
|
|
|
|
|
|
|
|
placement_point = models.PlacementPoint.objects.annotate(
|
|
|
|
|
|
|
|
dist=Dist('geometry', origin)).order_by('dist')[0]
|
|
|
|
|
|
|
|
point.target_cnt_ao_mean = placement_point.target_cnt_ao_mean
|
|
|
|
|
|
|
|
point.area = placement_point.area
|
|
|
|
|
|
|
|
point.district=placement_point.district
|
|
|
|
point.save()
|
|
|
|
point.save()
|
|
|
|
for group in groups:
|
|
|
|
for group in groups:
|
|
|
|
post_object = models.Post_and_pvz.objects.filter(group__name=group.name).annotate(
|
|
|
|
post_object = models.Post_and_pvz.objects.filter(group__name=group.name).annotate(
|
|
|
|
@ -185,6 +192,10 @@ class PointService:
|
|
|
|
dist=post_object.distance.m)
|
|
|
|
dist=post_object.distance.m)
|
|
|
|
run_psql_command()
|
|
|
|
run_psql_command()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
|
|
|
def delete_preplacement_points(ids: list):
|
|
|
|
|
|
|
|
models.PrePlacementPoint.objects.filter(id__in=ids).all().delete()
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def get_min_distances_to_group(postamat_id: str):
|
|
|
|
def get_min_distances_to_group(postamat_id: str):
|
|
|
|
return {d['pvz_postamates_group']: d['dist'] for d in list(
|
|
|
|
return {d['pvz_postamates_group']: d['dist'] for d in list(
|
|
|
|
|