package net.techreadiness.plugin.action.task.dataentry.dao;
import javax.persistence.TypedQuery;
import net.techreadiness.persistence.dao.BaseDAOImpl;
import net.techreadiness.persistence.domain.DeviceDO;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
@Repository
@Scope("prototype")
public class AlertBoxDAOImpl extends BaseDAOImpl<DeviceDO> implements AlertBoxDAO {
@Override
public Long getDeviceCountMissingReadinessDeterminants(Long orgId) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(d) ");
sb.append("FROM DeviceDO d ");
sb.append("WHERE (d.operatingSystem IS NULL OR d.operatingSystem = '' ");
sb.append("OR d.memory IS NULL OR d.memory = '' ");
sb.append("OR d.screenResolution IS NULL OR d.screenResolution = '' ");
sb.append("OR d.environment IS NULL OR d.environment = '' ");
sb.append("OR d.monitorDisplaySize IS NULL OR d.monitorDisplaySize = '') ");
sb.append("AND d.org.orgId = :orgId");
TypedQuery<Long> query = em.createQuery(sb.toString(), Long.class);
query.setParameter("orgId", orgId);
return getSingleResult(query);
}
@Override
public Long getDeviceCount(Long orgId) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(d) ");
sb.append("FROM DeviceDO d ");
sb.append("WHERE d.org.orgId = :orgId");
TypedQuery<Long> query = em.createQuery(sb.toString(), Long.class);
query.setParameter("orgId", orgId);
return getSingleResult(query);
}
}