show all official documents
This commit is contained in:
parent
cb70e53bb7
commit
0bb92f511c
@ -18,7 +18,7 @@ apply plugin: 'war'
|
|||||||
apply plugin: 'application'
|
apply plugin: 'application'
|
||||||
|
|
||||||
group = 'de.jottyfan.camporganizer'
|
group = 'de.jottyfan.camporganizer'
|
||||||
version = '0.2.6'
|
version = '0.2.7'
|
||||||
sourceCompatibility = 17
|
sourceCompatibility = 17
|
||||||
mainClassName = "de.jottyfan.camporganizer.Main"
|
mainClassName = "de.jottyfan.camporganizer.Main"
|
||||||
|
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
package de.jottyfan.camporganizer.module.camplist;
|
package de.jottyfan.camporganizer.module.camplist;
|
||||||
|
|
||||||
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMP;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPDOCUMENT;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_CAMPDOCUMENT;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_DOCUMENT;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_DOCUMENT;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_DOCUMENTROLE;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_DOCUMENTROLE;
|
||||||
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_LOCATION;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_PERSON;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_PERSON;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.T_PROFILE;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.T_PROFILE;
|
||||||
import static de.jottyfan.camporganizer.db.jooq.Tables.V_CAMP;
|
import static de.jottyfan.camporganizer.db.jooq.Tables.V_CAMP;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
@ -18,7 +23,7 @@ import org.jooq.Condition;
|
|||||||
import org.jooq.DSLContext;
|
import org.jooq.DSLContext;
|
||||||
import org.jooq.Record;
|
import org.jooq.Record;
|
||||||
import org.jooq.Record2;
|
import org.jooq.Record2;
|
||||||
import org.jooq.SelectConditionStep;
|
import org.jooq.SelectOrderByStep;
|
||||||
import org.jooq.SelectSeekStep1;
|
import org.jooq.SelectSeekStep1;
|
||||||
import org.jooq.SelectSeekStep2;
|
import org.jooq.SelectSeekStep2;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -26,6 +31,7 @@ import org.springframework.stereotype.Repository;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole;
|
import de.jottyfan.camporganizer.db.jooq.enums.EnumCamprole;
|
||||||
|
import de.jottyfan.camporganizer.db.jooq.enums.EnumDocument;
|
||||||
import de.jottyfan.camporganizer.db.jooq.tables.TProfile;
|
import de.jottyfan.camporganizer.db.jooq.tables.TProfile;
|
||||||
import de.jottyfan.camporganizer.db.jooq.tables.records.VCampRecord;
|
import de.jottyfan.camporganizer.db.jooq.tables.records.VCampRecord;
|
||||||
|
|
||||||
@ -141,7 +147,7 @@ public class CamplistGateway {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<DocumentBean> getAllDocumentBeans(Integer fkCamp, EnumCamprole camprole) {
|
private List<DocumentBean> getAllDocumentBeans(Integer fkCamp, EnumCamprole camprole) {
|
||||||
SelectConditionStep<Record2<String, Integer>> sql = jooq
|
SelectOrderByStep<Record2<String, Integer>> sql = jooq
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
.select(T_DOCUMENT.NAME,
|
.select(T_DOCUMENT.NAME,
|
||||||
T_DOCUMENT.PK)
|
T_DOCUMENT.PK)
|
||||||
@ -149,14 +155,40 @@ public class CamplistGateway {
|
|||||||
.leftJoin(T_DOCUMENT).on(T_DOCUMENT.PK.eq(T_CAMPDOCUMENT.FK_DOCUMENT))
|
.leftJoin(T_DOCUMENT).on(T_DOCUMENT.PK.eq(T_CAMPDOCUMENT.FK_DOCUMENT))
|
||||||
.leftJoin(T_DOCUMENTROLE).on(T_DOCUMENTROLE.FK_DOCUMENT.eq(T_DOCUMENT.PK))
|
.leftJoin(T_DOCUMENTROLE).on(T_DOCUMENTROLE.FK_DOCUMENT.eq(T_DOCUMENT.PK))
|
||||||
.where(T_CAMPDOCUMENT.FK_CAMP.eq(fkCamp))
|
.where(T_CAMPDOCUMENT.FK_CAMP.eq(fkCamp))
|
||||||
.and(T_DOCUMENTROLE.CAMPROLE.eq(camprole));
|
.and(T_DOCUMENTROLE.CAMPROLE.eq(camprole))
|
||||||
|
.unionAll(jooq
|
||||||
|
.select(T_DOCUMENT.NAME,
|
||||||
|
T_DOCUMENT.PK)
|
||||||
|
.from(T_CAMP)
|
||||||
|
.leftJoin(T_DOCUMENT).on(T_DOCUMENT.PK.eq(T_CAMP.FK_DOCUMENT))
|
||||||
|
.leftJoin(T_DOCUMENTROLE).on(T_DOCUMENTROLE.FK_DOCUMENT.eq(T_DOCUMENT.PK))
|
||||||
|
.where(T_CAMP.PK.eq(fkCamp))
|
||||||
|
.and(T_DOCUMENTROLE.CAMPROLE.eq(camprole))
|
||||||
|
).unionAll(jooq
|
||||||
|
.select(T_DOCUMENT.NAME,
|
||||||
|
T_DOCUMENT.PK)
|
||||||
|
.from(T_LOCATION)
|
||||||
|
.leftJoin(T_DOCUMENT).on(T_DOCUMENT.PK.eq(T_LOCATION.FK_DOCUMENT))
|
||||||
|
.leftJoin(T_DOCUMENTROLE).on(T_DOCUMENTROLE.FK_DOCUMENT.eq(T_DOCUMENT.PK))
|
||||||
|
.leftJoin(T_CAMP).on(T_CAMP.FK_LOCATION.eq(T_LOCATION.PK))
|
||||||
|
.where(T_CAMP.PK.eq(fkCamp))
|
||||||
|
.and(T_DOCUMENTROLE.CAMPROLE.eq(camprole))
|
||||||
|
).unionAll(jooq
|
||||||
|
.select(T_DOCUMENT.NAME,
|
||||||
|
T_DOCUMENT.PK)
|
||||||
|
.from(T_DOCUMENT)
|
||||||
|
.where(T_DOCUMENT.DOCTYPE.eq(EnumDocument.camppass)));
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
LOGGER.debug(sql.toString());
|
LOGGER.debug(sql.toString());
|
||||||
List<DocumentBean> list = new ArrayList<>();
|
Map<Integer, String> map = new HashMap<>(); // no duplicate on using a map
|
||||||
for (Record r : sql.fetch()) {
|
for (Record r : sql.fetch()) {
|
||||||
|
map.put(r.get(T_DOCUMENT.PK), r.get(T_DOCUMENT.NAME));
|
||||||
|
}
|
||||||
|
List<DocumentBean> list = new ArrayList<>();
|
||||||
|
for (Entry<Integer, String> entry : map.entrySet()) {
|
||||||
DocumentBean bean = new DocumentBean();
|
DocumentBean bean = new DocumentBean();
|
||||||
bean.setPk(r.get(T_DOCUMENT.PK));
|
bean.setPk(entry.getKey());
|
||||||
bean.setName(r.get(T_DOCUMENT.NAME));
|
bean.setName(entry.getValue());
|
||||||
list.add(bean);
|
list.add(bean);
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user