show all official documents
This commit is contained in:
parent
cb70e53bb7
commit
0bb92f511c
@ -18,7 +18,7 @@ apply plugin: 'war'
|
||||
apply plugin: 'application'
|
||||
|
||||
group = 'de.jottyfan.camporganizer'
|
||||
version = '0.2.6'
|
||||
version = '0.2.7'
|
||||
sourceCompatibility = 17
|
||||
mainClassName = "de.jottyfan.camporganizer.Main"
|
||||
|
||||
|
@ -1,15 +1,20 @@
|
||||
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_DOCUMENT;
|
||||
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_PROFILE;
|
||||
import static de.jottyfan.camporganizer.db.jooq.Tables.V_CAMP;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -18,7 +23,7 @@ import org.jooq.Condition;
|
||||
import org.jooq.DSLContext;
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Record2;
|
||||
import org.jooq.SelectConditionStep;
|
||||
import org.jooq.SelectOrderByStep;
|
||||
import org.jooq.SelectSeekStep1;
|
||||
import org.jooq.SelectSeekStep2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -26,6 +31,7 @@ import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
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.records.VCampRecord;
|
||||
|
||||
@ -141,7 +147,7 @@ public class CamplistGateway {
|
||||
}
|
||||
|
||||
private List<DocumentBean> getAllDocumentBeans(Integer fkCamp, EnumCamprole camprole) {
|
||||
SelectConditionStep<Record2<String, Integer>> sql = jooq
|
||||
SelectOrderByStep<Record2<String, Integer>> sql = jooq
|
||||
// @formatter:off
|
||||
.select(T_DOCUMENT.NAME,
|
||||
T_DOCUMENT.PK)
|
||||
@ -149,14 +155,40 @@ public class CamplistGateway {
|
||||
.leftJoin(T_DOCUMENT).on(T_DOCUMENT.PK.eq(T_CAMPDOCUMENT.FK_DOCUMENT))
|
||||
.leftJoin(T_DOCUMENTROLE).on(T_DOCUMENTROLE.FK_DOCUMENT.eq(T_DOCUMENT.PK))
|
||||
.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
|
||||
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()) {
|
||||
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();
|
||||
bean.setPk(r.get(T_DOCUMENT.PK));
|
||||
bean.setName(r.get(T_DOCUMENT.NAME));
|
||||
bean.setPk(entry.getKey());
|
||||
bean.setName(entry.getValue());
|
||||
list.add(bean);
|
||||
}
|
||||
return list;
|
||||
|
Loading…
x
Reference in New Issue
Block a user