maia/.svn/pristine/d4/d408d3f4f9022f500cdc554be7b...

56 lines
1.9 KiB
Plaintext
Executable File

package com.fp.bpmlib.query.groups;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import com.fp.dto.query.QueryBean;
import com.fp.dto.query.QueryRequest;
import com.fp.dto.rules.QueryRule;
import com.fp.persistence.commondb.PersistenceHelper;
import com.fp.persistence.commondb.helper.FormatDates;
/**
* Lista de Valores de Usuarios
*
* @author gfiallos
*
*/
public class UserLov extends QueryRule {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Consulta
*/
private static final String SQL = "select u.usercode, (select d.name from tcustpersondetail d where d.dateto=u.dateto and d.personcode=u.personcode)"
+ " from tsafeuserdetail u where u.isuserbpm='Y' and u.dateto=:dateto and not exists( "
+ " select 1 from tbpmgroupsusers i where i.companycode=:cia and i.groupcode=:group and i.usercode=u.usercode)";
@Override
public QueryRequest process(QueryRequest pRequest) throws Exception {
QueryBean qb = (QueryBean) pRequest.get("TSAFEUSERDETAILLOV");
Query qry = PersistenceHelper.createNativeQuery(UserLov.SQL);
qry.setParameter("dateto", FormatDates.getDefaultExpiryTimestamp());
qry.setParameter("cia", pRequest.getCompany());
qry.setParameter("group", qb.getCriteriaValue("group"));
@SuppressWarnings("unchecked")
List<Object[]> l = qry.getResultList();
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
for (Object[] objects : l) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("pk_usercode", objects[0]);
m.put("name", objects[1]);
data.add(m);
}
pRequest.getResponse().put("TSAFEUSERDETAILLOV", data);
return pRequest;
}
}