From e1711b81a970bb0e287d87a72c214b0843b470ee Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Sat, 18 Nov 2023 10:23:30 +0100 Subject: [PATCH] =?UTF-8?q?Schlie=C3=9Fung=20zum=20Semesterende=20abfangen?= =?UTF-8?q?,=20HH-Sem.=20inkrementell=20laden=20#16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-modules/module/costage/conf/costage.xml | 35 +++++++++++++--- .../trans_costage_st_hochschulsemester.sql | 14 +++++++ .../costage_st_studien_aggr_fuellen.sql | 17 +++++--- .../module/costage/rohdaten/COSTAGE_ENV.sam | 4 ++ .../costage/rohdaten/costage_unload.xml | 6 ++- .../rohdaten_sos/sos_costage_unload.xml | 40 +++++++++---------- .../trans_costage_st_studiengaenge.sql | 3 +- 7 files changed, 85 insertions(+), 34 deletions(-) create mode 100644 src-modules/module/costage/datentabellen/trans_costage_st_hochschulsemester.sql diff --git a/src-modules/module/costage/conf/costage.xml b/src-modules/module/costage/conf/costage.xml index 57de33a..b097ee4 100644 --- a/src-modules/module/costage/conf/costage.xml +++ b/src-modules/module/costage/conf/costage.xml @@ -313,9 +313,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> - - - + + + @@ -564,7 +564,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> - Lookup via: st_studium_nr - costage_st_adressen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) + Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) @@ -575,6 +575,10 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> + + + Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) + @@ -1357,6 +1361,23 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> + + + + + + + + + + + + + + + +
+ @@ -1706,6 +1727,9 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen + + + Abfragen zu Studienplänen und Ordnungen - + @@ -1894,6 +1918,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen + diff --git a/src-modules/module/costage/datentabellen/trans_costage_st_hochschulsemester.sql b/src-modules/module/costage/datentabellen/trans_costage_st_hochschulsemester.sql new file mode 100644 index 0000000..6e45d3d --- /dev/null +++ b/src-modules/module/costage/datentabellen/trans_costage_st_hochschulsemester.sql @@ -0,0 +1,14 @@ + + +delete from costage_st_hochschulsemester +where st_sem_nr in (select distinct st_sem_nr +from costage_st_hochschulsemester_neu); + +insert into costage_st_hochschulsemester(st_studstamm_nr, + st_sem_nr, + anzahl_hochschulsemester) +select st_studstamm_nr, + st_sem_nr, + anzahl_hochschulsemester +from costage_st_hochschulsemester_neu; + diff --git a/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql index 98ee989..e736822 100644 --- a/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql +++ b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql @@ -58,7 +58,7 @@ null::integer as hzb_land_sub_r_nr , null::integer as hzb_jahr, null::date as hzb_datum , null::decimal(14,7) as hzb_note, -rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by SA.gueltig_ab desc) as status_historie +rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by (case when SA.gueltig_ab =SM.semester_ende then date_val('01.01.1900') else SA.gueltig_ab end) desc) as status_historie into temp tmp_studien FROM costage_st_studierendenstammdaten S, costage_st_studien ST, @@ -123,6 +123,7 @@ create index tmp_ix2 on tmp_studien(st_studstamm_nr); create index tmp_ix3 on tmp_studien(studiengangs_typ_kb); create index tmp_ix4 on tmp_studien(st_sem_nr); create index tmp_ix5 on tmp_studien(status_historie); +create index tmp_ix6 on tmp_studien(primaerflag_studien); --Primärflag ermitteln: --1. Prio: aus px_st_studien_v: @@ -149,7 +150,7 @@ from tmp_studien T, costage_st_hauptstudien H and T.studiengangs_typ_kb in ('ESG','TSG') and T.primaerflag_studien=0 ; ---Studiengänge ohne Primärflag: +--Studiengänge ohne Primärflag TODO langsam: insert into tmp_studien2 select T.*, 0::integer as primaerflag, @@ -485,15 +486,17 @@ and T.st_studiengang_nr_msg=tmp_studien2.st_studiengang_nr_msg --SPO-Version (letzte im jew. Semester) ermitteln: select T.*,null::char(10) as po_stp_stp_version_kb, +null::integer as po_regelstudienzeit, max(SPO.gueltig_ab) as spo_max_gueltig_ab into temp tmp_studien3 from tmp_studien2 T left outer join costage_st_studien_spoversionen SPO on (SPO.st_studium_nr=T.st_studium_nr and SPO.gueltig_ab < T.semester_ende) -group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 +group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 ; -update tmp_studien3 set po_stp_stp_version_kb= SPO.po_stp_stp_version_kb +update tmp_studien3 set po_stp_stp_version_kb= SPO.po_stp_stp_version_kb, +po_regelstudienzeit=SPO.po_regelstudienzeit from costage_st_studien_spoversionen SPO where SPO.st_studium_nr=tmp_studien3.st_studium_nr and tmp_studien3.spo_max_gueltig_ab =SPO.gueltig_ab; @@ -546,6 +549,7 @@ st_studium_nr, hzb_datum, hzb_note, po_stp_stp_version_kb, + po_regelstudienzeit, summe ) @@ -591,6 +595,7 @@ select st_studium_nr, hzb_datum, hzb_note, po_stp_stp_version_kb, + po_regelstudienzeit, 1 as summe from tmp_studien3 where kz_rueck_beur_ein is not null @@ -629,6 +634,7 @@ st_studium_nr, hzb_datum, hzb_note, po_stp_stp_version_kb, + po_regelstudienzeit, summe ) @@ -675,10 +681,9 @@ cast (NULL as int) as studiengang_nr2, hzb_datum, hzb_note, po_stp_stp_version_kb, + po_regelstudienzeit, 1 as summe from tmp_studien3 - --where semester = 20202 - -- and matrikelnummer = '5847370' where kz_rueck_beur_ein is null ; diff --git a/src-modules/module/costage/rohdaten/COSTAGE_ENV.sam b/src-modules/module/costage/rohdaten/COSTAGE_ENV.sam index 39790bf..c48974c 100644 --- a/src-modules/module/costage/rohdaten/COSTAGE_ENV.sam +++ b/src-modules/module/costage/rohdaten/COSTAGE_ENV.sam @@ -21,6 +21,10 @@ COSTAGE_start_bw_sem=20001 export COSTAGE_start_bw_sem COSTAGE_start_leistungen_sem=20001 export COSTAGE_start_leistungen_sem +COSTAGE_start_lv_sem=20001 +export COSTAGE_start_lv_sem +COSTAGE_start_hssem=20001 +export COSTAGE_start_hssem ##Pfad für Entladedaten: #COSTAGE_LOAD_PFAD=. diff --git a/src-modules/module/costage/rohdaten/costage_unload.xml b/src-modules/module/costage/rohdaten/costage_unload.xml index 1af4bd4..eb5c289 100644 --- a/src-modules/module/costage/rohdaten/costage_unload.xml +++ b/src-modules/module/costage/rohdaten/costage_unload.xml @@ -8,6 +8,7 @@ Ab welchem Semester sollen Bewerbungen entladen werden? z.B. 20011 für SS 2001 Ab welchem Semester sollen Leistungen entladen werden? z.B. 20011 für SS 2001 Ab welchem Semester sollen Lehrveranstaltungen entladen werden? z.B. 20011 für SS 2001 +Ab welchem Semester sollen Hochschulsemester entladen werden? z.B. 20011 für SS 2001 @@ -651,7 +652,7 @@ SELECT H.st_studstamm_nr, FROM px_st_hochschulsemester_v H,px_st_semester_v S where S.st_sem_nr=H.st_sem_nr and H.anzahl_hochschulsemester >0 -and to_number('20' || replace(replace(S.semester_id,'S','1'),'W','2')) >= $COSTAGE_start_st_sem +and to_number('20' || replace(replace(S.semester_id,'S','1'),'W','2')) >= $COSTAGE_start_hssem and current_date+365 > S.semester_anfang and extract(year from S.semester_anfang) > 2000 ; @@ -698,7 +699,8 @@ SELECT leistung_nr, anerkannt_flag, zusatzleistung_flag, leistungsstatus_nr, - leistungsstatus_map_kb + leistungsstatus_map_kb, + abs_fach_st_studium_nr FROM sx_leistungen_v --da das Semester bei Leistungen nicht immer gefuellt ist bzw. der Datum der Leistung nach dem Studium sein kann, hier keine Where Bedingung aufs Startsemester ; diff --git a/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml b/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml index 200dce8..aae7f0d 100644 --- a/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml +++ b/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml @@ -168,7 +168,7 @@ SELECT distinct matrikelnummer, L.statistik_code as hzbkfzkz, (select R.statistik_code from costage_land_subregionen R where R.land_sub_reg_nr = H.hzb_land_sub_r_nr) as hzbkfz, H.hzb_datum as hzbdatum, - substring(replace(replace(H.hzb_note,',',''),'.','') from 1 for 10) as hzbnote, + null::char(1) as hzbnote, --substring(replace(replace(H.hzb_note,',',''),'.','') from 1 for 10) as hzbnote, null::char(1) as ersthzbart, null::char(1) as ersthzbjahr, null::char(1) as ersthzbkfzkz, @@ -210,7 +210,7 @@ null::integer as klinsem, F.hssem, '' ,--stuart, '' ,--stutyp, -G.stufrm, +F.stufrm, '' ,--stort, F.ruebeudat, null::char(1) ,--semgewicht, @@ -229,7 +229,7 @@ null::char(1) , --Art der Promotion null::char(1) as field_of_study, primaerflag as primaerfach, unikey , -null::numeric(9,6) ,-- individual_number_of_semesters +po_regelstudienzeit ,-- individual_number_of_semesters F.st_studium_nr as degree_program_id , null::char(10) as hssem_valid, F.kz_rueck_beur_ein_tsg @@ -567,24 +567,24 @@ null as sortorder SELECT distinct 612, -1, - studienform_statistik_code, - studienform_statistik_code as ktxt, - studienform_name, - studienform_name, - studienform_statistik_code as astat, + statistik_code, + kurzbezeichnung as ktxt, + name, + name, + statistik_code as astat, '', - studienform_statistik_code , + statistik_code , '', '', null::date as gueltig_von, null::date as gueltig_bis, - studienform_statistik_code , --sourcesystem_id - '', --hiskey_id + statistik_code , --sourcesystem_id + ''|| nr, --hiskey_id '' , --struktur_c null as lid, null as parent_lid, null as sortorder - FROM costage_st_studien + FROM costage_st_studienformen union SELECT distinct 613, @@ -860,15 +860,15 @@ select * from k_stg where 1=0; -Studiengänge aus SOS. +Studiengänge aus CO. diff --git a/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql b/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql index a3db151..e6dd3d9 100644 --- a/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql +++ b/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql @@ -46,5 +46,6 @@ rsz=P.po_regelstudienzeit from costage_st_studien_spoversionen P, costage_st_studien S where S.st_studium_nr = P.st_studium_nr and S.st_studiengang_nr=costage_st_studiengaenge.st_studiengang_nr -and P.stp_stp_nr=costage_st_studiengaenge.stp_stp_nr; +--paßt nicht zusammen: and P.stp_stp_nr=costage_st_studiengaenge.stp_stp_nr +;