1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-15 02:36:24 +00:00

Closes #192: workflow active info + search criteria

This commit is contained in:
Benjamin Gamard
2018-03-06 12:27:45 +01:00
parent 71f15e1736
commit 2c90df2c2d
10 changed files with 158 additions and 7 deletions

View File

@@ -202,9 +202,14 @@ public class DocumentDao {
StringBuilder sb = new StringBuilder("select distinct d.DOC_ID_C c0, d.DOC_TITLE_C c1, d.DOC_DESCRIPTION_C c2, d.DOC_CREATEDATE_D c3, d.DOC_LANGUAGE_C c4, ");
sb.append(" (select count(s.SHA_ID_C) from T_SHARE s, T_ACL ac where ac.ACL_SOURCEID_C = d.DOC_ID_C and ac.ACL_TARGETID_C = s.SHA_ID_C and ac.ACL_DELETEDATE_D is null and s.SHA_DELETEDATE_D is null) c5, ");
sb.append(" (select count(f.FIL_ID_C) from T_FILE f where f.FIL_DELETEDATE_D is null and f.FIL_IDDOC_C = d.DOC_ID_C) c6 ");
sb.append(" (select count(f.FIL_ID_C) from T_FILE f where f.FIL_DELETEDATE_D is null and f.FIL_IDDOC_C = d.DOC_ID_C) c6, ");
sb.append(" rs2.RTP_ID_C c7 ");
sb.append(" from T_DOCUMENT d ");
sb.append(" left join (select rs.*, rs3.idDocument\n" +
"from T_ROUTE_STEP rs \n" +
"join (select r.RTE_IDDOCUMENT_C idDocument, rs.RTP_IDROUTE_C idRoute, min(rs.RTP_ORDER_N) minOrder from T_ROUTE_STEP rs join T_ROUTE r on r.RTE_ID_C = rs.RTP_IDROUTE_C and r.RTE_DELETEDATE_D is null where rs.RTP_DELETEDATE_D is null and rs.RTP_ENDDATE_D is null group by rs.RTP_IDROUTE_C, r.RTE_IDDOCUMENT_C) rs3 on rs.RTP_IDROUTE_C = rs3.idRoute and rs.RTP_ORDER_N = rs3.minOrder \n" +
"where rs.RTP_IDTARGET_C in (:targetIdList)) rs2 on rs2.idDocument = d.DOC_ID_C ");
// Add search criterias
if (criteria.getTargetIdList() != null) {
// Read permission is enough for searching
@@ -251,7 +256,10 @@ public class DocumentDao {
criteriaList.add("d.DOC_IDUSER_C = :creatorId");
parameterMap.put("creatorId", criteria.getCreatorId());
}
if (criteria.getActiveRoute() != null && criteria.getActiveRoute()) {
criteriaList.add("rs2.RTP_ID_C is not null");
}
criteriaList.add("d.DOC_DELETEDATE_D is null");
if (!criteriaList.isEmpty()) {
@@ -274,7 +282,8 @@ public class DocumentDao {
documentDto.setCreateTimestamp(((Timestamp) o[i++]).getTime());
documentDto.setLanguage((String) o[i++]);
documentDto.setShared(((Number) o[i++]).intValue() > 0);
documentDto.setFileCount(((Number) o[i]).intValue());
documentDto.setFileCount(((Number) o[i++]).intValue());
documentDto.setActiveRoute(o[i] != null);
documentDtoList.add(documentDto);
}

View File

@@ -54,6 +54,11 @@ public class DocumentCriteria {
* Creator ID.
*/
private String creatorId;
/**
* A route is active.
*/
private Boolean activeRoute;
public List<String> getTargetIdList() {
return targetIdList;
@@ -126,4 +131,13 @@ public class DocumentCriteria {
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public Boolean getActiveRoute() {
return activeRoute;
}
public DocumentCriteria setActiveRoute(Boolean activeRoute) {
this.activeRoute = activeRoute;
return this;
}
}

View File

@@ -85,7 +85,12 @@ public class DocumentDto {
* Document creator.
*/
private String creator;
/**
* A route is active.
*/
private boolean activeRoute;
public String getId() {
return id;
}
@@ -213,4 +218,13 @@ public class DocumentDto {
public void setCreator(String creator) {
this.creator = creator;
}
public boolean isActiveRoute() {
return activeRoute;
}
public DocumentDto setActiveRoute(boolean activeRoute) {
this.activeRoute = activeRoute;
return this;
}
}