@Transactional
 public OmBoletim excluirCidadao(final OmBoletim.PK omBoletim, final OmBoletimCidadao obc)
     throws SermilException {
   final OmBoletim ob = this.omBoletimDao.findById(omBoletim);
   ob.getOmBoletimCidadao().remove(obc);
   return this.omBoletimDao.save(ob);
 }
 @Transactional
 public OmBoletim adicionarSU(final OmBoletim omBoletim) throws SermilException {
   if (omBoletim == null
       || omBoletim.getPk().getAno() == null
       || omBoletim.getPk().getOmCodigo() == null) {
     throw new SermilException("Informe o ANO e o CODOM da OM.");
   }
   logger.debug("BOLETIM = {}", omBoletim);
   final List<?> lista =
       this.omBoletimDao.findBySQL(
           "SELECT MAX(CODIGO) FROM OM_BOLETIM WHERE OM_CODIGO = ? AND ANO = ? ",
           omBoletim.getPk().getOmCodigo(),
           omBoletim.getPk().getAno());
   if (lista.get(0) == null) {
     omBoletim.getPk().setCodigo(1);
   } else {
     omBoletim.getPk().setCodigo(((BigDecimal) lista.get(0)).intValue() + 1);
   }
   this.omBoletimDao.save(omBoletim);
   return omBoletim;
 }
 @Transactional
 public OmBoletim adicionarCidadao(final OmBoletim.PK omBoletim, final Long ra)
     throws SermilException {
   final OmBoletim ob = this.omBoletimDao.findById(omBoletim);
   final OmBoletimCidadao obc = new OmBoletimCidadao();
   final Cidadao cid = this.cidadaoDao.findById(ra);
   obc.setAno(ob.getPk().getAno());
   obc.setOmCodigo(ob.getPk().getOmCodigo());
   obc.setBoletimCod(ob.getPk().getCodigo());
   obc.getPk().setCidadaoRa(ra);
   obc.getPk().setGptIncorp(ob.getPk().getGptIncorp());
   obc.setCidadaoNome(cid.getNome());
   ob.addOmBoletimCidadao(obc);
   return this.omBoletimDao.save(ob);
 }
 @Transactional
 public void excluirSU(final OmBoletim omBoletim) throws SermilException {
   final OmBoletim ob = this.omBoletimDao.findById(omBoletim.getPk());
   this.omBoletimDao.delete(ob);
 }