Jelajahi Sumber

Adicionado tratativas do cotrato

Elemar Deckmann 1 tahun lalu
induk
melakukan
6f73877c9a

+ 53 - 0
src/main/java/com/ademicon/controller/ContratoController.java

@@ -0,0 +1,53 @@
+package com.ademicon.controller;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import com.ademicon.model.ContratoModel;
+import com.ademicon.model.ContratoResponse;
+import com.ademicon.service.ContratoService;
+
+@Path("/contrato")
+public class ContratoController {
+
+    private static ContratoService contratoService = new ContratoService();
+
+    @POST
+    @Path("/incluir")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response doPost(ContratoModel contrato) throws Exception {
+
+        try {
+
+            ContratoResponse contratoModel = contratoService.incluir(contrato);
+
+            return Response.status(Status.CREATED).entity(contratoModel).build();
+
+        } catch (Exception e) {
+            return Response.status(Status.INTERNAL_SERVER_ERROR).build();
+        }
+    }
+
+    @PUT
+    @Path("/upload/chassi/{chassi}")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response doUpload(@PathParam(value = "chassi") String chassi, String arquivo) throws Exception {
+        try {
+            ContratoResponse contratoResponse = contratoService.upload(chassi, arquivo);
+            return Response.status(Status.OK).entity(contratoResponse).build();
+
+        } catch (Exception e) {
+            return Response.status(Status.INTERNAL_SERVER_ERROR).build();
+            
+        }
+    }
+}

+ 69 - 0
src/main/java/com/ademicon/model/ContratoModel.java

@@ -0,0 +1,69 @@
+package com.ademicon.model;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ContratoModel {
+    private String bairroDevedor;
+    private String cepDevedor;
+    private String cnpjAgenteFinanceiro;
+    private String codigoMunicipioDevedor;
+    private String codigoMunicipioLiberacaoCredito;
+    private String cpfCnpjDevedorFinanciado;
+    private LocalDateTime dataAditivoContrato;
+    private LocalDateTime dataContrato;
+    private LocalDateTime dataLiberacaoCredito;
+    private LocalDateTime dataVencimentoPrimeiraParcela;
+    private LocalDateTime dataVencimentoUltimaParcela;
+    private Integer dddDevedor;
+    private String enderecoDevedor;
+    private String indicadorComissao;
+    private String indicadorPenalidade;
+    private String indicadorTaxaMoraDia;
+    private String indicadorTaxaMulta;
+    private String nomeDevedorFinanciado;
+    private String numeroAditivoContrato;
+    private String numeroContrato;
+    private Integer quantidadeMeses;
+    private String siglaIndiceFinaceiro;
+    private Integer telefoneDevedor;
+    private String tipoContrato;
+    private String tipoRestricao;
+    private String ufDevedor;
+    private String ufLiberacaoCredito;
+    private String ufRegistro;
+    private Double valorCredito;
+    private Double valorTaxaJurosMes;
+    private Double valorTotalDivida;
+    private List<VeiculoModel> veiculos;
+    private String clausulaPenalVrg;
+    private String comentario;
+    private String complementoEnderecoDevedor;
+    private String descricaoPenalidade;
+    private String emailDevedor;
+    private String integradoras;
+    private String municipioDevedor;
+    private String municipioLiberacaoCredito;
+    private String numeroCotaConsorcio;
+    private String numeroEnderecoDevedor;
+    private String numeroGrupoConsorcio;
+    private Double percentualComissao;
+    private String tipoVrg;
+    private String username;
+    private Double valorIOF;
+    private Double valorParcela;
+    private Double valorTaxaContrato;
+    private Double valorTaxaJurosAno;
+    private Double valorTaxaMoraDia;
+    private Double valorTaxaMulta;
+    private Double valorVrg;
+}

+ 22 - 0
src/main/java/com/ademicon/model/ContratoResponse.java

@@ -0,0 +1,22 @@
+package com.ademicon.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ContratoResponse {
+    private String chassi;
+    private String cnpjAgente;
+    private String codResposta;
+    private String codRespostaDetran;
+    private String hashOperacao;
+    private String msgResposta;
+    private String msgRespostaDetran;
+    private String numeroRegistroEletronico;
+    private String operacao;
+}

+ 22 - 0
src/main/java/com/ademicon/model/VeiculoModel.java

@@ -0,0 +1,22 @@
+package com.ademicon.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class VeiculoModel {
+    private Integer identificadorRemarcacao;
+    private String numeroChassi;
+    private String numeroGravame;
+    private Integer anoFabricacao;
+    private Integer anoModelo;
+    private String codTipo;
+    private String numeroRenavam;
+    private String placa;
+    private String ufPlacaAtual;
+}

+ 45 - 0
src/main/java/com/ademicon/repository/ContratoRepository.java

