diff --git a/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyConsumptionRepository.java b/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyConsumptionRepository.java new file mode 100644 index 0000000..c1c45f6 --- /dev/null +++ b/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyConsumptionRepository.java @@ -0,0 +1,28 @@ +package com.ether.pms.mdm.repository; + +import com.ether.pms.mdm.entity.EnergyConsumption; +import com.ether.pms.mdm.entity.EnergyMeter; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +@Repository +public interface EnergyConsumptionRepository extends JpaRepository { + List findByMeterIdOrderByConsumptionDateDesc(UUID meterId); + + List findByMeterIdAndConsumptionDateBetween(UUID meterId, LocalDate startDate, LocalDate endDate); + + @Query("SELECT SUM(e.consumption) FROM EnergyConsumption e WHERE e.meterId = :meterId AND e.consumptionDate BETWEEN :startDate AND :endDate") + BigDecimal sumConsumptionByMeterIdAndDateRange(@Param("meterId") UUID meterId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); + + @Query("SELECT SUM(e.consumption) FROM EnergyConsumption e WHERE e.projectId = :projectId AND e.energyType = :energyType AND e.consumptionDate BETWEEN :startDate AND :endDate") + BigDecimal sumConsumptionByProjectAndTypeAndDateRange(@Param("projectId") UUID projectId, @Param("energyType") EnergyMeter.EnergyType energyType, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); + + Optional findTopByMeterIdOrderByConsumptionDateDesc(UUID meterId); +} \ No newline at end of file diff --git a/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyMeterRepository.java b/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyMeterRepository.java new file mode 100644 index 0000000..b78f304 --- /dev/null +++ b/module-mdm/src/main/java/com/ether/pms/mdm/repository/EnergyMeterRepository.java @@ -0,0 +1,16 @@ +package com.ether.pms.mdm.repository; + +import com.ether.pms.mdm.entity.EnergyMeter; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +@Repository +public interface EnergyMeterRepository extends JpaRepository { + List findByProjectIdAndStatus(UUID projectId, EnergyMeter.Status status); + List findByProjectIdAndEnergyType(UUID projectId, EnergyMeter.EnergyType energyType); + Optional findByMeterCode(String meterCode); + boolean existsByMeterCode(String meterCode); +} \ No newline at end of file