mirror of
https://github.com/sismics/docs.git
synced 2025-12-15 02:36:24 +00:00
Closes #193: last updated date (db + search + ui)
This commit is contained in:
@@ -38,6 +38,7 @@ public class DocumentDao {
|
||||
public String create(Document document, String userId) {
|
||||
// Create the UUID
|
||||
document.setId(UUID.randomUUID().toString());
|
||||
document.setUpdateDate(new Date());
|
||||
|
||||
// Create the document
|
||||
EntityManager em = ThreadLocalContext.get().getEntityManager();
|
||||
@@ -90,7 +91,7 @@ public class DocumentDao {
|
||||
}
|
||||
|
||||
EntityManager em = ThreadLocalContext.get().getEntityManager();
|
||||
StringBuilder sb = new StringBuilder("select distinct d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_SUBJECT_C, d.DOC_IDENTIFIER_C, d.DOC_PUBLISHER_C, d.DOC_FORMAT_C, d.DOC_SOURCE_C, d.DOC_TYPE_C, d.DOC_COVERAGE_C, d.DOC_RIGHTS_C, d.DOC_CREATEDATE_D, d.DOC_LANGUAGE_C, ");
|
||||
StringBuilder sb = new StringBuilder("select distinct d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_SUBJECT_C, d.DOC_IDENTIFIER_C, d.DOC_PUBLISHER_C, d.DOC_FORMAT_C, d.DOC_SOURCE_C, d.DOC_TYPE_C, d.DOC_COVERAGE_C, d.DOC_RIGHTS_C, d.DOC_CREATEDATE_D, d.DOC_UPDATEDATE_D, d.DOC_LANGUAGE_C, ");
|
||||
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), ");
|
||||
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), ");
|
||||
sb.append(" u.USE_USERNAME_C ");
|
||||
@@ -122,6 +123,7 @@ public class DocumentDao {
|
||||
documentDto.setCoverage((String) o[i++]);
|
||||
documentDto.setRights((String) o[i++]);
|
||||
documentDto.setCreateTimestamp(((Timestamp) o[i++]).getTime());
|
||||
documentDto.setUpdateTimestamp(((Timestamp) o[i++]).getTime());
|
||||
documentDto.setLanguage((String) o[i++]);
|
||||
documentDto.setShared(((Number) o[i++]).intValue() > 0);
|
||||
documentDto.setFileCount(((Number) o[i++]).intValue());
|
||||
@@ -204,7 +206,7 @@ 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(" rs2.RTP_ID_C c7, rs2.RTP_NAME_C ");
|
||||
sb.append(" rs2.RTP_ID_C c7, rs2.RTP_NAME_C, d.DOC_UPDATEDATE_D c8 ");
|
||||
sb.append(" from T_DOCUMENT d ");
|
||||
sb.append(" left join (select rs.*, rs3.idDocument\n" +
|
||||
"from T_ROUTE_STEP rs \n" +
|
||||
@@ -238,6 +240,14 @@ public class DocumentDao {
|
||||
criteriaList.add("d.DOC_CREATEDATE_D <= :createDateMax");
|
||||
parameterMap.put("createDateMax", criteria.getCreateDateMax());
|
||||
}
|
||||
if (criteria.getUpdateDateMin() != null) {
|
||||
criteriaList.add("d.DOC_UPDATEDATE_D >= :updateDateMin");
|
||||
parameterMap.put("updateDateMin", criteria.getUpdateDateMin());
|
||||
}
|
||||
if (criteria.getUpdateDateMax() != null) {
|
||||
criteriaList.add("d.DOC_UPDATEDATE_D <= :updateDateMax");
|
||||
parameterMap.put("updateDateMax", criteria.getUpdateDateMax());
|
||||
}
|
||||
if (criteria.getTagIdList() != null && !criteria.getTagIdList().isEmpty()) {
|
||||
int index = 0;
|
||||
List<String> tagCriteriaList = Lists.newArrayList();
|
||||
@@ -288,7 +298,8 @@ public class DocumentDao {
|
||||
documentDto.setShared(((Number) o[i++]).intValue() > 0);
|
||||
documentDto.setFileCount(((Number) o[i++]).intValue());
|
||||
documentDto.setActiveRoute(o[i++] != null);
|
||||
documentDto.setCurrentStepName((String) o[i]);
|
||||
documentDto.setCurrentStepName((String) o[i++]);
|
||||
documentDto.setUpdateTimestamp(((Timestamp) o[i]).getTime());
|
||||
documentDtoList.add(documentDto);
|
||||
}
|
||||
|
||||
@@ -323,6 +334,7 @@ public class DocumentDao {
|
||||
documentDb.setRights(document.getRights());
|
||||
documentDb.setCreateDate(document.getCreateDate());
|
||||
documentDb.setLanguage(document.getLanguage());
|
||||
documentDb.setUpdateDate(new Date());
|
||||
|
||||
// Create audit log
|
||||
AuditLogUtil.create(documentDb, AuditLogType.UPDATE, userId);
|
||||
|
||||
@@ -35,6 +35,16 @@ public class DocumentCriteria {
|
||||
*/
|
||||
private Date createDateMax;
|
||||
|
||||
/**
|
||||
* Minimum update date.
|
||||
*/
|
||||
private Date updateDateMin;
|
||||
|
||||
/**
|
||||
* Maximum update date.
|
||||
*/
|
||||
private Date updateDateMax;
|
||||
|
||||
/**
|
||||
* Tag IDs.
|
||||
*/
|
||||
@@ -136,6 +146,22 @@ public class DocumentCriteria {
|
||||
return activeRoute;
|
||||
}
|
||||
|
||||
public Date getUpdateDateMin() {
|
||||
return updateDateMin;
|
||||
}
|
||||
|
||||
public void setUpdateDateMin(Date updateDateMin) {
|
||||
this.updateDateMin = updateDateMin;
|
||||
}
|
||||
|
||||
public Date getUpdateDateMax() {
|
||||
return updateDateMax;
|
||||
}
|
||||
|
||||
public void setUpdateDateMax(Date updateDateMax) {
|
||||
this.updateDateMax = updateDateMax;
|
||||
}
|
||||
|
||||
public DocumentCriteria setActiveRoute(Boolean activeRoute) {
|
||||
this.activeRoute = activeRoute;
|
||||
return this;
|
||||
|
||||
@@ -71,6 +71,11 @@ public class DocumentDto {
|
||||
*/
|
||||
private Long createTimestamp;
|
||||
|
||||
/**
|
||||
* Update date.
|
||||
*/
|
||||
private Long updateTimestamp;
|
||||
|
||||
/**
|
||||
* Shared status.
|
||||
*/
|
||||
@@ -236,6 +241,14 @@ public class DocumentDto {
|
||||
return currentStepName;
|
||||
}
|
||||
|
||||
public Long getUpdateTimestamp() {
|
||||
return updateTimestamp;
|
||||
}
|
||||
|
||||
public void setUpdateTimestamp(Long updateTimestamp) {
|
||||
this.updateTimestamp = updateTimestamp;
|
||||
}
|
||||
|
||||
public DocumentDto setCurrentStepName(String currentStepName) {
|
||||
this.currentStepName = currentStepName;
|
||||
return this;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.sismics.docs.core.model.jpa;
|
||||
|
||||
import java.util.Date;
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Document entity.
|
||||
@@ -102,6 +101,12 @@ public class Document implements Loggable {
|
||||
@Column(name = "DOC_CREATEDATE_D", nullable = false)
|
||||
private Date createDate;
|
||||
|
||||
/**
|
||||
* Creation date.
|
||||
*/
|
||||
@Column(name = "DOC_UPDATEDATE_D", nullable = false)
|
||||
private Date updateDate;
|
||||
|
||||
/**
|
||||
* Deletion date.
|
||||
*/
|
||||
@@ -229,6 +234,14 @@ public class Document implements Loggable {
|
||||
this.deleteDate = deleteDate;
|
||||
}
|
||||
|
||||
public Date getUpdateDate() {
|
||||
return updateDate;
|
||||
}
|
||||
|
||||
public void setUpdateDate(Date updateDate) {
|
||||
this.updateDate = updateDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this)
|
||||
|
||||
@@ -1 +1 @@
|
||||
db.version=17
|
||||
db.version=18
|
||||
@@ -0,0 +1,4 @@
|
||||
alter table T_DOCUMENT add column DOC_UPDATEDATE_D datetime;
|
||||
update T_DOCUMENT set DOC_UPDATEDATE_D = DOC_CREATEDATE_D;
|
||||
alter table T_DOCUMENT alter column DOC_UPDATEDATE_D datetime not null;
|
||||
update T_CONFIG set CFG_VALUE_C = '18' where CFG_ID_C = 'DB_VERSION';
|
||||
Reference in New Issue
Block a user