|
|
@@ -474,6 +474,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
474
|
474
|
AND review_date >= #{startTime}
|
|
475
|
475
|
AND review_date <= #{endTime}
|
|
476
|
476
|
</if>
|
|
|
477
|
+ <if test="brigadeId != null">
|
|
|
478
|
+ AND brigade_id = #{brigadeId}
|
|
|
479
|
+ </if>
|
|
477
|
480
|
GROUP BY difficulty_level
|
|
478
|
481
|
ORDER BY count DESC
|
|
479
|
482
|
</select>
|
|
|
@@ -530,4 +533,274 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
530
|
533
|
ORDER BY totalCount DESC
|
|
531
|
534
|
</select>
|
|
532
|
535
|
|
|
|
536
|
+ <!-- 查询两楼每日查堵走势(按大队) -->
|
|
|
537
|
+ <select id="selectDailyBrigadeTerminalStats" resultType="com.sundot.airport.blocked.dto.BlockedDailyBrigadeTerminalStatsDTO">
|
|
|
538
|
+ SELECT
|
|
|
539
|
+ stat_date as statDate,
|
|
|
540
|
+ COALESCE(SUM(t1_travel_blocked_count), 0) as t1TravelBlockedCount,
|
|
|
541
|
+ COALESCE(SUM(t2_travel_blocked_count), 0) as t2TravelBlockedCount,
|
|
|
542
|
+ COALESCE(SUM(t1_walk_blocked_count), 0) as t1WalkBlockedCount,
|
|
|
543
|
+ COALESCE(SUM(t2_walk_blocked_count), 0) as t2WalkBlockedCount
|
|
|
544
|
+ FROM blocked_luggage_statistics_daily
|
|
|
545
|
+ WHERE del_flag = '0'
|
|
|
546
|
+ <if test="brigadeId != null">
|
|
|
547
|
+ AND brigade_id = #{brigadeId}
|
|
|
548
|
+ </if>
|
|
|
549
|
+ <if test="startTime != null and endTime != null">
|
|
|
550
|
+ AND stat_date >= #{startTime}
|
|
|
551
|
+ AND stat_date <= #{endTime}
|
|
|
552
|
+ </if>
|
|
|
553
|
+ GROUP BY stat_date
|
|
|
554
|
+ ORDER BY stat_date ASC
|
|
|
555
|
+ </select>
|
|
|
556
|
+
|
|
|
557
|
+ <!-- 查询两楼每日过检图像数(按大队) -->
|
|
|
558
|
+ <select id="selectDailyBrigadeTerminalLuggageStats" resultType="com.sundot.airport.blocked.dto.BlockedDailyBrigadeTerminalLuggageStatsDTO">
|
|
|
559
|
+ SELECT
|
|
|
560
|
+ stat_date as statDate,
|
|
|
561
|
+ COALESCE(SUM(t1_travel_luggage_count), 0) as t1TravelBagCount,
|
|
|
562
|
+ COALESCE(SUM(t2_travel_luggage_count), 0) as t2TravelBagCount,
|
|
|
563
|
+ COALESCE(SUM(t1_walk_luggage_count), 0) as t1WalkBagCount,
|
|
|
564
|
+ COALESCE(SUM(t2_walk_luggage_count), 0) as t2WalkBagCount
|
|
|
565
|
+ FROM blocked_luggage_statistics_daily
|
|
|
566
|
+ WHERE del_flag = '0'
|
|
|
567
|
+ <if test="brigadeId != null">
|
|
|
568
|
+ AND brigade_id = #{brigadeId}
|
|
|
569
|
+ </if>
|
|
|
570
|
+ <if test="startTime != null and endTime != null">
|
|
|
571
|
+ AND stat_date >= #{startTime}
|
|
|
572
|
+ AND stat_date <= #{endTime}
|
|
|
573
|
+ </if>
|
|
|
574
|
+ GROUP BY stat_date
|
|
|
575
|
+ ORDER BY stat_date ASC
|
|
|
576
|
+ </select>
|
|
|
577
|
+
|
|
|
578
|
+ <!-- 查询两楼查堵数(包含行检,按大队) -->
|
|
|
579
|
+ <select id="selectTerminalBlockedStats" resultType="com.sundot.airport.blocked.dto.BlockedTerminalStatsDTO">
|
|
|
580
|
+ SELECT
|
|
|
581
|
+ COUNT(1) as totalBlockedCount,
|
|
|
582
|
+ COALESCE(SUM(CASE WHEN terminal_id = 1 THEN 1 ELSE 0 END), 0) as t1BlockedCount,
|
|
|
583
|
+ COALESCE(SUM(CASE WHEN terminal_id = 2 THEN 1 ELSE 0 END), 0) as t2BlockedCount
|
|
|
584
|
+ FROM blocked_miss_check_statistics
|
|
|
585
|
+ WHERE del_flag = '0'
|
|
|
586
|
+ <if test="brigadeId != null">
|
|
|
587
|
+ AND brigade_id = #{brigadeId}
|
|
|
588
|
+ </if>
|
|
|
589
|
+ <if test="startTime != null and endTime != null">
|
|
|
590
|
+ AND review_date >= #{startTime}
|
|
|
591
|
+ AND review_date <= #{endTime}
|
|
|
592
|
+ </if>
|
|
|
593
|
+ </select>
|
|
|
594
|
+
|
|
|
595
|
+ <!-- 查询查堵时间段过检行李数(按大队) -->
|
|
|
596
|
+ <select id="selectTimePeriodLuggageStats" resultType="com.sundot.airport.blocked.dto.BlockedTimePeriodLuggageStatsDTO">
|
|
|
597
|
+ SELECT
|
|
|
598
|
+ time_period as timePeriod,
|
|
|
599
|
+ ROUND(AVG(total_luggage_count), 2) as avgLuggageCount,
|
|
|
600
|
+ ROUND(AVG(total_blocked_count), 2) as avgBlockedCount
|
|
|
601
|
+ FROM blocked_luggage_piece_daily
|
|
|
602
|
+ WHERE del_flag = '0'
|
|
|
603
|
+ <if test="brigadeId != null">
|
|
|
604
|
+ AND brigade_id = #{brigadeId}
|
|
|
605
|
+ </if>
|
|
|
606
|
+ <if test="startTime != null and endTime != null">
|
|
|
607
|
+ AND stat_date >= #{startTime}
|
|
|
608
|
+ AND stat_date <= #{endTime}
|
|
|
609
|
+ </if>
|
|
|
610
|
+ GROUP BY time_period
|
|
|
611
|
+ ORDER BY time_period ASC
|
|
|
612
|
+ </select>
|
|
|
613
|
+
|
|
|
614
|
+ <!-- 查询两楼每日查堵万分率(按大队) -->
|
|
|
615
|
+ <select id="selectDailyBrigadeTerminalRateStats" resultType="com.sundot.airport.blocked.dto.BlockedDailyBrigadeTerminalRateStatsDTO">
|
|
|
616
|
+ SELECT
|
|
|
617
|
+ stat_date as statDate,
|
|
|
618
|
+ COALESCE(AVG(t1_travel_block_rate), 0) as t1TravelBlockRate,
|
|
|
619
|
+ COALESCE(AVG(t2_travel_block_rate), 0) as t2TravelBlockRate,
|
|
|
620
|
+ COALESCE(AVG(t1_walk_block_rate), 0) as t1WalkBlockRate,
|
|
|
621
|
+ COALESCE(AVG(t2_walk_block_rate), 0) as t2WalkBlockRate
|
|
|
622
|
+ FROM blocked_luggage_statistics_daily
|
|
|
623
|
+ WHERE del_flag = '0'
|
|
|
624
|
+ <if test="brigadeId != null">
|
|
|
625
|
+ AND brigade_id = #{brigadeId}
|
|
|
626
|
+ </if>
|
|
|
627
|
+ <if test="startTime != null and endTime != null">
|
|
|
628
|
+ AND stat_date >= #{startTime}
|
|
|
629
|
+ AND stat_date <= #{endTime}
|
|
|
630
|
+ </if>
|
|
|
631
|
+ GROUP BY stat_date
|
|
|
632
|
+ ORDER BY stat_date ASC
|
|
|
633
|
+ </select>
|
|
|
634
|
+
|
|
|
635
|
+ <!-- 查询查堵-主管排行榜(大队维度,前10名) -->
|
|
|
636
|
+ <select id="selectBrigadeSupervisorRanking" resultType="com.sundot.airport.blocked.dto.BlockedRankingDTO">
|
|
|
637
|
+ SELECT
|
|
|
638
|
+ supervisor_name as name,
|
|
|
639
|
+ supervisor_id as id,
|
|
|
640
|
+ COUNT(1) as totalCount
|
|
|
641
|
+ FROM blocked_miss_check_statistics
|
|
|
642
|
+ WHERE del_flag = '0'
|
|
|
643
|
+ AND supervisor_name IS NOT NULL
|
|
|
644
|
+ AND supervisor_name != ''
|
|
|
645
|
+ <if test="brigadeId != null">
|
|
|
646
|
+ AND brigade_id = #{brigadeId}
|
|
|
647
|
+ </if>
|
|
|
648
|
+ <if test="startTime != null and endTime != null">
|
|
|
649
|
+ AND review_date >= #{startTime}
|
|
|
650
|
+ AND review_date <= #{endTime}
|
|
|
651
|
+ </if>
|
|
|
652
|
+ GROUP BY supervisor_id, supervisor_name
|
|
|
653
|
+ ORDER BY totalCount DESC
|
|
|
654
|
+ LIMIT 10
|
|
|
655
|
+ </select>
|
|
|
656
|
+
|
|
|
657
|
+ <!-- 查询查堵-班组排行榜(大队维度,前10名) -->
|
|
|
658
|
+ <select id="selectBrigadeTeamLeaderRanking" resultType="com.sundot.airport.blocked.dto.BlockedRankingDTO">
|
|
|
659
|
+ SELECT
|
|
|
660
|
+ team_leader_name as name,
|
|
|
661
|
+ team_leader_id as id,
|
|
|
662
|
+ COUNT(1) as totalCount
|
|
|
663
|
+ FROM blocked_miss_check_statistics
|
|
|
664
|
+ WHERE del_flag = '0'
|
|
|
665
|
+ AND team_leader_name IS NOT NULL
|
|
|
666
|
+ AND team_leader_name != ''
|
|
|
667
|
+ <if test="brigadeId != null">
|
|
|
668
|
+ AND brigade_id = #{brigadeId}
|
|
|
669
|
+ </if>
|
|
|
670
|
+ <if test="startTime != null and endTime != null">
|
|
|
671
|
+ AND review_date >= #{startTime}
|
|
|
672
|
+ AND review_date <= #{endTime}
|
|
|
673
|
+ </if>
|
|
|
674
|
+ GROUP BY team_leader_id, team_leader_name
|
|
|
675
|
+ ORDER BY totalCount DESC
|
|
|
676
|
+ LIMIT 10
|
|
|
677
|
+ </select>
|
|
|
678
|
+
|
|
|
679
|
+ <!-- 查询查堵-人员排行榜(大队维度,前10名) -->
|
|
|
680
|
+ <select id="selectBrigadeReviewedUserRanking" resultType="com.sundot.airport.blocked.dto.BlockedRankingDTO">
|
|
|
681
|
+ SELECT
|
|
|
682
|
+ reviewed_user_name as name,
|
|
|
683
|
+ reviewed_user_id as id,
|
|
|
684
|
+ COUNT(1) as totalCount
|
|
|
685
|
+ FROM blocked_miss_check_statistics
|
|
|
686
|
+ WHERE del_flag = '0'
|
|
|
687
|
+ AND reviewed_user_name IS NOT NULL
|
|
|
688
|
+ AND reviewed_user_name != ''
|
|
|
689
|
+ <if test="brigadeId != null">
|
|
|
690
|
+ AND brigade_id = #{brigadeId}
|
|
|
691
|
+ </if>
|
|
|
692
|
+ <if test="startTime != null and endTime != null">
|
|
|
693
|
+ AND review_date >= #{startTime}
|
|
|
694
|
+ AND review_date <= #{endTime}
|
|
|
695
|
+ </if>
|
|
|
696
|
+ GROUP BY reviewed_user_id, reviewed_user_name
|
|
|
697
|
+ ORDER BY totalCount DESC
|
|
|
698
|
+ LIMIT 10
|
|
|
699
|
+ </select>
|
|
|
700
|
+
|
|
|
701
|
+ <!-- 查询查堵男女比例(按大队) -->
|
|
|
702
|
+ <select id="selectGenderDistribution" resultType="com.sundot.airport.blocked.dto.BlockedGenderDistributionDTO">
|
|
|
703
|
+ SELECT
|
|
|
704
|
+ gender as gender,
|
|
|
705
|
+ COUNT(1) as count,
|
|
|
706
|
+ ROUND(COUNT(1) * 100.0 / SUM(COUNT(1)) OVER(), 2) as percentage
|
|
|
707
|
+ FROM blocked_miss_check_statistics
|
|
|
708
|
+ WHERE del_flag = '0'
|
|
|
709
|
+ AND gender IS NOT NULL
|
|
|
710
|
+ AND gender != ''
|
|
|
711
|
+ <if test="brigadeId != null">
|
|
|
712
|
+ AND brigade_id = #{brigadeId}
|
|
|
713
|
+ </if>
|
|
|
714
|
+ <if test="startTime != null and endTime != null">
|
|
|
715
|
+ AND review_date >= #{startTime}
|
|
|
716
|
+ AND review_date <= #{endTime}
|
|
|
717
|
+ </if>
|
|
|
718
|
+ GROUP BY gender
|
|
|
719
|
+ ORDER BY count DESC
|
|
|
720
|
+ </select>
|
|
|
721
|
+
|
|
|
722
|
+ <!-- 查询查堵人员证书级别分布(按大队) -->
|
|
|
723
|
+ <select id="selectCertificateLevelDistribution" resultType="com.sundot.airport.blocked.dto.BlockedCertificateLevelDistributionDTO">
|
|
|
724
|
+ SELECT
|
|
|
725
|
+ certificate_level as certificateLevel,
|
|
|
726
|
+ COUNT(1) as count,
|
|
|
727
|
+ ROUND(COUNT(1) * 100.0 / SUM(COUNT(1)) OVER(), 2) as percentage
|
|
|
728
|
+ FROM blocked_miss_check_statistics
|
|
|
729
|
+ WHERE del_flag = '0'
|
|
|
730
|
+ AND certificate_level IS NOT NULL
|
|
|
731
|
+ AND certificate_level != ''
|
|
|
732
|
+ <if test="brigadeId != null">
|
|
|
733
|
+ AND brigade_id = #{brigadeId}
|
|
|
734
|
+ </if>
|
|
|
735
|
+ <if test="startTime != null and endTime != null">
|
|
|
736
|
+ AND review_date >= #{startTime}
|
|
|
737
|
+ AND review_date <= #{endTime}
|
|
|
738
|
+ </if>
|
|
|
739
|
+ GROUP BY certificate_level
|
|
|
740
|
+ ORDER BY count DESC
|
|
|
741
|
+ </select>
|
|
|
742
|
+
|
|
|
743
|
+ <!-- 查询证书级别人员基数(分大队统计) -->
|
|
|
744
|
+ <select id="selectBrigadePersonnelCertificateBase" resultType="com.sundot.airport.blocked.dto.BlockedCertificateLevelDistributionDTO">
|
|
|
745
|
+ SELECT
|
|
|
746
|
+ u.qualification_level as certificateLevel,
|
|
|
747
|
+ COUNT(DISTINCT u.user_id) as count,
|
|
|
748
|
+ ROUND(COUNT(DISTINCT u.user_id) * 100.0 / SUM(COUNT(DISTINCT u.user_id)) OVER(), 2) as percentage
|
|
|
749
|
+ FROM sys_user u
|
|
|
750
|
+ INNER JOIN sys_dept d ON u.dept_id = d.dept_id
|
|
|
751
|
+ WHERE u.del_flag = '0'
|
|
|
752
|
+ AND u.status = '0'
|
|
|
753
|
+ AND u.qualification_level IS NOT NULL
|
|
|
754
|
+ AND u.qualification_level != ''
|
|
|
755
|
+ AND d.dept_type = 'BRIGADE'
|
|
|
756
|
+ <if test="brigadeId != null">
|
|
|
757
|
+ AND d.dept_id = #{brigadeId}
|
|
|
758
|
+ </if>
|
|
|
759
|
+ GROUP BY u.qualification_level
|
|
|
760
|
+ ORDER BY count DESC
|
|
|
761
|
+ </select>
|
|
|
762
|
+
|
|
|
763
|
+ <!-- 查询查堵-主管分管次数分布(用于饼图) -->
|
|
|
764
|
+ <select id="selectSupervisorDistribution" resultType="com.sundot.airport.blocked.dto.BlockedRankingDTO">
|
|
|
765
|
+ SELECT
|
|
|
766
|
+ supervisor_name as name,
|
|
|
767
|
+ supervisor_id as id,
|
|
|
768
|
+ COUNT(1) as totalCount,
|
|
|
769
|
+ ROUND(COUNT(1) * 100.0 / SUM(COUNT(1)) OVER(), 2) as percentage
|
|
|
770
|
+ FROM blocked_miss_check_statistics
|
|
|
771
|
+ WHERE del_flag = '0'
|
|
|
772
|
+ AND supervisor_name IS NOT NULL
|
|
|
773
|
+ AND supervisor_name != ''
|
|
|
774
|
+ <if test="brigadeId != null">
|
|
|
775
|
+ AND brigade_id = #{brigadeId}
|
|
|
776
|
+ </if>
|
|
|
777
|
+ <if test="startTime != null and endTime != null">
|
|
|
778
|
+ AND review_date >= #{startTime}
|
|
|
779
|
+ AND review_date <= #{endTime}
|
|
|
780
|
+ </if>
|
|
|
781
|
+ GROUP BY supervisor_id, supervisor_name
|
|
|
782
|
+ ORDER BY totalCount DESC
|
|
|
783
|
+ </select>
|
|
|
784
|
+
|
|
|
785
|
+ <!-- 查询查堵人员开机年限分布(用于饼图) -->
|
|
|
786
|
+ <select id="selectOperatingYearsDistribution" resultType="com.sundot.airport.blocked.dto.BlockedOperatingYearsDistributionDTO">
|
|
|
787
|
+ SELECT
|
|
|
788
|
+ machine_operating_years as operatingYears,
|
|
|
789
|
+ COUNT(1) as count,
|
|
|
790
|
+ ROUND(COUNT(1) * 100.0 / SUM(COUNT(1)) OVER(), 2) as percentage
|
|
|
791
|
+ FROM blocked_miss_check_statistics
|
|
|
792
|
+ WHERE del_flag = '0'
|
|
|
793
|
+ AND machine_operating_years IS NOT NULL
|
|
|
794
|
+ AND machine_operating_years != ''
|
|
|
795
|
+ <if test="brigadeId != null">
|
|
|
796
|
+ AND brigade_id = #{brigadeId}
|
|
|
797
|
+ </if>
|
|
|
798
|
+ <if test="startTime != null and endTime != null">
|
|
|
799
|
+ AND review_date >= #{startTime}
|
|
|
800
|
+ AND review_date <= #{endTime}
|
|
|
801
|
+ </if>
|
|
|
802
|
+ GROUP BY machine_operating_years
|
|
|
803
|
+ ORDER BY count DESC
|
|
|
804
|
+ </select>
|
|
|
805
|
+
|
|
533
|
806
|
</mapper>
|