You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/provider/FichasClinicasDataProvider....

225 lines
7.9 KiB

package shst.medicina.fichasclinicas.provider;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import pt.evolute.data.ProviderSpringBean;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcMotivosData;
import shst.medicina.fichasclinicas.data.fichasclinicas.FcTipoFichaData;
import shst.medicina.fichasclinicas.data.fichasclinicas.TrbEstadoCivilData;
import shst.medicina.fichasclinicas.data.fichasclinicas.TrbHabilitacoesData;
import shst.medicina.fichasclinicas.data.shst.EmpresasData;
import shst.medicina.fichasclinicas.data.shst.EstabelecimentosData;
import shst.medicina.fichasclinicas.data.shst.TrabalhadoresData;
import com.evolute.utils.arrays.Virtual2DArray;
import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field;
import com.evolute.utils.sql.Select;
public class FichasClinicasDataProvider
{
@Autowired(required = true)
@Qualifier("defaultProvider")
ProviderSpringBean fichasProvidersBean;
@Autowired(required = true)
@Qualifier("siprpProvider")
ProviderSpringBean siprpProvidersBean;
public List<EmpresasData> getEmpresas(Integer userID, String filter) throws Exception
{
Expression dataFilter = new Field(EmpresasData.INACTIVO).isDifferent("y").and(new Field(EmpresasData.DATA_CANCELAMENTO).isEqual(null));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field(EmpresasData.DESIGNACAO_SOCIAL).isILike("%"+filter+"%")) ;
}
/* filtros do utilizador */
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(EmpresasData.class, dataFilter, new String[]{EmpresasData.DESIGNACAO_SOCIAL}, null);
}
public List<EstabelecimentosData> getEstabelecimentos(Integer userID, Integer empresaID, String filter) throws Exception
{
Expression dataFilter = new Field(EstabelecimentosData.INACTIVO).isDifferent("y").and(new Field(EstabelecimentosData.EMPRESA_ID).isEqual(empresaID));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field(EstabelecimentosData.NOME).isILike("%"+filter+"%")) ;
}
/* filtros do utilizador */
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(EstabelecimentosData.class, dataFilter, new String[]{EstabelecimentosData.NOME}, null);
}
public List<TrabalhadoresData> getTrabalhadores(Integer userID, Integer estabelecimentoID, String filter) throws Exception
{
Expression dataFilter = new Field(TrabalhadoresData.INACTIVO).isDifferent("y")
.and(new Field(TrabalhadoresData.ESTABELECIMENTO_ID).isEqual(estabelecimentoID))
.and(new Field(TrabalhadoresData.DATA_DEMISSAO).isEqual(null));
if(!filter.isEmpty())
{
dataFilter = dataFilter.and(new Field("PLAIN("+TrabalhadoresData.NOME+")").isILike("%"+filter+"%")) ;
}
/* filtros do utilizador */
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(TrabalhadoresData.class, dataFilter, new String[]{TrabalhadoresData.NOME}, null);
}
public List<FcTipoFichaData> getTiposFicha(Integer userID) throws Exception
{
Expression dataFilter = new Field(FcTipoFichaData.DELETED_STAMP).isEqual(null);
/* filtros do utilizador */
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcTipoFichaData.class, dataFilter, new String[]{FcTipoFichaData.DESCRICAO}, null);
}
public TrabalhadoresData getTrabalhador(Integer userID, Integer trabalhadorID, boolean forceLoad) throws Exception
{
Expression dataFilter = new Field(TrabalhadoresData.ID).isEqual(trabalhadorID);
if(!forceLoad)
{
dataFilter = dataFilter.and(new Field(TrabalhadoresData.INACTIVO).isDifferent("y")).and(new Field(TrabalhadoresData.DATA_DEMISSAO).isEqual(null));
}
/* filtros do utilizador */
TrabalhadoresData result = null;
List<TrabalhadoresData> trabs = siprpProvidersBean.getENTITY_PROVIDER().listLoad(TrabalhadoresData.class, dataFilter, new String[]{TrabalhadoresData.NOME}, null);
if(trabs.size() > 0)
{
result = trabs.get(0);
}
return result;
}
public List<FcFichaData> getFichasTrabalhador(Integer userID, Integer trabalhadorID) throws Exception
{
Expression dataFilter = new Field(FcFichaData.TRABALHADOR_ID).isEqual(trabalhadorID).and(new Field(FcFichaData.DELETED_STAMP).isEqual(null));
/* filtros do utilizador */
//dataFilter = dataFilter.and(new Field(FcFichaData.CREATED_USER_ID).isEqual(userID));
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaData.class, dataFilter, new String[]{FcFichaData.ID}, null);
}
public FcFichaData getFicha(Integer fichaID) throws Exception
{
return fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaData.class, new Object[]{fichaID,null}, new String[]{FcFichaData.ID,FcFichaData.DELETED_STAMP}, null);
}
public FcFichaData atomSave(FcFichaData fichaBD,Set<com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey>> others) throws Exception
{
Object trx = null;
try
{
trx = fichasProvidersBean.getENTITY_PROVIDER().begin();
//fichasProvidersBean.getENTITY_PROVIDER().save(fichaBD, trx);
fichaBD.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
fichaBD.save(trx);
for(com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey> other : others)
{
//fichasProvidersBean.getENTITY_PROVIDER().save(other, trx);
other.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
other.save(trx);
}
fichasProvidersBean.getENTITY_PROVIDER().commit(trx);
trx = null;
return fichaBD;
}
catch(Exception ex)
{
if(trx != null)
{
try
{
fichasProvidersBean.getENTITY_PROVIDER().rollback(trx);
}
catch(Exception i_ex)
{
;// silent fall
}
}
throw ex;
}
}
public Map<Integer,Date> getServerDateFichaConclusion(Integer fichaID) throws Exception
{
String queryString =
"SELECT 0 AS "+FcFichaData.ID+", NOW() AS"+FcFichaData.DATA_CONCLUSAO;
if(fichaID != null)
{
queryString = queryString + " UNION " +
"SELECT "+FcFichaData.ID+" , "+FcFichaData.DATA_CONCLUSAO+" FROM "+FcFichaData.TABLENAME+" WHERE "+FcFichaData.ID+" = "+fichaID ;//+" AND "+FcFichaData.DATA_CONCLUSAO+" IS NULL"+
//" ORDER BY "+FcFichaData.ID+" DESC";
}
Virtual2DArray queryResult = fichasProvidersBean.getDBMANAGER().getSharedExecuter(this).executeQuery(new Select(queryString));
Map<Integer,Date> rst = new HashMap<Integer, Date>();
for(int i = 0 ; i < queryResult.rowCount(); i++)
{
rst.put((Integer)queryResult.get(i, 0), (Date)queryResult.get(i, 1));
}
return rst;
}
public FcTipoFichaData getTipoFichaByID(Integer tipoFichaID) throws Exception
{
return fichasProvidersBean.getENTITY_PROVIDER().load(FcTipoFichaData.class, new Object[]{tipoFichaID,null}, new String[]{FcTipoFichaData.ID,FcTipoFichaData.DELETED_STAMP});
}
public List<TrbHabilitacoesData> getHabilitacoes() throws Exception
{
Expression dataFilter = new Field(TrbHabilitacoesData.DELETED_STAMP).isEqual(null);
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(TrbHabilitacoesData.class, dataFilter, new String[]{TrbHabilitacoesData.DESCRICAO}, null);
}
public List<TrbEstadoCivilData> getEstadosCivis() throws Exception
{
Expression dataFilter = new Field(TrbEstadoCivilData.DELETED_STAMP).isEqual(null);
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(TrbEstadoCivilData.class, dataFilter, new String[]{TrbEstadoCivilData.DESCRICAO}, null);
}
public List<FcMotivosData> getMotivos(String prefix) throws Exception
{
Expression dataFilter = new Field(FcMotivosData.DELETED_STAMP).isEqual(null).and(new Field("LEFT("+FcMotivosData.CODIGO+","+prefix.length()+")").isEqual(prefix));
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcMotivosData.class, dataFilter, new String[]{FcMotivosData.DESCRICAO}, null);
}
}