feat: add energy monitoring repositories

This commit is contained in:
chiguyong 2026-03-24 00:23:35 +08:00
parent 1f4aa569e3
commit 8efd8b083d
2 changed files with 44 additions and 0 deletions

View File

@ -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<EnergyConsumption, UUID> {
List<EnergyConsumption> findByMeterIdOrderByConsumptionDateDesc(UUID meterId);
List<EnergyConsumption> 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<EnergyConsumption> findTopByMeterIdOrderByConsumptionDateDesc(UUID meterId);
}

View File

@ -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<EnergyMeter, UUID> {
List<EnergyMeter> findByProjectIdAndStatus(UUID projectId, EnergyMeter.Status status);
List<EnergyMeter> findByProjectIdAndEnergyType(UUID projectId, EnergyMeter.EnergyType energyType);
Optional<EnergyMeter> findByMeterCode(String meterCode);
boolean existsByMeterCode(String meterCode);
}