Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.generali.eVP.dao._impl.aoDAOImpl;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.math.NumberUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.dao.DataAccessException;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.stereotype.Repository;
- import com.generali.eVP.dao.aoDAO.AoDAO;
- import com.generali.eVP.model.ao.StariPodaci;
- import com.generali.eVP.model.ak.KaskoNovaPolica;
- import com.generali.eVP.model.ak.KaskoStaraPolica;
- import com.generali.eVP.model.ao.BudzetPosrednikaIzlaz;
- import com.generali.eVP.model.ao.BudzetPosrednikaUlaz;
- import com.generali.eVP.model.ao.NoviPodaci;
- import com.generali.eVP.model.ao.ObracunskaPolica;
- import com.generali.eVP.model.ao.ObranaPosrednikaVelikaTablicaIzlaz;
- import com.generali.eVP.model.ao.ObranaPosrednikaVelikaTablicaUlaz;
- import com.generali.eVP.model.ao.OsiguraneSvoteIzlaz;
- import com.generali.eVP.model.ao.OsiguraneSvoteUlaz;
- import com.generali.eVP.model.ao.PopustiIzlaz;
- import com.generali.eVP.model.ao.PopustiUlaz;
- import com.generali.eVP.model.ao.PortfolioPruningUlaz;
- import com.generali.eVP.model.ao.PortfolioPruningIzlaz;
- import com.generali.eVP.model.ao.ProvjeraBazeStetnikaIzlaz;
- import com.generali.eVP.model.ao.ProvjeraBazeStetnikaUlaz;
- import com.generali.eVP.model.ao.Saldo;
- import com.generali.eVP.model.ao.SifarnikBudzeta;
- import com.generali.eVP.model.ao.Steta;
- import com.generali.eVP.model.ao.UvjetiIzlaz;
- @Repository
- public class AoDAOImpl implements AoDAO {
- @Autowired
- @Qualifier("ins2JdbcTemplate")
- JdbcTemplate ins2jdbcTemplate;
- @Override
- public NoviPodaci getNoviPodaci(StariPodaci stariPodaci) {
- try {
- String status = ins2jdbcTemplate.queryForObject(
- "SELECT OS_STATUS FROM INS2.POV_STAT_ZADNJI WHERE SIFRA = ? AND OS_TIP = ?",
- new Object[] { stariPodaci.getBrojPrethodnePolice(), stariPodaci.getOsTip() }, String.class);
- if (status.equals("Ti")) {
- return ins2jdbcTemplate.queryForObject(
- "SELECT * FROM EVP_V_AUTOOSIGURANJE01 WHERE OS_TIP = ? AND SIFRA = ? ",
- new Object[] { stariPodaci.getOsTip(), stariPodaci.getBrojPrethodnePolice() }, (rs, rowNum) -> {
- NoviPodaci noviPodaci = new NoviPodaci();
- noviPodaci.setSaldo(getListaSaldo(stariPodaci));
- noviPodaci.setSteta(getListaSteta(stariPodaci));
- noviPodaci.setObracunskaPolica(getObracunskaPolica(stariPodaci));
- if (StringUtils.isNotEmpty(rs.getString(3)))
- noviPodaci.setOsTipPrethodne(rs.getString(3));
- if (StringUtils.isNotEmpty(rs.getString(4)))
- noviPodaci.setBrojPrethodne(rs.getString(4));
- if (StringUtils.isNotEmpty(rs.getString(5)))
- noviPodaci.setOsTipMaster(rs.getString(5));
- if (StringUtils.isNotEmpty(rs.getString(6)))
- noviPodaci.setMaster(rs.getString(6));
- if (StringUtils.isNotEmpty(rs.getString(7)))
- noviPodaci.setPosrednik(rs.getString(7));
- if (StringUtils.isNotEmpty(rs.getString(8)))
- noviPodaci.setSatOsiguranja(rs.getString(8));
- if (StringUtils.isNotEmpty(rs.getString(9)))
- noviPodaci.setDatumOsiguranja(rs.getString(9));
- if (StringUtils.isNotEmpty(rs.getString(10)))
- noviPodaci.setStrankaUgovaratelj(rs.getString(10));
- if (StringUtils.isNotEmpty(rs.getString(11)))
- noviPodaci.setPosrednikObnove(rs.getString(11));
- if (StringUtils.isNotEmpty(rs.getString(12)))
- noviPodaci.setRegistarskaOznaka(rs.getString(12));
- if (StringUtils.isNotEmpty(rs.getString(13)))
- noviPodaci.setBrojSasije(rs.getString(13));
- if (StringUtils.isNotEmpty(rs.getString(14)))
- noviPodaci.setProizvodjac(rs.getString(14));
- if (StringUtils.isNotEmpty(rs.getString(15)))
- noviPodaci.setTipModelVozila(rs.getString(15));
- if (StringUtils.isNotEmpty(rs.getString(16)))
- noviPodaci.setPremijskaGrupa(rs.getString(16));
- if (NumberUtils.isNumber(rs.getString(17)))
- noviPodaci.setBrojMjesta(rs.getInt(17));
- if (StringUtils.isNotEmpty(rs.getString(18)))
- noviPodaci.setSnagaMotora(rs.getString(18));
- if (StringUtils.isNotEmpty(rs.getString(19)))
- noviPodaci.setNdm(rs.getString(19));
- if (StringUtils.isNotEmpty(rs.getString(20)))
- noviPodaci.setZapremninaMotora(rs.getString(20));
- if (StringUtils.isNotEmpty(rs.getString(21)))
- noviPodaci.setDopustenaNosivost(rs.getString(21));
- if (StringUtils.isNotEmpty(rs.getString(22)))
- noviPodaci.setGodinaProizvodnje(rs.getString(22));
- if (StringUtils.isNotEmpty(rs.getString(23)))
- noviPodaci.setOsiguraneSvoteOsobe(rs.getString(23));
- if (StringUtils.isNotEmpty(rs.getString(24)))
- noviPodaci.setOsiguraneSvoteStvari(rs.getString(24));
- if (StringUtils.isNotEmpty(rs.getString(25)))
- noviPodaci.setStrankaOsiguranik(rs.getString(25));
- if (StringUtils.isNotEmpty(rs.getString(26)))
- noviPodaci.setObnovaNa(rs.getString(26));
- if (StringUtils.isNotEmpty(rs.getString(27)))
- noviPodaci.setMentorPosrednika(rs.getString(27));
- if (StringUtils.isNotEmpty(rs.getString(30)))
- noviPodaci.setOibUgovaratelj(rs.getString(30));
- if (StringUtils.isNotEmpty(rs.getString(31)))
- noviPodaci.setOibOsiguranik(rs.getString(31));
- return noviPodaci;
- });
- } else {
- return new NoviPodaci();
- }
- } catch (DataAccessException e) {
- e.printStackTrace();
- return new NoviPodaci();
- }
- }
- public List<Saldo> getListaSaldo(StariPodaci stariPodaci) {
- List<Saldo> saldo = ins2jdbcTemplate.query("SELECT * from TABLE (DRAZEN.SALDO(?, ?)) order by s_broj_rate",
- new Object[] { stariPodaci.getOsTip(), stariPodaci.getBrojPrethodnePolice() }, (rs, rowNum) -> {
- if(StringUtils.isNotEmpty(rs.getString(3))) {
- Saldo sal = new Saldo();
- sal.setsOsTip(rs.getString(1));
- sal.setsOsSifra(rs.getString(2));
- sal.setsBrojRate(rs.getString(3));
- sal.setsDatumDospijeca(rs.getString(4));
- sal.setsSaldo(rs.getString(5));
- return sal;
- }
- return null;
- });
- saldo.removeAll(Collections.singleton(null));
- return saldo;
- }
- public List<Steta> getListaSteta(StariPodaci stariPodaci) {
- List<Steta> steta = ins2jdbcTemplate.query("SELECT * from TABLE (DRAZEN.STETA(?, ?))",
- new Object[] { stariPodaci.getOsTip(), stariPodaci.getBrojPrethodnePolice() }, (rs, rowNum) -> {
- Steta ste = new Steta();
- ste.setsOsTip(rs.getString(1));
- ste.setsOsSifra(rs.getString(2));
- ste.setsSteta(rs.getString(3));
- return ste;
- });
- return steta;
- }
- public List<ObracunskaPolica> getObracunskaPolica(StariPodaci stariPodaci) {
- List<ObracunskaPolica> obracunska = ins2jdbcTemplate.query(
- "SELECT * FROM EVP_V_AUTOOSIGURANJE09 WHERE OS_TIP_MASTER = ? AND MASTER = ?",
- new Object[] { stariPodaci.getOsTip(), stariPodaci.getBrojPrethodnePolice() }, (rs, rowNum) -> {
- ObracunskaPolica obr = new ObracunskaPolica();
- obr.setOsTip(rs.getString(1));
- obr.setSifra(rs.getString(2));
- obr.setOsTipMaster(rs.getString(3));
- obr.setMaster(rs.getString(4));
- return obr;
- });
- return obracunska;
- }
- @Override
- public PortfolioPruningIzlaz getPortfolioPruning(PortfolioPruningUlaz portfolioPruningUlaz) {
- String sqlAppend = "";
- if (!("").equals(portfolioPruningUlaz.getOib())) {
- sqlAppend = "STRANKA = '" + portfolioPruningUlaz.getOib() + "'";
- } else {
- sqlAppend = "NAZIV LIKE '%" + portfolioPruningUlaz.getNaziv() + "%'";
- }
- try {
- return ins2jdbcTemplate.queryForObject("SELECT * FROM EVP_V_AUTOOSIGURANJE06 WHERE " + sqlAppend
- + " AND LISTA = ? AND TRUNC(SYSDATE) BETWEEN NVL(DATUM_OD, TO_DATE('01.01.1900','DD.MM.YYYY')) AND NVL(DATUM_DO, TO_DATE('01.01.2099','DD.MM.YYYY'))",
- new Object[] { portfolioPruningUlaz.getProizvod() }, (rs, rowNum) -> {
- PortfolioPruningIzlaz portfolioPruningIzlaz = new PortfolioPruningIzlaz();
- if (StringUtils.isNotEmpty(rs.getString(1)))
- portfolioPruningIzlaz.setDatumOd(rs.getString(1));
- if (StringUtils.isNotEmpty(rs.getString(2)))
- portfolioPruningIzlaz.setDatumDo(rs.getString(2));
- if (StringUtils.isNotEmpty(rs.getString(3)))
- portfolioPruningIzlaz.setRazlog(rs.getString(3));
- return portfolioPruningIzlaz;
- });
- } catch (DataAccessException e) {
- return new PortfolioPruningIzlaz();
- }
- }
- @Override
- public List<ProvjeraBazeStetnikaIzlaz> getListaProvjeraBazeStetnika(
- ProvjeraBazeStetnikaUlaz provjeraBazeStetnikaUlaz) {
- try {
- String sql = generateStetnikQuery(provjeraBazeStetnikaUlaz);
- List<ProvjeraBazeStetnikaIzlaz> provjeraBazeStetnika = ins2jdbcTemplate.query(sql, (rs, rowNum) -> {
- ProvjeraBazeStetnikaIzlaz provjeraBazeStetnikaIzlaz = new ProvjeraBazeStetnikaIzlaz();
- if (StringUtils.isNotEmpty(rs.getString(1)))
- provjeraBazeStetnikaIzlaz.setGodina(rs.getString(1));
- if (StringUtils.isNotEmpty(rs.getString(2)))
- provjeraBazeStetnikaIzlaz.setDrustvo(rs.getString(2));
- if (StringUtils.isNotEmpty(rs.getString(3)))
- provjeraBazeStetnikaIzlaz.setOibVlasnika(rs.getString(3));
- if (StringUtils.isNotEmpty(rs.getString(4)))
- provjeraBazeStetnikaIzlaz.setOibVozaca(rs.getString(4));
- if (StringUtils.isNotEmpty(rs.getString(5)))
- provjeraBazeStetnikaIzlaz.setImeVlasnika(rs.getString(5));
- if (StringUtils.isNotEmpty(rs.getString(6)))
- provjeraBazeStetnikaIzlaz.setPrezimeNazivVlasnika(rs.getString(6));
- if (StringUtils.isNotEmpty(rs.getString(7)))
- provjeraBazeStetnikaIzlaz.setImeVozaca(rs.getString(7));
- if (StringUtils.isNotEmpty(rs.getString(8)))
- provjeraBazeStetnikaIzlaz.setPrezimeVozaca(rs.getString(8));
- if (StringUtils.isNotEmpty(rs.getString(9)))
- provjeraBazeStetnikaIzlaz.setRegOznaka(rs.getString(9));
- if (StringUtils.isNotEmpty(rs.getString(10)))
- provjeraBazeStetnikaIzlaz.setSasija(rs.getString(10));
- if (StringUtils.isNotEmpty(rs.getString(11)))
- provjeraBazeStetnikaIzlaz.setPolica(rs.getString(11));
- if (StringUtils.isNotEmpty(rs.getString(12)))
- provjeraBazeStetnikaIzlaz.setBrojNovePolice(rs.getString(12));
- if (StringUtils.isNotEmpty(rs.getString(13)))
- provjeraBazeStetnikaIzlaz.setDatumIsteka(rs.getString(13));
- if (StringUtils.isNotEmpty(rs.getString(14)))
- provjeraBazeStetnikaIzlaz.setDatumStete(rs.getString(14));
- if (StringUtils.isNotEmpty(rs.getString(15)))
- provjeraBazeStetnikaIzlaz.setMjestoStete(rs.getString(15));
- if (StringUtils.isNotEmpty(rs.getString(16)))
- provjeraBazeStetnikaIzlaz.setBrojSteta(rs.getString(16));
- if (StringUtils.isNotEmpty(rs.getString(17)))
- provjeraBazeStetnikaIzlaz.setNaziv(rs.getString(17));
- if (StringUtils.isNotEmpty(rs.getString(18)))
- provjeraBazeStetnikaIzlaz.setStetnik(rs.getString(18));
- if (StringUtils.isNotEmpty(rs.getString(19)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaOibuVlasnika(rs.getString(19));
- if (StringUtils.isNotEmpty(rs.getString(20)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaOibuNazivuVlasnika(rs.getString(20));
- if (StringUtils.isNotEmpty(rs.getString(21)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaNazivu(rs.getString(21));
- if (StringUtils.isNotEmpty(rs.getString(22)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaPolici(rs.getString(22));
- if (StringUtils.isNotEmpty(rs.getString(23)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaSasijiVozila(rs.getString(23));
- if (StringUtils.isNotEmpty(rs.getString(24)))
- provjeraBazeStetnikaIzlaz.setPotvrdaPremaRegOznaciVozila(rs.getString(24));
- return provjeraBazeStetnikaIzlaz;
- });
- return provjeraBazeStetnika;
- } catch (DataAccessException e) {
- e.printStackTrace();
- return new ArrayList<>();
- }
- }
- private String generateStetnikQuery(ProvjeraBazeStetnikaUlaz provjeraBazeStetnikaUlaz) {
- StringBuilder sql = new StringBuilder();
- if (1 == provjeraBazeStetnikaUlaz.getLeasing()) {
- return generateLeasingQuery(provjeraBazeStetnikaUlaz, sql);
- }
- return generateNotLeasingQuery(provjeraBazeStetnikaUlaz, sql);
- }
- /**
- * @param provjeraBazeStetnikaUlaz
- * @param sql
- * @return
- */
- private String generateNotLeasingQuery(ProvjeraBazeStetnikaUlaz provjeraBazeStetnikaUlaz, StringBuilder sql) {
- sql.append(
- "SELECT GODINA, DRUSTVO, OIB_VLASNIKA, OIB_VOZACA, IME_VLASNIKA, PREZIME_NAZIV_VLASNIKA, IME_VOZACA, PREZIME_VOZACA, REG_OZN, SASIJA, POLICA, BROJ_NOVE_POLICE, DATUM_ISTEKA, DATUM_STETE, MJESTO_STETE, BROJ_STETA, NAZIV, STETNIK, "
- + "CASE WHEN (OIB_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "' OR OIB_VOZACA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_OIBU,");
- /**
- * POTVRDA PREMA OIBU, IMENU I PREZIMENU / NAZIVU
- */
- sql.append(" CASE WHEN ((OIB_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "' OR OIB_VOZACA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "') AND ((IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "') OR (NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "'))) THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_OIBU_NAZIVU,");
- /**
- * POTVRDA PREMA IMENU I PREZIMENU / NAZIVU
- */
- sql.append(" CASE WHEN ((IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "') OR ((NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim() + "') OR (NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + "') OR (NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "'))) THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_NAZIVU,");
- /**
- * POTVRDA PREMA POLICAMA
- */
- sql.append(" CASE WHEN (POLICA = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()
- + "' OR POLICA = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "' OR BROJ_NOVE_POLICE = '" + "32"
- + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "' OR BROJ_NOVE_POLICE = '"
- + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_POLICI,");
- /**
- * POTVRDA PREMA SASIJI
- */
- sql.append(" CASE WHEN (SASIJA = '" + provjeraBazeStetnikaUlaz.getBrojSasije().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_SASIJI_VOZILA,");
- /**
- * POTVRDA PREMA REGISTARSKOJ OZNACI
- */
- sql.append(" CASE WHEN (REG_OZN = '" + provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_REG_VOZILA ");
- /*
- * Ovdje počinje select pod određenim uvjetima
- */
- sql.append("FROM EVP_V_AUTOOSIGURANJE03 WHERE OIB_VLASNIKA = '"
- + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim() + "' OR OIB_VOZACA = '"
- + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim() + "'");
- /**
- * PROVJERA PO IMENU I PREZIMENU
- *
- * U provjeru mora ući sa ime+prezime osiguranika te sa prezime+ime osiguranika
- * u slučaju da su u bazi zamijenjeni upisi u kolone
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeOsiguranika().trim())
- && StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()))
- sql.append(" OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "')");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim())
- && StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()))
- sql.append(" OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + "')");
- /**
- * PROVJERA PO NAZIVU
- *
- * U naziv je potrebno ući i sa nazivom osiguranika i sa imenom osiguranika i sa
- * prezimenom osiguranika
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + "'");
- /**
- * PROVJERA PO POLICAMA
- *
- * U brojeve polica je potrebno ući i sa brojem stare police i sa brojem police
- * koja se obnavlja
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()))
- sql.append(" OR POLICA = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()))
- sql.append(" OR POLICA = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()))
- sql.append(
- " OR BROJ_NOVE_POLICE = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()))
- sql.append(" OR BROJ_NOVE_POLICE = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "'");
- /**
- * PROVJERA PO SASIJI
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojSasije().trim()))
- sql.append(" OR SASIJA = '" + provjeraBazeStetnikaUlaz.getBrojSasije().trim() + "'");
- /**
- * PROVJERA PO REGISTARSKOJ OZNACI
- */
- if (provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim().length() > 3)
- sql.append(" OR REG_OZN = '" + provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim() + "' ");
- sql.append("ORDER BY POTVRDA_PREMA_OIBU, POTVRDA_PREMA_OIBU_NAZIVU, "
- + "POTVRDA_PREMA_SASIJI_VOZILA, POTVRDA_PREMA_POLICI, "
- + "POTVRDA_PREMA_REG_VOZILA, POTVRDA_PREMA_NAZIVU");
- return sql.toString();
- }
- /**
- * @param provjeraBazeStetnikaUlaz
- * @param sql
- * @return
- */
- private String generateLeasingQuery(ProvjeraBazeStetnikaUlaz provjeraBazeStetnikaUlaz, StringBuilder sql) {
- sql.append(
- "SELECT GODINA, DRUSTVO, OIB_VLASNIKA, OIB_VOZACA, IME_VLASNIKA, PREZIME_NAZIV_VLASNIKA, IME_VOZACA, PREZIME_VOZACA, REG_OZN, SASIJA, POLICA, BROJ_NOVE_POLICE, DATUM_ISTEKA, DATUM_STETE, MJESTO_STETE, BROJ_STETA, NAZIV, STETNIK, "
- + "CASE WHEN (OIB_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "' OR OIB_VOZACA = '" + provjeraBazeStetnikaUlaz.getOibUgovaratelja().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_OIBU,");
- /**
- * POTVRDA PREMA OIBU, IMENU I PREZIMENU / NAZIVU
- */
- sql.append(" CASE WHEN (OIB_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getOibOsiguranika().trim()
- + "' OR OIB_VOZACA = '" + provjeraBazeStetnikaUlaz.getOibUgovaratelja().trim()
- + "' AND ((IME_VOZACA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "' AND PREZIME_VOZACA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "')) OR ((IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "')) AND ((NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivUgovaratelja().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + "') OR (NAZIV = '"
- + provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "'))) THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_OIBU_NAZIVU,");
- /**
- * POTVRDA PREMA OIBU, IMENU I PREZIMENU / NAZIVU
- */
- sql.append(" CASE WHEN (((IME_VOZACA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "' AND PREZIME_VOZACA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()
- + "')) OR ((IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "') OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "')) OR ((NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivUgovaratelja().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + "') OR (NAZIV = '"
- + provjeraBazeStetnikaUlaz.getNazivOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + "' OR NAZIV = '"
- + provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeOsiguranika().trim()
- + "'))) THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_NAZIVU,");
- /**
- * POTVRDA PREMA POLICAMA
- */
- sql.append(" CASE WHEN (POLICA = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()
- + "' OR POLICA = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "' OR BROJ_NOVE_POLICE = '" + "32"
- + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "' OR BROJ_NOVE_POLICE = '"
- + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_POLICI,");
- /**
- * POTVRDA PREMA SASIJI
- */
- sql.append(" CASE WHEN (SASIJA = '" + provjeraBazeStetnikaUlaz.getBrojSasije().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_SASIJI_VOZILA,");
- /**
- * POTVRDA PREMA REGISTARSKOJ OZNACI
- */
- sql.append(" CASE WHEN (REG_OZN = '" + provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim()
- + "') THEN 'DA' ELSE 'NE' END AS POTVRDA_PREMA_REG_VOZILA ");
- /*
- * Ovdje počinje select pod određenim uvjetima
- */
- sql.append("FROM EVP_V_AUTOOSIGURANJE03 WHERE OIB_VOZACA = '"
- + provjeraBazeStetnikaUlaz.getOibUgovaratelja().trim() + "'");
- /**
- * PROVJERA PO IMENU I PREZIMENU
- *
- * U provjeru mora ući sa ime+prezime ugovaratelja te sa prezime+ime
- * ugovaratelja u slučaju da su u bazi zamijenjeni upisi u kolone
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim())
- && StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()))
- sql.append(" OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "')");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim())
- && StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()))
- sql.append(" OR (IME_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim()
- + "' AND PREZIME_NAZIV_VLASNIKA = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + "')");
- /**
- * PROVJERA PO NAZIVU
- *
- * U naziv je potrebno ući i sa nazivom ugovaratelja i sa imenom ugovaratelja i
- * sa prezimenom ugovaratelja
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getNazivUgovaratelja().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getNazivUgovaratelja().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getPrezimeOsiguranika().trim()))
- sql.append(" OR NAZIV = '" + provjeraBazeStetnikaUlaz.getPrezimeUgovaratelja().trim() + " "
- + provjeraBazeStetnikaUlaz.getImeUgovaratelja().trim() + "'");
- /**
- * PROVJERA PO POLICAMA
- *
- * U brojeve polica je potrebno ući i sa brojem stare police i sa brojem police
- * koja se obnavlja
- *
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()))
- sql.append(" OR POLICA = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()))
- sql.append(" OR POLICA = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim()))
- sql.append(
- " OR BROJ_NOVE_POLICE = '" + "32" + provjeraBazeStetnikaUlaz.getBrojPrethodnePolice().trim() + "'");
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojStarePolice().trim()))
- sql.append(" OR BROJ_NOVE_POLICE = '" + provjeraBazeStetnikaUlaz.getOznakaDrustva().trim()
- + provjeraBazeStetnikaUlaz.getBrojStarePolice().trim() + "'");
- /**
- * PROVJERA PO SASIJI
- */
- if (StringUtils.isNotEmpty(provjeraBazeStetnikaUlaz.getBrojSasije().trim()))
- sql.append(" OR SASIJA = '" + provjeraBazeStetnikaUlaz.getBrojSasije().trim() + "'");
- /**
- * PROVJERA PO REGISTARSKOJ OZNACI
- */
- if (provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim().length() > 3)
- sql.append(" OR REG_OZN = '" + provjeraBazeStetnikaUlaz.getRegistarskaOznaka().trim() + "' ");
- sql.append("ORDER BY POTVRDA_PREMA_OIBU, POTVRDA_PREMA_OIBU_NAZIVU, "
- + "POTVRDA_PREMA_SASIJI_VOZILA, POTVRDA_PREMA_POLICI,"
- + "POTVRDA_PREMA_REG_VOZILA, POTVRDA_PREMA_NAZIVU");
- return sql.toString();
- }
- @Override
- public OsiguraneSvoteIzlaz getOsiguraneSvote(OsiguraneSvoteUlaz osiguraneSvoteUlaz) {
- try {
- return ins2jdbcTemplate.queryForObject(
- "SELECT * FROM EVP_V_AUTOOSIGURANJE05 WHERE GRUPACIJA = ? AND GRUPA = ? AND CJENIK = ? AND STAT_OB = ?",
- new Object[] { osiguraneSvoteUlaz.getGrupacija(), osiguraneSvoteUlaz.getGrupa(),
- osiguraneSvoteUlaz.getCjenik(), osiguraneSvoteUlaz.getStatistickoObiljezje() },
- (rs, rowNum) -> {
- OsiguraneSvoteIzlaz osiguraneSvoteIzlaz = new OsiguraneSvoteIzlaz();
- osiguraneSvoteIzlaz.setOsiguranaSvotaOsobe(rs.getBigDecimal(5));
- osiguraneSvoteIzlaz.setOsiguranaSvotaStvari(rs.getBigDecimal(6));
- return osiguraneSvoteIzlaz;
- });
- } catch (DataAccessException e) {
- return new OsiguraneSvoteIzlaz();
- }
- }
- @Override
- public List<PopustiIzlaz> getListaPopusta(PopustiUlaz popustiUlaz) {
- String sqlAppend = "";
- switch (popustiUlaz.getLeasing()) {
- case 1:
- switch (popustiUlaz.getTipUgovaratelja()) {
- case "1":
- case "8":
- sqlAppend = "AND '" + popustiUlaz.getDobUgovaratelja() + "' BETWEEN VRIJEDNOST_OD AND VRIJEDNOST_DO";
- break;
- default:
- sqlAppend = "AND VRIJEDNOST_OD = '505'";
- break;
- }
- break;
- case 0:
- switch (popustiUlaz.getTipOsiguranika()) {
- case "1":
- case "8":
- sqlAppend = "AND '" + popustiUlaz.getDobOsiguranika() + "' BETWEEN VRIJEDNOST_OD AND VRIJEDNOST_DO";
- break;
- default:
- sqlAppend = "AND VRIJEDNOST_OD = '505'";
- break;
- }
- break;
- }
- try {
- List<PopustiIzlaz> popusti = ins2jdbcTemplate.query(
- "SELECT * FROM EVP_V_AUTOOSIGURANJE04 WHERE GRUPACIJA = ? AND GRUPA = ? AND CJENIK = ? AND STAT_OB = ? AND TRUNC(SYSDATE) BETWEEN NVL(VRIJEDI_OD, TO_DATE('01.01.1900','DD.MM.YYYY')) "
- + "AND NVL(VRIJEDI_DO, TO_DATE('01.01.2099','DD.MM.YYYY')) AND GRUPA_DODATKA != 'A02' OR (STAT_OB = ? AND GRUPA_DODATKA IS NULL) "
- + "UNION ALL "
- + "SELECT * FROM EVP_V_AUTOOSIGURANJE04 WHERE GRUPACIJA = ? AND GRUPA = ? AND CJENIK = ? AND STAT_OB = ? AND TRUNC(SYSDATE) BETWEEN NVL(VRIJEDI_OD, TO_DATE('01.01.1900','DD.MM.YYYY')) "
- + "AND NVL(VRIJEDI_DO, TO_DATE('01.01.2099','DD.MM.YYYY')) AND GRUPA_DODATKA = 'A02' "
- + sqlAppend + " OR (STAT_OB = '0101' AND VRIJEDNOST_OD = '504') ",
- new Object[] { popustiUlaz.getGrupacija(), popustiUlaz.getGrupa(), popustiUlaz.getCjenik(),
- popustiUlaz.getStatistickoObiljezje(), popustiUlaz.getStatistickoObiljezje(),
- popustiUlaz.getGrupacija(), popustiUlaz.getGrupa(), popustiUlaz.getCjenik(),
- popustiUlaz.getStatistickoObiljezje() },
- (rs, rowNum) -> {
- PopustiIzlaz pop = new PopustiIzlaz();
- pop.setDodatak(rs.getString(5));
- pop.setNaziv(rs.getString(6));
- pop.setPostotak(rs.getBigDecimal(8));
- pop.setGrupaDodataka(rs.getString(11));
- pop.setNazivGrupe(rs.getString(19));
- return pop;
- });
- return popusti;
- } catch (DataAccessException e) {
- e.printStackTrace();
- return new ArrayList<>();
- }
- }
- @Override
- public BudzetPosrednikaIzlaz getBudzetPosrednika(BudzetPosrednikaUlaz budzetPosrednikaUlaz) {
- try {
- return ins2jdbcTemplate.queryForObject("SELECT * FROM EVP_V_AUTOOSIGURANJE02 WHERE POSREDNIK = ?",
- new Object[] { budzetPosrednikaUlaz.getUlogiraniPosrednik() }, (rs, rowNum) -> {
- BudzetPosrednikaIzlaz budzetPosrednikaIzlaz = new BudzetPosrednikaIzlaz();
- budzetPosrednikaIzlaz.setSifarnikBudzeta(getSifarnikZaBudzet(budzetPosrednikaUlaz));
- if (NumberUtils.isNumber(rs.getString(3)))
- budzetPosrednikaIzlaz.setInicijalniBudzet(rs.getBigDecimal(3));
- if (NumberUtils.isNumber(rs.getString(4)))
- budzetPosrednikaIzlaz.setTrenutniBudzet(rs.getBigDecimal(4));
- if (NumberUtils.isNumber(rs.getString(5)))
- budzetPosrednikaIzlaz.setUtjecajNaPremiju(rs.getBigDecimal(5));
- if (NumberUtils.isNumber(rs.getString(6)))
- budzetPosrednikaIzlaz.setMaksimalniPopust(rs.getBigDecimal(6));
- if (budzetPosrednikaIzlaz.getTrenutniBudzet().intValue() > 0) {
- budzetPosrednikaIzlaz.setMaksimalnoDozvoljeno(rs.getBigDecimal(6));
- } else {
- budzetPosrednikaIzlaz.setMaksimalnoDozvoljeno(rs.getBigDecimal(5));
- }
- return budzetPosrednikaIzlaz;
- });
- } catch (DataAccessException e) {
- return new BudzetPosrednikaIzlaz();
- }
- }
- public List<SifarnikBudzeta> getSifarnikZaBudzet(BudzetPosrednikaUlaz budzetPosrednikaUlaz) {
- List<SifarnikBudzeta> sifarnikBudzeta = ins2jdbcTemplate.query(
- "SELECT * FROM EVP_V_AUTOOSIGURANJE07 WHERE STAT_OB = ?",
- new Object[] { budzetPosrednikaUlaz.getStatOb() }, (rs, rowNum) -> {
- SifarnikBudzeta sif = new SifarnikBudzeta();
- sif.setBudzetGrupacija(rs.getString(1));
- sif.setBudzetGrupa(rs.getString(2));
- sif.setBudzetCjenik(rs.getString(3));
- sif.setBudzetDodatak(rs.getString(5));
- sif.setBudzetNaziv(rs.getString(6));
- return sif;
- });
- return sifarnikBudzeta;
- }
- @Override
- public List<UvjetiIzlaz> getUvjeti() {
- try {
- List<UvjetiIzlaz> uvjeti = ins2jdbcTemplate.query("SELECT * FROM EVP_V_AUTOOSIGURANJE08", (rs, rowNum) -> {
- UvjetiIzlaz uvj = new UvjetiIzlaz();
- uvj.setUvjet(rs.getString("UVJET"));
- uvj.setNaziv(rs.getString("NAZIV"));
- uvj.setInformacija(rs.getString("INFORMACIJA"));
- uvj.setId(rs.getString("ID"));
- return uvj;
- });
- return uvjeti;
- } catch (DataAccessException e) {
- e.printStackTrace();
- return new ArrayList<>();
- }
- }
- @Override
- public List<ObranaPosrednikaVelikaTablicaIzlaz> getObrana(ObranaPosrednikaVelikaTablicaUlaz obranaPosrednikaVelikaTablicaUlaz) {
- try {
- List<ObranaPosrednikaVelikaTablicaIzlaz> obrana = ins2jdbcTemplate.query("SELECT * FROM EVP_V_AUTOOSIGURANJE10 WHERE ORIGINALNI_POSREDNIK = ?",
- new Object[] { obranaPosrednikaVelikaTablicaUlaz.getPosrednik() }, (rs, rowNum) -> {
- ObranaPosrednikaVelikaTablicaIzlaz obr = new ObranaPosrednikaVelikaTablicaIzlaz();
- obr.setPosrednikObrane(rs.getString("POSREDNIK_OBRANE"));
- obr.setMaksimalniPopust(rs.getString("MAKSIMALNI_POPUST"));
- return obr;
- });
- return obrana;
- } catch (DataAccessException e) {
- e.printStackTrace();
- return new ArrayList<>();
- }
- }
- @Override
- public KaskoNovaPolica getForNovaPolica(KaskoStaraPolica staraPolica) {
- // TODO Auto-generated method stub
- return null;
- }
- }
Add Comment
Please, Sign In to add comment