feat: add maintenance plan and task repositories

This commit is contained in:
chiguyong 2026-03-24 00:08:47 +08:00
parent 305e09101a
commit db41b5a8f5
2 changed files with 45 additions and 0 deletions

View File

@ -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<MaintenancePlan, UUID> {
List<MaintenancePlan> findByProjectIdAndStatus(UUID projectId, MaintenancePlan.Status status);
Optional<MaintenancePlan> findByPlanCode(String planCode);
List<MaintenancePlan> findByTriggerType(MaintenancePlan.TriggerType triggerType);
List<MaintenancePlan> findByStatusAndTriggerType(MaintenancePlan.Status status, MaintenancePlan.TriggerType triggerType);
boolean existsByPlanCode(String planCode);
}

View File

@ -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<MaintenanceTask, UUID> {
List<MaintenanceTask> findByProjectIdAndStatus(UUID projectId, MaintenanceTask.Status status);
List<MaintenanceTask> findByAssignedToAndStatus(UUID assignedTo, MaintenanceTask.Status status);
List<MaintenanceTask> findByEquipmentIdAndStatusNot(UUID equipmentId, MaintenanceTask.Status status);
Optional<MaintenanceTask> findByTaskCode(String taskCode);
boolean existsByTaskCode(String taskCode);
@Query("SELECT t FROM MaintenanceTask t WHERE t.projectId = :projectId AND t.status IN :statuses")
List<MaintenanceTask> findByProjectIdAndStatusIn(@Param("projectId") UUID projectId, @Param("statuses") List<MaintenanceTask.Status> statuses);
@Query("SELECT t FROM MaintenanceTask t WHERE t.scheduledDate < :date AND t.status = 'PENDING'")
List<MaintenanceTask> findOverdueTasks(@Param("date") LocalDateTime date);
List<MaintenanceTask> findByEquipmentIdAndStatus(UUID equipmentId, MaintenanceTask.Status status);
}