@@ -0,0 +1,45 @@
+package com.ademicon.repository;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import com.ademicon.model.ContratoResponse;
+import com.ademicon.service.ConnectionService;
+
+public class ContratoRepository {
+    private static Connection conn = null;
+    private static PreparedStatement statement = null;
+    private static ResultSet rs = null;
+
+    public int incluir(ContratoResponse contrato) throws Exception {
+        try {
+            String queryString = "UPDATE ADE_006_CONTROLE_GARANTIA SET CONTRATO_DETRAN = ? WHERE CHASSI = ?";
+            conn = ConnectionService.getConnection();
+            statement = conn.prepareStatement(queryString);
+            statement.setString(1, contrato.getNumeroRegistroEletronico());
+            statement.setString(2, contrato.getChassi());
+            return statement.executeUpdate();
+
+        } catch (Exception e) {
+            throw e;
+
+        } finally {
+            try {
+                if (rs != null)
+                    rs.close();
+            } catch (Exception e) {
+            }
+            try {
+                if (statement != null)
+                    statement.close();
+            } catch (Exception e) {
+            }
+            try {
+                if (conn != null)
+                    conn.close();
+            } catch (Exception e) {
+            }
+        }
+    }
+}

+ 101 - 0
src/main/java/com/ademicon/service/ContratoService.java

@@ -0,0 +1,101 @@
+package com.ademicon.service;
+
+import java.net.ConnectException;
+
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Form;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import com.ademicon.model.ContratoModel;
+import com.ademicon.model.ContratoResponse;
+import com.ademicon.model.auth.AccessModel;
+import com.ademicon.repository.ContratoRepository;
+import com.ademicon.service.auth.AccessService;
+import com.ademicon.service.auth.TokenService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class ContratoService {
+
+    private static AccessService accessService = new AccessService();
+
+    private static TokenService tokenService = new TokenService();
+
+    private static ContratoRepository contratoRepository = new ContratoRepository();
+
+    public ContratoResponse incluir(ContratoModel contrato) throws Exception {
+
+        AccessModel accessModel = accessService.find();
+
+        String token = tokenService.getToken();
+
+        Response response = ClientBuilder.newClient()
+                .target(accessModel.getPlaceti_url_base() + "/api/v1/contrato/incluir")
+                .request(MediaType.APPLICATION_JSON).header("Authorization", "Bearer " + token)
+                .buildPost(Entity.entity(contrato, MediaType.APPLICATION_JSON)).invoke();
+
+        int status = response.getStatus();
+        if (status == 200) {
+            String json = response.readEntity(String.class);
+            ObjectMapper mapper = new ObjectMapper();
+            return mapper.readValue(json, ContratoResponse.class);
+
+        } else {
+            throw new ConnectException();
+
+        }
+
+    }
+
+    public ContratoResponse upload(String registro, String arquivo) throws Exception {
+
+        try {
+            AccessModel accessModel = accessService.find();
+
+            String token = tokenService.getToken();
+
+            Form form = new Form();
+            form.param("file", arquivo);
+
+            Response response = ClientBuilder.newClient()
+                    .target(accessModel.getPlaceti_url_base()
+                            + "/api/v1/contrato/upload/numeroRegistroEletronico/:numeroRegistroEletronico")
+                    .queryParam("numeroRegistroEletronico", registro)
+                    .request()
+                    .header("Content-Type", "multipart/form-data")
+                    .header("Accept", "application/json")
+                    .header("Authorization", "Bearer " + token)
+                    .buildPost(Entity.form(form)).invoke();
+
+            if (response.getStatus() >= 200 && response.getStatus() < 300) {
+                ContratoResponse contrato = response.readEntity(ContratoResponse.class);
+                if (!contrato.getNumeroRegistroEletronico().isEmpty()) {
+                    int i = contratoRepository.incluir(contrato);
+                    if (i == 1) {
+                        return contrato;
+
+                    } else {
+                        throw new Exception(
+                                "Falha ao gravar o número do contrato: " + contrato.getNumeroRegistroEletronico());
+
+                    }
+
+                } else {
+                    throw new Exception("Falha ao registrar contrato");
+
+                }
+
+            } else {
+                throw new Exception("Falha de conexão");
+
+            }
+
+        } catch (Exception e) {
+            throw e;
+
+        }
+
+    }
+
+}

+ 1 - 0
src/main/java/com/ademicon/service/MunicipioService.java

@@ -26,6 +26,7 @@ public class MunicipioService {
                     .target(accessModel.getPlaceti_url_base() + "/api/v1/enderecamento/municipios/" + uf)
                     .request(MediaType.APPLICATION_JSON)
                     .header("Authorization", "Bearer " + token)
+                    .header("Accept", "application/json")
                     .get(new GenericType<List<MunicipioModel>>() {
                     });
 

+ 5 - 0
src/main/java/com/ademicon/service/auth/AccessService.java

@@ -7,6 +7,11 @@ public class AccessService {
 
     private static AccessRepository accessRepository = new AccessRepository();
 
+    /**
+     * Busca os dados de acesso
+     * @return AccessModel
+     * @throws Exception
+     */
     public AccessModel find() throws Exception {
         return accessRepository.find();
     }

+ 7 - 1
src/main/java/com/ademicon/service/auth/TokenService.java

@@ -29,6 +29,12 @@ public class TokenService {
         }
     }
 
+    /**
+     * Retorna o token de acesso
+     * 
+     * @return String
+     * @throws Exception
+     */
     public String getToken() throws Exception {
         try {
             TokenModel tokenModel = tokenRepository.find();
@@ -38,7 +44,7 @@ public class TokenService {
             }
             var rs = tokenModel.getAccess_token();
             return rs;
-            
+
         } catch (Exception e) {
             System.err.println(e);
             throw e;