diff --git a/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenancePlanRepository.java b/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenancePlanRepository.java new file mode 100644 index 0000000..8195083 --- /dev/null +++ b/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenancePlanRepository.java @@ -0,0 +1,17 @@ +package com.ether.pms.mdm.repository; + +import com.ether.pms.mdm.entity.MaintenancePlan; +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 MaintenancePlanRepository extends JpaRepository { + List findByProjectIdAndStatus(UUID projectId, MaintenancePlan.Status status); + Optional findByPlanCode(String planCode); + List findByTriggerType(MaintenancePlan.TriggerType triggerType); + List findByStatusAndTriggerType(MaintenancePlan.Status status, MaintenancePlan.TriggerType triggerType); + boolean existsByPlanCode(String planCode); +} \ No newline at end of file diff --git a/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenanceTaskRepository.java b/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenanceTaskRepository.java new file mode 100644 index 0000000..cefb70b --- /dev/null +++ b/module-mdm/src/main/java/com/ether/pms/mdm/repository/MaintenanceTaskRepository.java @@ -0,0 +1,28 @@ +package com.ether.pms.mdm.repository; + +import com.ether.pms.mdm.entity.MaintenanceTask; +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.time.LocalDateTime; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +@Repository +public interface MaintenanceTaskRepository extends JpaRepository { + List findByProjectIdAndStatus(UUID projectId, MaintenanceTask.Status status); + List findByAssignedToAndStatus(UUID assignedTo, MaintenanceTask.Status status); + List findByEquipmentIdAndStatusNot(UUID equipmentId, MaintenanceTask.Status status); + Optional findByTaskCode(String taskCode); + boolean existsByTaskCode(String taskCode); + + @Query("SELECT t FROM MaintenanceTask t WHERE t.projectId = :projectId AND t.status IN :statuses") + List findByProjectIdAndStatusIn(@Param("projectId") UUID projectId, @Param("statuses") List statuses); + + @Query("SELECT t FROM MaintenanceTask t WHERE t.scheduledDate < :date AND t.status = 'PENDING'") + List findOverdueTasks(@Param("date") LocalDateTime date); + + List findByEquipmentIdAndStatus(UUID equipmentId, MaintenanceTask.Status status); +} \ No newline at end of file