AlexP077 2 years ago
parent 6de29d039f
commit b2961ba766

@ -136,11 +136,12 @@ class PointService:
origin = point.geometry
qs = models.PlacementPoint.objects.filter(status=PointStatus.Working.name).annotate(
dist=Dist('geometry', origin)).order_by('dist')
point.target_dist = qs[0].dist.m
point.target_post_cnt = qs.filter(
dist__lt=Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS)
).count()
point.target_cnt_ao_mean = qs[0].target_cnt_ao_mean
if qs:
point.target_dist = qs[0].dist.m
point.target_post_cnt = qs.filter(
dist__lt=Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS)
).count()
point.target_cnt_ao_mean = qs[0].target_cnt_ao_mean
point.rival_post_cnt = models.Post_and_pvz.objects.filter(
category__name="Постамат", include_in_ml=True,
wkt__distance_lt=(origin, Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS))).count()
@ -232,8 +233,10 @@ class PointService:
param1__sum=Sum('param1'))['param1__sum']
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
dist=Dist('geometry', origin)).order_by('dist')
if placement_point:
placement_point = placement_point[0]
point.target_cnt_ao_mean = placement_point.target_cnt_ao_mean
point.save()
for group in groups:
self.calculate_dist_for_group(point, group, instance_type=models.PrePlacementPointPVZDistance)
@ -302,7 +305,7 @@ class PointService:
data = pd.DataFrame(serializer.data)
if not data.empty:
if data['start_date'].any():
data['start_date'] = data.get('start_date').dt.tz_localize(None)
data['start_date'] = data['start_date'].apply(lambda x : pd.to_datetime(x).tz_localize(None) if x else None)
if data['sample_trn'].any():
data['sample_trn'] = data['sample_trn'].astype(int)
data.rename(columns={'district_id': 'district', 'area_id': 'area'}, inplace=True)

@ -410,8 +410,12 @@ class PrePlacementPointViewSet(PlacementPointViewSet):
@action(detail=False, methods=['delete'])
def delete_points(self, request):
ids = request.POST['ids'].split(',')
PointService.delete_preplacement_points(ids)
ids = request.POST.get('ids')
if ids:
ids = ids.split(',')
PointService.delete_preplacement_points(ids)
else:
models.PrePlacementPoint.objects.all().delete()
return Response(status=HTTPStatus.OK, )
@action(detail=False, methods=['get'])

Loading…
Cancel
Save