in extension/storage/storage-mongodb/src/main/java/com/alibaba/smart/framework/engine/persister/mongo/service/MongoProcessInstanceStorage.java [170:205]
private Query buildQuery(ProcessInstanceQueryParam processInstanceQueryParam) {
Query query = new Query();
if(null != processInstanceQueryParam.getProcessInstanceIdList()){
query.addCriteria(Criteria.where(PROCESS_INSTANCE_ID).in(processInstanceQueryParam.getProcessInstanceIdList()));
}
if(null != processInstanceQueryParam.getBizUniqueId()){
query.addCriteria(Criteria.where("bizUniqueId").is(processInstanceQueryParam.getBizUniqueId()));
}
if(null != processInstanceQueryParam.getProcessDefinitionIdAndVersion()){
query.addCriteria(Criteria.where("processDefinitionIdAndVersion").is(processInstanceQueryParam.getProcessDefinitionIdAndVersion()));
}
if(null != processInstanceQueryParam.getProcessDefinitionType()){
query.addCriteria(Criteria.where("processDefinitionType").is(processInstanceQueryParam.getProcessDefinitionType()));
}
if(null != processInstanceQueryParam.getStartUserId()){
query.addCriteria(Criteria.where("startUserId").is(processInstanceQueryParam.getStartUserId()));
}
if(null != processInstanceQueryParam.getStatus()){
query.addCriteria(Criteria.where("status" ).is(processInstanceQueryParam.getStatus())
);
}
if(null != processInstanceQueryParam.getPageOffset()){
Pageable pageableRequest = PageRequest.of(processInstanceQueryParam.getPageOffset(),processInstanceQueryParam.getPageSize());
query.with(pageableRequest);
}
query.with( Sort.by(Sort.Direction.ASC, GMT_CREATE));
return query;
}