/** * @param posString Format ###.## (<order number>.<position number>). */ @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public AuftragsPositionDO getAuftragsPosition(final String posString) { Integer auftragsNummer = null; Short positionNummer = null; if (posString == null) { return null; } final int sep = posString.indexOf('.'); if (sep <= 0 || sep + 1 >= posString.length()) { return null; } auftragsNummer = NumberHelper.parseInteger(posString.substring(0, posString.indexOf('.'))); positionNummer = NumberHelper.parseShort(posString.substring(posString.indexOf('.') + 1)); if (auftragsNummer == null || positionNummer == null) { log.info("Cannot parse order number (format ###.## expected: " + posString); return null; } @SuppressWarnings("unchecked") final List<AuftragDO> list = (List<AuftragDO>) getHibernateTemplate().find("from AuftragDO k where k.nummer=?", auftragsNummer); if (CollectionUtils.isEmpty(list) == true) { return null; } return list.get(0).getPosition(positionNummer); }
/** * @return Map with all order positions referencing a task. The key of the map is the task id. */ public Map<Integer, Set<AuftragsPositionVO>> getTaskReferences() { final Map<Integer, Set<AuftragsPositionVO>> result = new HashMap<Integer, Set<AuftragsPositionVO>>(); @SuppressWarnings("unchecked") final List<AuftragsPositionDO> list = (List<AuftragsPositionDO>) getHibernateTemplate() .find("from AuftragsPositionDO a where a.task.id is not null and a.deleted = false"); if (list == null) { return result; } for (final AuftragsPositionDO pos : list) { if (pos.getTaskId() == null) { log.error( "Oups, should not occur, that in getTaskReference a order position without a task reference is found."); continue; } final AuftragsPositionVO vo = new AuftragsPositionVO(pos); Set<AuftragsPositionVO> set = result.get(pos.getTaskId()); if (set == null) { set = new TreeSet<AuftragsPositionVO>(); result.put(pos.getTaskId(), set); } set.add(vo); } return result; }
final List<RechnungDO> list = (List<RechnungDO>) getHibernateTemplate().find( "from AuftragDO r where r.nummer = ? and r.id <> ?", new Object[] { obj.getNummer(), obj.getId() });