Toma de decisiones

Una vez concluido nuestro preregistro y suponiendo que los usuarios se estan registrando satisfactoriamente viene una parte fundamental la toma de deciciones que necesitan las autoridades para aplicar la vacuna y aquí se requiere de mostrar datos estadísticos que ayuden al gobierno a tomar medidas necesarias.lo que se requiere es que se muestre la cantidad total de usuarios registrados en el preregistro y por ejemplo para la aplicación de la vacuna se necesita saber la candidad de habitantes de 95 a 18 años que hay en cada código postal así las autoridades municipales decidirían la sede,fecha y horario que se requiere para la aplicación de la vacuna.Que posteriormente se pretende realizar un proceso batch para mandar la respuesta a cada uno de los usuario basandose en su correo.En este apartado nada vamos a mostrar los datos estadísticos para la toma de deciciones.

Desarrollo

Abrimos nuestro IDE eclipse y comenzamos por modificar la versión de spring data cassandra a la version 2.1.8.RELEASE el archivo pom.xml nos queda de la siguiente forma:
 
  
   
  
  
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.3.3.RELEASE</version>
  <relativePath/>
<!-- lookup parent from repository -->
</parent>
  
  
  
  <groupId>com.tutosoftware.mivacuna</groupId>
  <artifactId>mivacuna</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>MiVacuna</name>
  
  <properties>
		<java.version>1.8</java.version>
		  <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
	</properties>

	<dependencies>
  
       
	<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-cassandra -->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-cassandra</artifactId>
    <version>2.1.8.RELEASE</version><!--$NO-MVN-MAN-VER$-->
</dependency>
	
	
	 <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.5.5</version>
   </dependency>
	 
	 
	 
	 <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.18</version><!--$NO-MVN-MAN-VER$-->
        <scope>provided</scope>
    </dependency>
	 
		
		

		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
		
     <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>		
		
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
  
   
  
</project>
  
  
     
   

CassandraUtil

En src/main/java nos vaamos a paquete com.tutosoftware.mivacuna.util y modificamos la clase CassandraUtil
 
  
   
 
 package com.tutosoftware.mivacuna.util;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.cassandra.core.CassandraOperations;
import org.springframework.data.cassandra.core.query.Query;
import org.springframework.stereotype.Component;

@Component
public class CassandraUtil {
	
	@Autowired
    private CassandraOperations cassandraTemplate;
	
    public <T> void create(T entity) {
        cassandraTemplate.insert(entity);
    }
        
  
   
  
    public <T> void createList(List<T> entities) {
        cassandraTemplate.insert(entities);     
    }
    
   
    public <T> T update(T entity) {     
         cassandraTemplate.update(entity);
         return entity;
    }
    
   
    public <T> void updateList(List<T> entities) {      
        cassandraTemplate.update(entities);
    }
    
    
    
    
   
    public <T> T findById(Object id, Class<T> claz) {
        return cassandraTemplate.selectOneById(id,claz);
    }
    
    
    public <T> void deleteById(Object id, Class<T> claz) {
        cassandraTemplate.deleteById(id,claz);
    }
    
  
    public void delete(Object entity) {
        cassandraTemplate.delete(entity);
    }
    
   
    public <T> void delete(List<T> entities) {
        cassandraTemplate.delete(entities);
    }
    
  
    public <T> T findOne(String cql,Class<T> claz){
    	return cassandraTemplate.selectOne(cql, claz);
    }
    
    
    public <T> List<T> findAll(String cql,Class<T> claz) {
        return (List<T>) cassandraTemplate.select(cql,claz);
    }
    
  
    
    
   
    public <T> void truncate(Class<T> claz) {
        cassandraTemplate.truncate(claz);
    }
    
   
    public <T> long getCount(Class<T> claz) {
        return cassandraTemplate.count(claz);
    }   
 
     
    
    public <T> long getCount(Query query, Class<T> claz) {
    	return cassandraTemplate.count(query,claz);
    }
    
   
    public <T> boolean exists(Object id, Class<T> claz) {
        return cassandraTemplate.exists(id,claz);
    }

}