Merge branch 'ao_for_preplacement' into 'dev'

ao_for_placement_point

See merge request spatial/postamates!123
dev
Aleksandr Popov 3 years ago
commit 605801a4f6

@ -53,6 +53,7 @@ class PointService:
obj = models.PlacementPoint.objects.filter(street=response.get('street'), obj = models.PlacementPoint.objects.filter(street=response.get('street'),
house_number=response.get('houseNumber'), house_number=response.get('houseNumber'),
category=cat).values().first() category=cat).values().first()
rayon = models.Rayon.objects.filter(polygon__intersects=wkt).first()
if obj: if obj:
distances = models.PlacementPointPVZDistance.objects.filter(placement_point=obj.get('id')).all() distances = models.PlacementPointPVZDistance.objects.filter(placement_point=obj.get('id')).all()
obj.pop('id') obj.pop('id')
@ -64,6 +65,15 @@ class PointService:
dist=d.dist) dist=d.dist)
matched += 1 matched += 1
elif not rayon:
models.PrePlacementPoint.objects.get_or_create(address=addr, street=response.get('street'),
house_number=response.get('houseNumber'),
subject_rf=response.get('state'),
city=response.get('city'),
category=cat, geometry=wkt, sample_trn=False,
is_vis=True,
matching_status=MatchingStatus.Error.name,
status=PointStatus.Pending.name)
else: else:
models.PrePlacementPoint.objects.get_or_create(address=addr, street=response.get('street'), models.PrePlacementPoint.objects.get_or_create(address=addr, street=response.get('street'),
house_number=response.get('houseNumber'), house_number=response.get('houseNumber'),
@ -72,7 +82,7 @@ class PointService:
category=cat, geometry=wkt, sample_trn=False, category=cat, geometry=wkt, sample_trn=False,
is_vis=True, is_vis=True,
matching_status=MatchingStatus.New.name, matching_status=MatchingStatus.New.name,
status=PointStatus.Pending.name) status=PointStatus.Pending.name, area=rayon, district=rayon.AO)
return total, matched, problem return total, matched, problem
def make_enrichment(self): def make_enrichment(self):
@ -180,8 +190,6 @@ class PointService:
placement_point = models.PlacementPoint.objects.annotate( placement_point = models.PlacementPoint.objects.annotate(
dist=Dist('geometry', origin)).order_by('dist')[0] dist=Dist('geometry', origin)).order_by('dist')[0]
point.target_cnt_ao_mean = placement_point.target_cnt_ao_mean 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:
self.calculate_dist_for_group(point, group, instance_type=models.PrePlacementPointPVZDistance) self.calculate_dist_for_group(point, group, instance_type=models.PrePlacementPointPVZDistance)

@ -379,6 +379,7 @@ class PrePlacementPointViewSet(PlacementPointViewSet):
qs = qs.filter(matching_status=MatchingStatus.New.name) qs = qs.filter(matching_status=MatchingStatus.New.name)
for q in qs: for q in qs:
obj = model_to_dict(q) obj = model_to_dict(q)
print(obj)
obj.pop('matching_status') obj.pop('matching_status')
obj.pop('id') obj.pop('id')
ao = obj.pop('district') ao = obj.pop('district')

Loading…
Cancel
Save