Loading core/src/main/java/cz/muni/fi/pa165/core/DataInitializer.java +17 −18 Original line number Original line Diff line number Diff line Loading @@ -23,8 +23,9 @@ import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; @Component @RequiredArgsConstructor @RequiredArgsConstructor @Component public class DataInitializer implements ApplicationRunner { public class DataInitializer implements ApplicationRunner { private final UserService userService; private final UserService userService; private final DeviceService deviceService; private final DeviceService deviceService; Loading Loading @@ -80,8 +81,18 @@ public class DataInitializer implements ApplicationRunner { .build(); .build(); userService.create(user); userService.create(user); House house = House.builder() .address("lol") .city("lol") .state("lol") .zipcode("lol") .build(); house.setId("b256ac78-dc47-11ed-afa1-0242ac120002"); houseService.create(house); HouseRole role = HouseRole.builder() HouseRole role = HouseRole.builder() .houseRole(HouseRoleEnum.Owner) .houseRole(HouseRoleEnum.Owner) .house(house) .build(); .build(); role.setUser(user); role.setUser(user); roleService.create(role); roleService.create(role); Loading @@ -89,24 +100,12 @@ public class DataInitializer implements ApplicationRunner { Device device = Device.builder().name("device03").build(); Device device = Device.builder().name("device03").build(); deviceService.create(device); deviceService.create(device); SmartMeter smartMeter = SmartMeter.builder().name("smartMeter01").device(device).build(); SmartMeter smartMeter = SmartMeter smartMeterService.create(smartMeter); .builder() .device(device) List<SmartMeter> smartMeterList = new ArrayList<SmartMeter>(); .house(house) smartMeterList.add(smartMeter); ArrayList<HouseRole> owners = new ArrayList<>(); owners.add(role); House house = House.builder() .smartMeterList(smartMeterList) .address("lol") .city("lol") .state("lol") .zipcode("lol") .ownerList(owners) .build(); .build(); houseService.create(house); smartMeterService.create(smartMeter); Metrics metrics = Metrics.builder() Metrics metrics = Metrics.builder() .consumptionKWH(10) .consumptionKWH(10) Loading core/src/main/java/cz/muni/fi/pa165/core/user/UserRepository.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ public interface UserRepository extends JpaRepository<User, String> { @Query("Select SUM(m.consumptionKWH) " + @Query("Select SUM(m.consumptionKWH) " + "From User u " + "From User u " + "INNER JOIN Role r " + "INNER JOIN HouseRole hr " + "INNER JOIN HouseRole hr " + "INNER JOIN House h " + "INNER JOIN House h " + "INNER JOIN SmartMeter s " + "INNER JOIN SmartMeter s " + Loading statistics/src/main/java/cz/muni/fi/pa165/statistics/statistics/StatisticService.java +6 −13 Original line number Original line Diff line number Diff line package cz.muni.fi.pa165.statistics.statistics; package cz.muni.fi.pa165.statistics.statistics; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpHead; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder; Loading @@ -12,12 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.stereotype.Service; import java.io.IOException; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.List; import java.util.UUID; import java.util.UUID; Loading @@ -35,7 +28,7 @@ public class StatisticService { } } @Transactional @Transactional public UserStatistic CreateStatistic(UserStatistic userStatistic) throws IOException { public UserStatistic createStatistic(UserStatistic userStatistic) throws IOException { UserStatistic statistic = repository.findUserHouseDateStatistics(userStatistic.getUserId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getYearNum()); UserStatistic statistic = repository.findUserHouseDateStatistics(userStatistic.getUserId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getYearNum()); if (statistic == null){ if (statistic == null){ Loading @@ -45,7 +38,7 @@ public class StatisticService { userStatistic.getHouseId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getMonthNum(), userStatistic.getYearNum())); userStatistic.getYearNum())); userStatistic.setMonthlyConsumption(GenerateStatistic(userStatistic)); userStatistic.setMonthlyConsumption(generateStatistic(userStatistic)); repository.save(userStatistic); repository.save(userStatistic); return userStatistic; return userStatistic; } } Loading @@ -65,7 +58,7 @@ public class StatisticService { return repository.findAllByUserAndHouse(userId, houseId); return repository.findAllByUserAndHouse(userId, houseId); } } private double GenerateStatistic(UserStatistic userStatistic) throws IOException { public double generateStatistic(UserStatistic userStatistic) throws IOException { LocalDateTime startDateTime = GetFirstDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime startDateTime = GetFirstDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime lastDateTime = GetLastDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime lastDateTime = GetLastDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); Loading Loading @@ -102,12 +95,12 @@ public class StatisticService { private LocalDateTime GetLastDayOfMonth(int year, int month){ private LocalDateTime GetLastDayOfMonth(int year, int month){ LocalDateTime date = LocalDateTime.of(year, LocalDateTime date = LocalDateTime.of(year, month,1,0,0,0,0); month,1,0,0,0,0); date.plusMonths(1); LocalDateTime date_pom = date.plusMonths(1); date.minusDays(1); LocalDateTime lastDateOfMonth = date_pom.minusDays(1); return LocalDateTime.of(year, return LocalDateTime.of(year, month, month, date.getDayOfMonth(), lastDateOfMonth.getDayOfMonth(), 23,59,59,999999); 23,59,59,999999); } } Loading statistics/src/main/java/cz/muni/fi/pa165/statistics/statistics/StatisticsFacade.java +1 −3 Original line number Original line Diff line number Diff line package cz.muni.fi.pa165.statistics.statistics; package cz.muni.fi.pa165.statistics.statistics; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestParam; import java.io.IOException; import java.io.IOException; import java.util.List; import java.util.List; Loading @@ -24,7 +22,7 @@ public class StatisticsFacade { @Transactional @Transactional public UserStatisticsDto CreateStatistics(StatisticCreateDto entity) throws IOException { public UserStatisticsDto CreateStatistics(StatisticCreateDto entity) throws IOException { return mapper.toDto(statisticService.CreateStatistic(mapper.fromDto(entity))); return mapper.toDto(statisticService.createStatistic(mapper.fromDto(entity))); } } @Transactional @Transactional Loading Loading
core/src/main/java/cz/muni/fi/pa165/core/DataInitializer.java +17 −18 Original line number Original line Diff line number Diff line Loading @@ -23,8 +23,9 @@ import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; @Component @RequiredArgsConstructor @RequiredArgsConstructor @Component public class DataInitializer implements ApplicationRunner { public class DataInitializer implements ApplicationRunner { private final UserService userService; private final UserService userService; private final DeviceService deviceService; private final DeviceService deviceService; Loading Loading @@ -80,8 +81,18 @@ public class DataInitializer implements ApplicationRunner { .build(); .build(); userService.create(user); userService.create(user); House house = House.builder() .address("lol") .city("lol") .state("lol") .zipcode("lol") .build(); house.setId("b256ac78-dc47-11ed-afa1-0242ac120002"); houseService.create(house); HouseRole role = HouseRole.builder() HouseRole role = HouseRole.builder() .houseRole(HouseRoleEnum.Owner) .houseRole(HouseRoleEnum.Owner) .house(house) .build(); .build(); role.setUser(user); role.setUser(user); roleService.create(role); roleService.create(role); Loading @@ -89,24 +100,12 @@ public class DataInitializer implements ApplicationRunner { Device device = Device.builder().name("device03").build(); Device device = Device.builder().name("device03").build(); deviceService.create(device); deviceService.create(device); SmartMeter smartMeter = SmartMeter.builder().name("smartMeter01").device(device).build(); SmartMeter smartMeter = SmartMeter smartMeterService.create(smartMeter); .builder() .device(device) List<SmartMeter> smartMeterList = new ArrayList<SmartMeter>(); .house(house) smartMeterList.add(smartMeter); ArrayList<HouseRole> owners = new ArrayList<>(); owners.add(role); House house = House.builder() .smartMeterList(smartMeterList) .address("lol") .city("lol") .state("lol") .zipcode("lol") .ownerList(owners) .build(); .build(); houseService.create(house); smartMeterService.create(smartMeter); Metrics metrics = Metrics.builder() Metrics metrics = Metrics.builder() .consumptionKWH(10) .consumptionKWH(10) Loading
core/src/main/java/cz/muni/fi/pa165/core/user/UserRepository.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ public interface UserRepository extends JpaRepository<User, String> { @Query("Select SUM(m.consumptionKWH) " + @Query("Select SUM(m.consumptionKWH) " + "From User u " + "From User u " + "INNER JOIN Role r " + "INNER JOIN HouseRole hr " + "INNER JOIN HouseRole hr " + "INNER JOIN House h " + "INNER JOIN House h " + "INNER JOIN SmartMeter s " + "INNER JOIN SmartMeter s " + Loading
statistics/src/main/java/cz/muni/fi/pa165/statistics/statistics/StatisticService.java +6 −13 Original line number Original line Diff line number Diff line package cz.muni.fi.pa165.statistics.statistics; package cz.muni.fi.pa165.statistics.statistics; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpHead; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder; Loading @@ -12,12 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.stereotype.Service; import java.io.IOException; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.List; import java.util.UUID; import java.util.UUID; Loading @@ -35,7 +28,7 @@ public class StatisticService { } } @Transactional @Transactional public UserStatistic CreateStatistic(UserStatistic userStatistic) throws IOException { public UserStatistic createStatistic(UserStatistic userStatistic) throws IOException { UserStatistic statistic = repository.findUserHouseDateStatistics(userStatistic.getUserId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getYearNum()); UserStatistic statistic = repository.findUserHouseDateStatistics(userStatistic.getUserId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getYearNum()); if (statistic == null){ if (statistic == null){ Loading @@ -45,7 +38,7 @@ public class StatisticService { userStatistic.getHouseId(), userStatistic.getHouseId(), userStatistic.getMonthNum(), userStatistic.getMonthNum(), userStatistic.getYearNum())); userStatistic.getYearNum())); userStatistic.setMonthlyConsumption(GenerateStatistic(userStatistic)); userStatistic.setMonthlyConsumption(generateStatistic(userStatistic)); repository.save(userStatistic); repository.save(userStatistic); return userStatistic; return userStatistic; } } Loading @@ -65,7 +58,7 @@ public class StatisticService { return repository.findAllByUserAndHouse(userId, houseId); return repository.findAllByUserAndHouse(userId, houseId); } } private double GenerateStatistic(UserStatistic userStatistic) throws IOException { public double generateStatistic(UserStatistic userStatistic) throws IOException { LocalDateTime startDateTime = GetFirstDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime startDateTime = GetFirstDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime lastDateTime = GetLastDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); LocalDateTime lastDateTime = GetLastDayOfMonth(userStatistic.getYearNum(), userStatistic.getMonthNum()); Loading Loading @@ -102,12 +95,12 @@ public class StatisticService { private LocalDateTime GetLastDayOfMonth(int year, int month){ private LocalDateTime GetLastDayOfMonth(int year, int month){ LocalDateTime date = LocalDateTime.of(year, LocalDateTime date = LocalDateTime.of(year, month,1,0,0,0,0); month,1,0,0,0,0); date.plusMonths(1); LocalDateTime date_pom = date.plusMonths(1); date.minusDays(1); LocalDateTime lastDateOfMonth = date_pom.minusDays(1); return LocalDateTime.of(year, return LocalDateTime.of(year, month, month, date.getDayOfMonth(), lastDateOfMonth.getDayOfMonth(), 23,59,59,999999); 23,59,59,999999); } } Loading
statistics/src/main/java/cz/muni/fi/pa165/statistics/statistics/StatisticsFacade.java +1 −3 Original line number Original line Diff line number Diff line package cz.muni.fi.pa165.statistics.statistics; package cz.muni.fi.pa165.statistics.statistics; import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestParam; import java.io.IOException; import java.io.IOException; import java.util.List; import java.util.List; Loading @@ -24,7 +22,7 @@ public class StatisticsFacade { @Transactional @Transactional public UserStatisticsDto CreateStatistics(StatisticCreateDto entity) throws IOException { public UserStatisticsDto CreateStatistics(StatisticCreateDto entity) throws IOException { return mapper.toDto(statisticService.CreateStatistic(mapper.fromDto(entity))); return mapper.toDto(statisticService.createStatistic(mapper.fromDto(entity))); } } @Transactional @Transactional Loading