AnalysisMapper.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.qqflow.engine.domain.flow.mapper;
  2. import com.qqflow.engine.domain.flow.dto.analysis.AnalysisOverviewDTO;
  3. import com.qqflow.engine.domain.flow.dto.analysis.NodeStayStatDTO;
  4. import com.qqflow.engine.domain.flow.dto.analysis.ProcessEfficiencyDTO;
  5. import com.qqflow.engine.domain.flow.dto.analysis.StuckInstanceDTO;
  6. import com.qqflow.engine.domain.flow.dto.analysis.StatusDistributionDTO;
  7. import com.qqflow.engine.domain.flow.dto.analysis.TrendDTO;
  8. import org.apache.ibatis.annotations.Mapper;
  9. import org.apache.ibatis.annotations.Param;
  10. import java.time.LocalDateTime;
  11. import java.util.List;
  12. /**
  13. * 流程数据分析 Mapper
  14. */
  15. @Mapper
  16. public interface AnalysisMapper {
  17. /**
  18. * 已完成流程效率统计
  19. */
  20. List<ProcessEfficiencyDTO> selectCompletedEfficiency(
  21. @Param("startTime") LocalDateTime startTime,
  22. @Param("endTime") LocalDateTime endTime,
  23. @Param("processDefinitionId") Long processDefinitionId);
  24. /**
  25. * 进行中节点停留统计
  26. */
  27. List<NodeStayStatDTO> selectInProgressByNode(
  28. @Param("processDefinitionId") Long processDefinitionId);
  29. /**
  30. * 卡住流程实例数量
  31. */
  32. Long countStuckInstances(
  33. @Param("nodeId") String nodeId,
  34. @Param("processDefinitionId") Long processDefinitionId,
  35. @Param("minStayMinutes") Long minStayMinutes);
  36. /**
  37. * 卡住流程实例明细
  38. */
  39. List<StuckInstanceDTO> selectStuckInstances(
  40. @Param("nodeId") String nodeId,
  41. @Param("processDefinitionId") Long processDefinitionId,
  42. @Param("minStayMinutes") Long minStayMinutes,
  43. @Param("offset") Long offset,
  44. @Param("pageSize") Integer pageSize);
  45. /**
  46. * 流程实例概览统计(不含超时任务数)
  47. */
  48. AnalysisOverviewDTO selectInstanceOverview(
  49. @Param("startTime") LocalDateTime startTime,
  50. @Param("endTime") LocalDateTime endTime,
  51. @Param("processDefinitionId") Long processDefinitionId);
  52. /**
  53. * 超时任务数
  54. */
  55. Long countTimeoutTasks(@Param("processDefinitionId") Long processDefinitionId);
  56. /**
  57. * 流程状态分布
  58. */
  59. List<StatusDistributionDTO> selectStatusDistribution(
  60. @Param("startTime") LocalDateTime startTime,
  61. @Param("endTime") LocalDateTime endTime,
  62. @Param("processDefinitionId") Long processDefinitionId);
  63. /**
  64. * 近30天流程趋势
  65. */
  66. List<TrendDTO> selectTrend(
  67. @Param("startDate") String startDate,
  68. @Param("endDate") String endDate,
  69. @Param("processDefinitionId") Long processDefinitionId);
  70. }