From bc8c3e0e456edec45ced5171aba3ceb25575cf20 Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Tue, 24 May 2022 08:19:58 +0200 Subject: [PATCH] =?UTF-8?q?Die=20Generierung=20von=20TSG=20bei=20l=C3=A4ng?= =?UTF-8?q?er=20laufendem=20MSG=20ist=20implementiert=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.xml | 6 + src-modules/module/costage/conf/costage.xml | 4 +- .../costage_st_studien_aggr_fuellen.sql | 170 +++++++++++++++--- .../rohdaten/costage_prepare_unlfiles.xsl | 37 ++++ .../costage_prepare_unlfiles_generator.x | 4 + .../costage/rohdaten/costage_unload.xml | 3 +- 6 files changed, 194 insertions(+), 30 deletions(-) create mode 100644 src-modules/module/costage/rohdaten/costage_prepare_unlfiles.xsl create mode 100755 src-modules/module/costage/rohdaten/costage_prepare_unlfiles_generator.x diff --git a/build.xml b/build.xml index 672e11f..d84b896 100644 --- a/build.xml +++ b/build.xml @@ -46,6 +46,12 @@ ant -DMODULE_PATH=$COSTAGE_PFAD -DWEBAPP_DIR=$WEBAPP -DMODULE=costage dist + + + + + + diff --git a/src-modules/module/costage/conf/costage.xml b/src-modules/module/costage/conf/costage.xml index ab79e27..4a65ea3 100644 --- a/src-modules/module/costage/conf/costage.xml +++ b/src-modules/module/costage/conf/costage.xml @@ -422,7 +422,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> - +ESG oder, bei TSG, der Status des MSG + +Wenn TSG vor MSG beendet wird, werden TSG-Sätze generiert 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 b1e1de1..0d0cc40 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 @@ -1,6 +1,8 @@ --freemarker template +drop table if exists tmp_studien; +drop table if exists tmp_studien2; SELECT SM.semester_tid as semester, @@ -23,14 +25,15 @@ S.ca12_staat, S.second_nationality, SG.fachkennzeichen, ST.studienform_statistik_code, -null::integer as st_studiengang_nr_msg, +(case when SG.studiengangs_typ_kb in ('MSG') then SG.st_studiengang_nr else null::integer end) as st_studiengang_nr_msg, null::integer as st_studiengang_nr_msg_primaerflag, -null::integer as st_studiengang_nr_tsg, +(case when SG.studiengangs_typ_kb in ('TSG') then SG.st_studiengang_nr else null::integer end) as st_studiengang_nr_tsg, null::integer as studienfach_sortierung, null::char(10) as hrst, null::integer as fachsemester, null::integer as hssem, -null::char(10) as statustyp, +(case when SG.studiengangs_typ_kb in ('TSG') then SA.studienstatustyp else null::char(10) end) as statustyp_tsg, +0::smallint as tsg_generated, --0::smallint as primaerflag, null::integer as studiengang_nr, null::integer as fach_nr, @@ -40,7 +43,7 @@ null::date as ruebeudat, null::date as endedat, null::smallint as kz_rueck_beur_ein, null::char(10) as hzb_art, -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 SA.gueltig_ab desc) as status_historie into temp tmp_studien FROM costage_st_studierendenstammdaten S, costage_st_studien ST, @@ -55,20 +58,14 @@ and ST.st_studiengang_nr=SG.st_studiengang_nr and S.matrikelnummer is not null --and SM.semester_tid >= 20171 -- and SM.semester_tid <= 20171 ---and S.matrikelnummer in ('1415093') -and SG.studiengangs_typ_kb in ('ESG','TSG') +and SG.studiengangs_typ_kb in ('ESG','TSG','MSG') and SA.st_studium_nr=ST.st_studium_nr and SA.st_sem_nr=SM.st_sem_nr +and SA.gueltig_ab <=SM.semester_ende --nur letzter Status im jew. Semester interessiert, nicht danach and SA.studienstatustyp not in ('a','o') and ${COSTAGE_STUDENT_FILTER} --group by 1,2,3,4,5,6,7,8,9,10,11,12,13 ; --- select * from tmp_studien --- update tmp_studien --- set abschluss_str=A.name --- from costage_st_abschlussziele_lokal A --- where A.st_absz_nr=tmp_studien.abschluss --- ; update tmp_studien set hrst=H.hoererstatus_kb @@ -102,6 +99,7 @@ from tmp_studien T, costage_st_hauptstudien H and H.st_studium_nr=T.st_studium_nr and H.st_sem_nr=T.st_sem_nr and status_historie=1 + and T.studiengangs_typ_kb in ('ESG','TSG') ; --Studiengänge ohne Primärflag: insert into tmp_studien2 @@ -111,10 +109,10 @@ on (H.st_studstamm_nr=T.st_studstamm_nr and H.st_studium_nr=T.st_studium_nr and H.st_sem_nr=T.st_sem_nr) where T.status_historie=1 + and T.studiengangs_typ_kb in ('ESG','TSG') and H.st_studstamm_nr is null - ; + ; -drop table tmp_studien; --Ermittlung msg: @@ -125,6 +123,125 @@ and ST.st_studstamm_nr=tmp_studien2.st_studstamm_nr and M.st_studiengang_nr_tsg=tmp_studien2.st_studiengang_nr and tmp_studien2.studiengangs_typ_kb ='TSG' ; +update tmp_studien2 set studienstatustyp=null; + + +--Ermittlung status bei TSG aus MSG: +update tmp_studien2 set studienstatustyp=T.studienstatustyp +from tmp_studien T +where T.st_studiengang_nr=tmp_studien2.st_studiengang_nr_msg +and T.st_studstamm_nr=tmp_studien2.st_studstamm_nr +and T.st_sem_nr=tmp_studien2.st_sem_nr +and T.status_historie=1 +and tmp_studien2.studiengangs_typ_kb ='TSG' +; + + +drop table if exists tmp_fehlend; + +--fehlende TSG nachtragen: +select T.st_studium_nr, +T.studienstatustyp, +T.st_studienstatus_nr, +T.st_studiengang_nr_msg, +T.st_sem_nr, +T.st_studstamm_nr, +T.beginn_datum, +T.gueltig_ab +into temp tmp_fehlend +from tmp_studien T +left outer join tmp_studien2 T2 +on (T2.st_studiengang_nr_msg=T.st_studiengang_nr +and T2.st_studstamm_nr=T.st_studstamm_nr +and T2.studiengangs_typ_kb ='TSG' +and T.st_sem_nr=T2.st_sem_nr) +where T2.st_studstamm_nr is null +and T.studienstatustyp in ('B','E','I') --nur tatsächlich eingeschrieben +--and T.st_sem_nr=180 +; + + +insert into tmp_studien2(semester, +st_absz_nr, +st_skz_nr, +studiengangs_identifikator, +studiengangs_bezeichnung, +st_sem_nr, +st_studium_nr, +st_studstamm_nr, +st_studiengang_nr, +studiengangs_typ_kb, +studienstatustyp, +st_studienstatus_nr, +beginn_datum, +gueltig_ab, +matrikelnummer, +geschlecht, +ca12_staat, +second_nationality, +fachkennzeichen, +studienform_statistik_code, +st_studiengang_nr_msg, +st_studiengang_nr_tsg, +hrst, +hssem, +statustyp_tsg, +tsg_generated, +primaerflag, +hzb_art, +fachsemester) +select E.semester_tid, +st_absz_nr, +S.st_skz_nr, +S.studiengangs_identifikator, +S.studiengangs_bezeichnung, +T.st_sem_nr, +S.st_studium_nr, +S.st_studstamm_nr, +S.st_studiengang_nr, +S.studiengangs_typ_kb, +T.studienstatustyp, +T.st_studienstatus_nr, +T.beginn_datum, +T.gueltig_ab, +S.matrikelnummer, +S.geschlecht, +S.ca12_staat, +S.second_nationality, +S.fachkennzeichen, +S.studienform_statistik_code, +S.st_studiengang_nr_msg, +S.st_studiengang_nr_tsg, +S.hrst, +S.hssem, +null::char(10) as statustyp_tsg, +1 as tsg_generated, +S.primaerflag, +S.hzb_art, +max(S.fachsemester) +from tmp_fehlend T, tmp_studien2 S,costage_st_semester E +where T.st_studiengang_nr_msg=S.st_studiengang_nr_msg +and T.st_studstamm_nr=S.st_studstamm_nr +and S.studiengangs_typ_kb ='TSG' +and T.st_sem_nr != S.st_sem_nr +and E.st_sem_nr=T.st_sem_nr +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 +; +--statustyp_stg nachladen: +update tmp_studien2 set statustyp_tsg=S.statustyp_tsg +from tmp_studien S +where tmp_studien2.st_studium_nr=S.st_studium_nr +and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr +and S.studiengangs_typ_kb ='TSG' +and tmp_studien2.tsg_generated=1 +and tmp_studien2.fachsemester=S.fachsemester + +; + + +drop table tmp_studien; + + --Ermittlung fach_nr: update tmp_studien2 set fach_nr=M.studienfach_sortierung @@ -137,18 +254,6 @@ and tmp_studien2.studiengangs_typ_kb ='TSG' update tmp_studien2 set fach_nr=1 where fach_nr is null; ---Ermittlung status bei TSG aus MSG: -update tmp_studien2 set studienstatustyp=SA.studienstatustyp -from costage_st_studienstatus SA, costage_st_studiengaenge SG ,costage_st_studien ST -where SG.st_studiengang_nr=tmp_studien2.st_studiengang_nr_msg -and ST.st_studium_nr=SA.st_studium_nr -and ST.st_studstamm_nr=tmp_studien2.st_studstamm_nr -and SA.st_sem_nr=tmp_studien2.st_sem_nr -and SA.gueltig_ab=tmp_studien2.gueltig_ab -and tmp_studien2.studiengangs_typ_kb ='TSG' -; - - update tmp_studien2 set unikey=K.unikey @@ -208,6 +313,8 @@ st_studium_nr, st_studiengang_nr, st_studienstatus_nr, statustyp, + statustyp_tsg, + tsg_generated, hrst, semester, fachsemester, @@ -231,7 +338,9 @@ select st_studium_nr, st_studiengang_nr, st_studienstatus_nr, studienstatustyp, - hrst, + statustyp_tsg, + tsg_generated, + hrst, semester, fachsemester, hssem, @@ -291,6 +400,8 @@ st_studium_nr, st_studiengang_nr, st_studienstatus_nr, statustyp, + statustyp_tsg, + tsg_generated, hrst, semester, fachsemester, @@ -314,6 +425,8 @@ select st_studium_nr, st_studiengang_nr, st_studienstatus_nr, studienstatustyp, + statustyp_tsg, + tsg_generated, hrst, semester, fachsemester, @@ -414,9 +527,10 @@ where A.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr and A.st_adresse_typ='H' ; - drop table tmp_studien2; drop table tmp_primaer_msg; drop table temp_tmp_studien2; +drop table tmp_fehlend; + diff --git a/src-modules/module/costage/rohdaten/costage_prepare_unlfiles.xsl b/src-modules/module/costage/rohdaten/costage_prepare_unlfiles.xsl new file mode 100644 index 0000000..0cf5d6b --- /dev/null +++ b/src-modules/module/costage/rohdaten/costage_prepare_unlfiles.xsl @@ -0,0 +1,37 @@ + + + + +-- XML-generiertes SQL-Script +--von costage_prepare_unlfiles.xsl + +if [ ! -f $COSTAGE_LOAD_PFAD/superx.datum ] +then +echo "superx.datum wird nicht übergeben" +date +'%d.%m.%Y' > $COSTAGE_LOAD_PFAD/superx.datum + +fi + +if [ ! -f $COSTAGE_LOAD_PFAD/costage_unload.err ] +then +echo "costage_unload.err wird nicht übergeben" +cat /dev/null > $COSTAGE_LOAD_PFAD/costage_unload.err +fi + + + +" ] +then +echo "$COSTAGE_LOAD_PFAD/ "$COSTAGE_LOAD_PFAD/]]>" +fi + + + + + + + + diff --git a/src-modules/module/costage/rohdaten/costage_prepare_unlfiles_generator.x b/src-modules/module/costage/rohdaten/costage_prepare_unlfiles_generator.x new file mode 100755 index 0000000..b7d5059 --- /dev/null +++ b/src-modules/module/costage/rohdaten/costage_prepare_unlfiles_generator.x @@ -0,0 +1,4 @@ +#!/bin/bash +#Extraction Script for SuperX. + +sx_transform.x -IN:costage_unload.xml -XSL:./costage_prepare_unlfiles.xsl -OUT:./costage_prepare_unlfiles.x -method:text diff --git a/src-modules/module/costage/rohdaten/costage_unload.xml b/src-modules/module/costage/rohdaten/costage_unload.xml index 4e1eb62..7fe6fd8 100644 --- a/src-modules/module/costage/rohdaten/costage_unload.xml +++ b/src-modules/module/costage/rohdaten/costage_unload.xml @@ -615,7 +615,7 @@ FROM px_st_ersthochschulen_v - +Derzeit inaktiv, View aus Graz derzeit nicht nutzbar 0 and to_number('20' || replace(replace(S.semester_id,'S','1'),'W','2')) >= $COSTAGE_start_st_sem and current_date+365 > S.semester_anfang and extract(year from S.semester_anfang) > 2000 +and 1=0 ; ]]>