def registrer_sag(filnavn: click.Path, **kwargs) -> None: """Skriv indledende sagsoplysninger til FIRE""" s = get_setup_dict(filnavn) assert "sagsid" in s assert "sagsbehandler" in s beskrivelse = afsnitsoverskrift(filnavn, "NIVELLEMENTSPROJEKT") sagsinfo = Sagsinfo( aktiv="true", behandler=s["sagsbehandler"], beskrivelse=beskrivelse ) sag = Sag(id=s["sagsid"], sagsinfos=[sagsinfo]) # Allerede registreret? try: sag2 = firedb.hent_sag(sag.id) except NoResultFound: firedb.indset_sag(sag) else: print("Sag allerede registreret") sag2 = firedb.hent_sag(sag.id) assert sag2.id == sag.id assert sag2.sagsinfos[0].beskrivelse == sag2.sagsinfos[0].beskrivelse print(sag2) assert sag2.id == sag.id for sagsinfo in sag.sagsinfos: print(repr(sagsinfo))
def main(): sagsbeskrivelse = """Indsættelse af GR96/UTM24 koordinater. Koordinaterne indsættes i FIRE i forbindelse med migrering fra REFGEO til FIRE. Det er nødvendigt at indsætte projicerede koordinater fordi Oracle databasens UTM transformation ikke er pålidelig uden for den givne UTM zone. Dette er et problem i forbindelse med udstillingsmodellen, hvor modellen kræver at der stilles UTM northing og easting koordinater til rådighed. Da Oracle ikke kan beregne disse koordinater troværdigt gør vi det i stedet her med PROJ som motor. PROJ 6.3.1 benyttes. Tidsstemplet på de transformerede koordinater sættes til det aktuelle tidspunkt ved indsættelse, og den oprindelige koordinats tidsstempel føres ikke med til de nye transformerede koordinater. """ # Undgå at oprette tonsvis af sager i test-fasen. # Hvis sagen findes genbruges den, hvis ikke # oprettes den. sagid = "6baaf540-3e8a-41b1-ae61-b785adf9687c" try: sag = firedb.hent_sag(sagid) except: sagsinfo = Sagsinfo(aktiv="true", behandler="Kristian Evers", beskrivelse=sagsbeskrivelse) firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo])) finally: sag = firedb.hent_sag(sagid) utm24_2d = convert_coordinates("EPSG:4747") add_coordinates(sag, utm24_2d, "Indsættelse af koordinater transformeret fra GR96 2D") utm24_3d = convert_coordinates("EPSG:4909") add_coordinates(sag, utm24_3d, "Indsættelse af koordinater transformeret fra GR96 3D") utm24_the_rest = convert_heights() add_coordinates( sag, utm24_the_rest, "Indsættelse af koordinater transformeret fra WGS84 (lokationskoordinater)" )
def main(): infotype = firedb.hent_punktinformationtype(ATTRIBUT) if infotype is None: firedb.indset_punktinformationtype( PunktInformationType( name=ATTRIBUT, anvendelse=fire.api.model.PunktInformationTypeAnvendelse.TEKST, beskrivelse="Fundamentalpunkt i referencesystemet angivet i TEKST", ) ) infotype = firedb.hent_punktinformationtype(ATTRIBUT) print(infotype) sagsinfo = Sagsinfo( aktiv="true", behandler="Kristian Evers", beskrivelse=sagsbeskrivelse ) sagid = str(uuid.uuid4()) firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo])) sag = firedb.hent_sag(sagid) punktinformationer = [] for srid, identer in PUNKTER.items(): for ident in identer: try: punkt = firedb.hent_punkt(ident) except NoResultFound: print(f'fejl: {ident}') continue pi = PunktInformation(infotype=infotype, punkt=punkt, tekst=srid) punktinformationer.append(pi) sagseventinfo = SagseventInfo(beskrivelse=f"Indsættelse af {ATTRIBUT} attributter") sagsevent = Sagsevent( id=str(uuid.uuid4()), sag=sag, eventtype=fire.api.model.EventType.PUNKTINFO_TILFOEJET, sagseventinfos=[sagseventinfo], punktinformationer=punktinformationer, ) firedb.indset_sagsevent(sagsevent)
def main(): firedb.indset_punktinformationtype( PunktInformationType( name=ATTRIBUT, anvendelse=fire.api.model.PunktInformationTypeAnvendelse.FLAG, beskrivelse="Punkter i den oprindelige DVR90-udjævning", )) infotype = firedb.hent_punktinformationtype(ATTRIBUT) sagsinfo = Sagsinfo(aktiv="true", behandler="Kristian Evers", beskrivelse=sagsbeskrivelse) sagid = str(uuid.uuid4()) firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo])) sag = firedb.hent_sag(sagid) with open(POINT_FILE) as f: punkter = [punkt.strip() for punkt in f.readlines()] punktinformationer = [] # interaktion med databasen er pokkers langsomt, vis fremdrift with click.progressbar(punkter, label="Punkter") as punkter_progress: for ident in punkter_progress: try: punkt = get_punkt(ident) except sqlalchemy.orm.exc.NoResultFound: print(f"Ident ikke fundet: {ident}") continue pi = PunktInformation(infotype=infotype, punkt=punkt) punktinformationer.append(pi) sagseventinfo = SagseventInfo( beskrivelse=f"Indsættelse af {ATTRIBUT} attibutter") sagsevent = Sagsevent( id=str(uuid.uuid4()), sag=sag, eventtype=fire.api.model.EventType.PUNKTINFO_TILFOEJET, sagseventinfos=[sagseventinfo], punktinformationer=punktinformationer, ) firedb.indset_sagsevent(sagsevent)
Sag, Sagsinfo, Sagsevent, SagseventInfo, EventType, ) # Sagshåndtering sagsbeskrivelse = "Luk alle punkter fra REFGEO hvor MV_STATUS=-1" sagsinfo = Sagsinfo(aktiv="true", behandler="Kristian Evers", beskrivelse=sagsbeskrivelse) sagid = "af190b61-190b-413f-ba4d-432ecaca18d2" try: sag = firedb.hent_sag(sagid) except NoResultFound: sag = Sag(id=sagid, sagsinfos=[sagsinfo]) firedb.indset_sag(sag) sagsevent = Sagsevent( sag=sag, sagseventinfos=[ SagseventInfo(beskrivelse="Lukning af punkter med REFGEO MV_STATUS=-1") ], id=uuid(), eventtype=EventType.PUNKT_NEDLAGT, ) # Udtræk punkter statement = text("""