|
|
@@ -16,6 +16,8 @@ import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
|
|
16
|
16
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckCorrectionSqlDto;
|
|
17
|
17
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckRecordSqlDto;
|
|
18
|
18
|
import com.sundot.airport.check.domain.CheckLargeScreenHomePageDto;
|
|
|
19
|
+import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageItemDto;
|
|
|
20
|
+import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageRankingDto;
|
|
19
|
21
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteDto;
|
|
20
|
22
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteItemDto;
|
|
21
|
23
|
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteUserDto;
|
|
|
@@ -29,9 +31,20 @@ import com.sundot.airport.check.mapper.CheckLargeScreenMapper;
|
|
29
|
31
|
import com.sundot.airport.check.service.ICheckLargeScreenService;
|
|
30
|
32
|
import com.sundot.airport.common.constant.CacheConstants;
|
|
31
|
33
|
import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
|
|
32
|
|
-import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageItemDto;
|
|
33
|
|
-import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageRankingDto;
|
|
|
34
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemCorrectionDto;
|
|
|
35
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemCorrectionItemDto;
|
|
|
36
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDistributionItemDto;
|
|
34
|
37
|
import com.sundot.airport.common.core.domain.LargeScreenHomePageUserInfoSqlDto;
|
|
|
38
|
+import com.sundot.airport.common.core.domain.SysAnalysisReportCompareItemDto;
|
|
|
39
|
+import com.sundot.airport.common.core.domain.SysAnalysisReportDateRangeDto;
|
|
|
40
|
+import com.sundot.airport.common.core.domain.SysAnalysisReportParamDto;
|
|
|
41
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDiscoveryDto;
|
|
|
42
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDiscoveryItemDto;
|
|
|
43
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDistributionDto;
|
|
|
44
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckTaskDto;
|
|
|
45
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckTaskItemDto;
|
|
|
46
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckTaskTypeItemDto;
|
|
|
47
|
+import com.sundot.airport.common.core.domain.SysCheckAnalysisReportDto;
|
|
35
|
48
|
import com.sundot.airport.common.core.domain.SysHomeReportDetailDto;
|
|
36
|
49
|
import com.sundot.airport.common.core.domain.SysLargeScreenDetailDto;
|
|
37
|
50
|
import com.sundot.airport.common.core.domain.entity.SysDept;
|
|
|
@@ -41,6 +54,9 @@ import com.sundot.airport.common.core.domain.entity.SysUser;
|
|
41
|
54
|
import com.sundot.airport.common.core.redis.RedisCache;
|
|
42
|
55
|
import com.sundot.airport.common.enums.CheckLargeScreenCorrectionTypeEnum;
|
|
43
|
56
|
import com.sundot.airport.common.enums.CheckLevelEnum;
|
|
|
57
|
+import com.sundot.airport.common.enums.CheckTaskTypeEnum;
|
|
|
58
|
+import com.sundot.airport.common.enums.CompareResultTypeEnum;
|
|
|
59
|
+import com.sundot.airport.common.enums.CompareTypeEnum;
|
|
44
|
60
|
import com.sundot.airport.common.enums.DeptType;
|
|
45
|
61
|
import com.sundot.airport.common.enums.DeptTypeEnum;
|
|
46
|
62
|
import com.sundot.airport.common.enums.HomePageQueryEnum;
|
|
|
@@ -2714,4 +2730,403 @@ public class CheckLargeScreenServiceImpl implements ICheckLargeScreenService {
|
|
2714
|
2730
|
return result;
|
|
2715
|
2731
|
}
|
|
2716
|
2732
|
|
|
|
2733
|
+ /**
|
|
|
2734
|
+ * 质控分析报告-质控活动
|
|
|
2735
|
+ *
|
|
|
2736
|
+ * @param paramDto 质控分析报告-质控活动查询参数
|
|
|
2737
|
+ * @return 质控分析报告-质控活动
|
|
|
2738
|
+ */
|
|
|
2739
|
+ @Override
|
|
|
2740
|
+ public SysCheckAnalysisReportDto checkAnalysisReport(SysAnalysisReportParamDto paramDto) {
|
|
|
2741
|
+ SysCheckAnalysisReportDto result = new SysCheckAnalysisReportDto();
|
|
|
2742
|
+ result.setCheckTaskDto(getCheckTaskDto(paramDto));
|
|
|
2743
|
+ result.setCheckProblemDiscoveryDto(getCheckProblemDiscoveryDto(paramDto));
|
|
|
2744
|
+ result.setCheckProblemDistributionDto(getCheckProblemDistributionDto(paramDto));
|
|
|
2745
|
+ result.setCheckProblemCorrectionDto(getCheckProblemCorrectionDto(paramDto));
|
|
|
2746
|
+ return result;
|
|
|
2747
|
+ }
|
|
|
2748
|
+
|
|
|
2749
|
+ /**
|
|
|
2750
|
+ * 获取任务计划安排统计
|
|
|
2751
|
+ *
|
|
|
2752
|
+ * @param paramDto 质控分析报告-任务计划安排统计查询参数
|
|
|
2753
|
+ * @return 任务计划安排统计
|
|
|
2754
|
+ */
|
|
|
2755
|
+ private SysCheckAnalysisReportCheckTaskDto getCheckTaskDto(SysAnalysisReportParamDto paramDto) {
|
|
|
2756
|
+ SysCheckAnalysisReportCheckTaskDto checkTaskDto = new SysCheckAnalysisReportCheckTaskDto();
|
|
|
2757
|
+ List<SysCheckAnalysisReportCheckTaskItemDto> checkTaskItemDtoList = new ArrayList<>();
|
|
|
2758
|
+ paramDto.getDateRangeList().forEach(dateRange -> {
|
|
|
2759
|
+ CheckLargeScreenPlanQueryParamDto dto = new CheckLargeScreenPlanQueryParamDto();
|
|
|
2760
|
+ dto.setStartDate(dateRange.getStartDate());
|
|
|
2761
|
+ dto.setEndDate(dateRange.getEndDate());
|
|
|
2762
|
+ List<CheckTask> checkTaskList = checkLargeScreenMapper.planStatistics(dto);
|
|
|
2763
|
+ Map<String, Long> map = checkTaskList.stream().collect(Collectors.groupingBy(CheckTask::getCheckCategory, Collectors.counting()));
|
|
|
2764
|
+
|
|
|
2765
|
+ SysCheckAnalysisReportCheckTaskItemDto itemDtoSpecialTask = new SysCheckAnalysisReportCheckTaskItemDto();
|
|
|
2766
|
+ itemDtoSpecialTask.setStartDate(dateRange.getStartDate());
|
|
|
2767
|
+ itemDtoSpecialTask.setEndDate(dateRange.getEndDate());
|
|
|
2768
|
+ itemDtoSpecialTask.setDesc(dateRange.getDesc());
|
|
|
2769
|
+ itemDtoSpecialTask.setTag(dateRange.getTag());
|
|
|
2770
|
+ itemDtoSpecialTask.setTagDesc(dateRange.getTagDesc());
|
|
|
2771
|
+ itemDtoSpecialTask.setType(CheckTaskTypeEnum.SPECIAL_TASK.getCode());
|
|
|
2772
|
+ itemDtoSpecialTask.setTypeDesc(CheckTaskTypeEnum.SPECIAL_TASK.getDesc());
|
|
|
2773
|
+ itemDtoSpecialTask.setCount(map.get(CheckTaskTypeEnum.SPECIAL_TASK.getCode()) == null ? BigDecimal.ZERO : BigDecimal.valueOf(map.get(CheckTaskTypeEnum.SPECIAL_TASK.getCode())));
|
|
|
2774
|
+ checkTaskItemDtoList.add(itemDtoSpecialTask);
|
|
|
2775
|
+ SysCheckAnalysisReportCheckTaskItemDto itemDtoDailyTask = new SysCheckAnalysisReportCheckTaskItemDto();
|
|
|
2776
|
+ itemDtoDailyTask.setStartDate(dateRange.getStartDate());
|
|
|
2777
|
+ itemDtoDailyTask.setEndDate(dateRange.getEndDate());
|
|
|
2778
|
+ itemDtoDailyTask.setDesc(dateRange.getDesc());
|
|
|
2779
|
+ itemDtoDailyTask.setTag(dateRange.getTag());
|
|
|
2780
|
+ itemDtoDailyTask.setTagDesc(dateRange.getTagDesc());
|
|
|
2781
|
+ itemDtoDailyTask.setType(CheckTaskTypeEnum.DAILY_TASK.getCode());
|
|
|
2782
|
+ itemDtoDailyTask.setTypeDesc(CheckTaskTypeEnum.DAILY_TASK.getDesc());
|
|
|
2783
|
+ itemDtoDailyTask.setCount(map.get(CheckTaskTypeEnum.DAILY_TASK.getCode()) == null ? BigDecimal.ZERO : BigDecimal.valueOf(map.get(CheckTaskTypeEnum.DAILY_TASK.getCode())));
|
|
|
2784
|
+ checkTaskItemDtoList.add(itemDtoDailyTask);
|
|
|
2785
|
+ });
|
|
|
2786
|
+ checkTaskDto.setCheckTaskItemDtoList(checkTaskItemDtoList);
|
|
|
2787
|
+
|
|
|
2788
|
+ List<SysCheckAnalysisReportCheckTaskTypeItemDto> checkTaskTypeItemDtoList = new ArrayList<>();
|
|
|
2789
|
+ List<SysCheckAnalysisReportCheckTaskItemDto> specialTaskList = checkTaskItemDtoList.stream().filter(item -> CheckTaskTypeEnum.SPECIAL_TASK.getCode().equals(item.getType())).collect(Collectors.toList());
|
|
|
2790
|
+ List<SysCheckAnalysisReportCheckTaskItemDto> dailyTaskList = checkTaskItemDtoList.stream().filter(item -> CheckTaskTypeEnum.DAILY_TASK.getCode().equals(item.getType())).collect(Collectors.toList());
|
|
|
2791
|
+ BigDecimal specialTaskCurrentCount = specialTaskList.stream().filter(item -> CompareTypeEnum.CURRENT.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckTaskItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2792
|
+ BigDecimal specialTaskYearOnYearCount = specialTaskList.stream().filter(item -> CompareTypeEnum.YEAR_ON_YEAR.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckTaskItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2793
|
+ SysCheckAnalysisReportCheckTaskItemDto specialTaskRingRatioCheckTaskItemDto = specialTaskList.stream().filter(item -> CompareTypeEnum.RING_RATIO.getCode().equals(item.getTag())).findFirst().orElse(null);
|
|
|
2794
|
+ BigDecimal specialTaskRingRatioCount = specialTaskRingRatioCheckTaskItemDto != null ? specialTaskRingRatioCheckTaskItemDto.getCount() : BigDecimal.ZERO;
|
|
|
2795
|
+ BigDecimal dailyTaskCurrentCount = dailyTaskList.stream().filter(item -> CompareTypeEnum.CURRENT.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckTaskItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2796
|
+ BigDecimal dailyTaskYearOnYearCount = dailyTaskList.stream().filter(item -> CompareTypeEnum.YEAR_ON_YEAR.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckTaskItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2797
|
+ SysCheckAnalysisReportCheckTaskItemDto dailyTaskRingRatioCheckTaskItemDto = dailyTaskList.stream().filter(item -> CompareTypeEnum.RING_RATIO.getCode().equals(item.getTag())).findFirst().orElse(null);
|
|
|
2798
|
+ BigDecimal dailyTaskRingRatioCount = dailyTaskRingRatioCheckTaskItemDto != null ? dailyTaskRingRatioCheckTaskItemDto.getCount() : BigDecimal.ZERO;
|
|
|
2799
|
+
|
|
|
2800
|
+ SysCheckAnalysisReportCheckTaskTypeItemDto checkTaskTypeItemDtoSpecialTask = new SysCheckAnalysisReportCheckTaskTypeItemDto();
|
|
|
2801
|
+ checkTaskTypeItemDtoSpecialTask.setType(CheckTaskTypeEnum.SPECIAL_TASK.getCode());
|
|
|
2802
|
+ checkTaskTypeItemDtoSpecialTask.setTypeDesc(CheckTaskTypeEnum.SPECIAL_TASK.getDesc());
|
|
|
2803
|
+ checkTaskTypeItemDtoSpecialTask.setCount(specialTaskCurrentCount);
|
|
|
2804
|
+ List<SysAnalysisReportCompareItemDto> specialTaskItemDtoList = new ArrayList<>();
|
|
|
2805
|
+ checkTaskTypeItemDtoSpecialTask.setCompareItemDtoList(specialTaskItemDtoList);
|
|
|
2806
|
+ SysCheckAnalysisReportCheckTaskTypeItemDto checkTaskTypeItemDtoDailyTask = new SysCheckAnalysisReportCheckTaskTypeItemDto();
|
|
|
2807
|
+ checkTaskTypeItemDtoDailyTask.setType(CheckTaskTypeEnum.DAILY_TASK.getCode());
|
|
|
2808
|
+ checkTaskTypeItemDtoDailyTask.setTypeDesc(CheckTaskTypeEnum.DAILY_TASK.getDesc());
|
|
|
2809
|
+ checkTaskTypeItemDtoDailyTask.setCount(dailyTaskCurrentCount);
|
|
|
2810
|
+ List<SysAnalysisReportCompareItemDto> dailyTaskItemDtoList = new ArrayList<>();
|
|
|
2811
|
+ checkTaskTypeItemDtoDailyTask.setCompareItemDtoList(dailyTaskItemDtoList);
|
|
|
2812
|
+
|
|
|
2813
|
+ SysAnalysisReportCompareItemDto specialTaskYearOnYearItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2814
|
+ specialTaskYearOnYearItemDto.setCompareType(CompareTypeEnum.YEAR_ON_YEAR.getCode());
|
|
|
2815
|
+ specialTaskYearOnYearItemDto.setCompareTypeDesc(CompareTypeEnum.YEAR_ON_YEAR.getDesc());
|
|
|
2816
|
+ BigDecimal subtractSpecialTaskYearOnYear = specialTaskCurrentCount.subtract(specialTaskYearOnYearCount);
|
|
|
2817
|
+ if (subtractSpecialTaskYearOnYear.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2818
|
+ specialTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2819
|
+ specialTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2820
|
+ specialTaskYearOnYearItemDto.setProportion(specialTaskYearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskYearOnYear.divide(specialTaskYearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2821
|
+ specialTaskYearOnYearItemDto.setProportionDesc(specialTaskYearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : specialTaskYearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2822
|
+ } else if (subtractSpecialTaskYearOnYear.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2823
|
+ specialTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2824
|
+ specialTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2825
|
+ specialTaskYearOnYearItemDto.setProportion(specialTaskYearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskYearOnYear.abs().divide(specialTaskYearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2826
|
+ specialTaskYearOnYearItemDto.setProportionDesc(specialTaskYearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : specialTaskYearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2827
|
+ } else {
|
|
|
2828
|
+ specialTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2829
|
+ specialTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2830
|
+ specialTaskYearOnYearItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2831
|
+ specialTaskYearOnYearItemDto.setProportionDesc("0%");
|
|
|
2832
|
+ }
|
|
|
2833
|
+ specialTaskItemDtoList.add(specialTaskYearOnYearItemDto);
|
|
|
2834
|
+ if (specialTaskRingRatioCheckTaskItemDto != null) {
|
|
|
2835
|
+ SysAnalysisReportCompareItemDto specialTaskRingRatioItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2836
|
+ specialTaskRingRatioItemDto.setCompareType(CompareTypeEnum.RING_RATIO.getCode());
|
|
|
2837
|
+ specialTaskRingRatioItemDto.setCompareTypeDesc(CompareTypeEnum.RING_RATIO.getDesc());
|
|
|
2838
|
+ BigDecimal subtractSpecialTaskRingRatio = specialTaskCurrentCount.subtract(specialTaskRingRatioCount);
|
|
|
2839
|
+ if (subtractSpecialTaskRingRatio.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2840
|
+ specialTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2841
|
+ specialTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2842
|
+ specialTaskRingRatioItemDto.setProportion(specialTaskRingRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskRingRatio.divide(specialTaskRingRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2843
|
+ specialTaskRingRatioItemDto.setProportionDesc(specialTaskRingRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : specialTaskRingRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2844
|
+ } else if (subtractSpecialTaskRingRatio.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2845
|
+ specialTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2846
|
+ specialTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2847
|
+ specialTaskRingRatioItemDto.setProportion(specialTaskRingRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskRingRatio.abs().divide(specialTaskRingRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2848
|
+ specialTaskRingRatioItemDto.setProportionDesc(specialTaskRingRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : specialTaskRingRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2849
|
+ } else {
|
|
|
2850
|
+ specialTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2851
|
+ specialTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2852
|
+ specialTaskRingRatioItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2853
|
+ specialTaskRingRatioItemDto.setProportionDesc("0%");
|
|
|
2854
|
+ }
|
|
|
2855
|
+ specialTaskItemDtoList.add(specialTaskRingRatioItemDto);
|
|
|
2856
|
+ }
|
|
|
2857
|
+
|
|
|
2858
|
+ SysAnalysisReportCompareItemDto dailyTaskYearOnYearItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2859
|
+ dailyTaskYearOnYearItemDto.setCompareType(CompareTypeEnum.YEAR_ON_YEAR.getCode());
|
|
|
2860
|
+ dailyTaskYearOnYearItemDto.setCompareTypeDesc(CompareTypeEnum.YEAR_ON_YEAR.getDesc());
|
|
|
2861
|
+ BigDecimal subtractDailyTaskYearOnYear = dailyTaskCurrentCount.subtract(dailyTaskYearOnYearCount);
|
|
|
2862
|
+ if (subtractDailyTaskYearOnYear.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2863
|
+ dailyTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2864
|
+ dailyTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2865
|
+ dailyTaskYearOnYearItemDto.setProportion(dailyTaskYearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractDailyTaskYearOnYear.divide(dailyTaskYearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2866
|
+ dailyTaskYearOnYearItemDto.setProportionDesc(dailyTaskYearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : dailyTaskYearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2867
|
+ } else if (subtractDailyTaskYearOnYear.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2868
|
+ dailyTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2869
|
+ dailyTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2870
|
+ dailyTaskYearOnYearItemDto.setProportion(dailyTaskYearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractDailyTaskYearOnYear.abs().divide(dailyTaskYearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2871
|
+ dailyTaskYearOnYearItemDto.setProportionDesc(dailyTaskYearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : dailyTaskYearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2872
|
+ } else {
|
|
|
2873
|
+ dailyTaskYearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2874
|
+ dailyTaskYearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2875
|
+ dailyTaskYearOnYearItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2876
|
+ dailyTaskYearOnYearItemDto.setProportionDesc("0%");
|
|
|
2877
|
+ }
|
|
|
2878
|
+ dailyTaskItemDtoList.add(dailyTaskYearOnYearItemDto);
|
|
|
2879
|
+ if (dailyTaskRingRatioCheckTaskItemDto != null) {
|
|
|
2880
|
+ SysAnalysisReportCompareItemDto dailyTaskRingRatioItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2881
|
+ dailyTaskRingRatioItemDto.setCompareType(CompareTypeEnum.RING_RATIO.getCode());
|
|
|
2882
|
+ dailyTaskRingRatioItemDto.setCompareTypeDesc(CompareTypeEnum.RING_RATIO.getDesc());
|
|
|
2883
|
+ BigDecimal subtractDailyTaskRingRatio = dailyTaskCurrentCount.subtract(dailyTaskRingRatioCount);
|
|
|
2884
|
+ if (subtractDailyTaskRingRatio.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2885
|
+ dailyTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2886
|
+ dailyTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2887
|
+ dailyTaskRingRatioItemDto.setProportion(dailyTaskRingRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractDailyTaskRingRatio.divide(dailyTaskRingRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2888
|
+ dailyTaskRingRatioItemDto.setProportionDesc(dailyTaskRingRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : dailyTaskRingRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2889
|
+ } else if (subtractDailyTaskRingRatio.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2890
|
+ dailyTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2891
|
+ dailyTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2892
|
+ dailyTaskRingRatioItemDto.setProportion(dailyTaskRingRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractDailyTaskRingRatio.abs().divide(dailyTaskRingRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2893
|
+ dailyTaskRingRatioItemDto.setProportionDesc(dailyTaskRingRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : dailyTaskRingRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2894
|
+ } else {
|
|
|
2895
|
+ dailyTaskRingRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2896
|
+ dailyTaskRingRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2897
|
+ dailyTaskRingRatioItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2898
|
+ dailyTaskRingRatioItemDto.setProportionDesc("0%");
|
|
|
2899
|
+ }
|
|
|
2900
|
+ dailyTaskItemDtoList.add(dailyTaskRingRatioItemDto);
|
|
|
2901
|
+ }
|
|
|
2902
|
+ checkTaskTypeItemDtoList.add(checkTaskTypeItemDtoSpecialTask);
|
|
|
2903
|
+ checkTaskTypeItemDtoList.add(checkTaskTypeItemDtoDailyTask);
|
|
|
2904
|
+ checkTaskDto.setCheckTaskTypeItemDtoList(checkTaskTypeItemDtoList);
|
|
|
2905
|
+
|
|
|
2906
|
+ List<String> descResultList = new ArrayList<>();
|
|
|
2907
|
+ checkTaskTypeItemDtoList.forEach(checkTaskTypeItemDto -> {
|
|
|
2908
|
+ String descOne = checkTaskTypeItemDto.getTypeDesc() + ":发布" + checkTaskTypeItemDto.getCount() + "次,";
|
|
|
2909
|
+ List<String> descList = new ArrayList<>();
|
|
|
2910
|
+ checkTaskTypeItemDto.getCompareItemDtoList().forEach(item -> {
|
|
|
2911
|
+ descList.add(item.getCompareTypeDesc() + item.getCompareResultTypeDesc() + item.getProportionDesc());
|
|
|
2912
|
+ });
|
|
|
2913
|
+ String descTwo = String.join(",", descList);
|
|
|
2914
|
+ descResultList.add(descOne + descTwo);
|
|
|
2915
|
+ });
|
|
|
2916
|
+ String desc = String.join(";\n", descResultList);
|
|
|
2917
|
+ checkTaskDto.setDesc(desc);
|
|
|
2918
|
+
|
|
|
2919
|
+ return checkTaskDto;
|
|
|
2920
|
+ }
|
|
|
2921
|
+
|
|
|
2922
|
+ /**
|
|
|
2923
|
+ * 获取问题发现统计
|
|
|
2924
|
+ *
|
|
|
2925
|
+ * @param paramDto 质控分析报告-问题发现统计查询参数
|
|
|
2926
|
+ * @return 问题发现统计
|
|
|
2927
|
+ */
|
|
|
2928
|
+ private SysCheckAnalysisReportCheckProblemDiscoveryDto getCheckProblemDiscoveryDto(SysAnalysisReportParamDto paramDto) {
|
|
|
2929
|
+ SysCheckAnalysisReportCheckProblemDiscoveryDto checkProblemDiscoveryDto = new SysCheckAnalysisReportCheckProblemDiscoveryDto();
|
|
|
2930
|
+ List<SysCheckAnalysisReportCheckProblemDiscoveryItemDto> checkProblemDiscoveryItemDtoList = new ArrayList<>();
|
|
|
2931
|
+ paramDto.getDateRangeList().forEach(dateRange -> {
|
|
|
2932
|
+ CheckLargeScreenPlanQueryParamDto dto = new CheckLargeScreenPlanQueryParamDto();
|
|
|
2933
|
+ dto.setStartDate(dateRange.getStartDate());
|
|
|
2934
|
+ dto.setEndDate(dateRange.getEndDate());
|
|
|
2935
|
+ BigDecimal count = checkLargeScreenMapper.problemDistributionTotal(dto);
|
|
|
2936
|
+ SysCheckAnalysisReportCheckProblemDiscoveryItemDto checkProblemDiscoveryItemDto = new SysCheckAnalysisReportCheckProblemDiscoveryItemDto();
|
|
|
2937
|
+ checkProblemDiscoveryItemDto.setStartDate(dateRange.getStartDate());
|
|
|
2938
|
+ checkProblemDiscoveryItemDto.setEndDate(dateRange.getEndDate());
|
|
|
2939
|
+ checkProblemDiscoveryItemDto.setDesc(dateRange.getDesc());
|
|
|
2940
|
+ checkProblemDiscoveryItemDto.setTag(dateRange.getTag());
|
|
|
2941
|
+ checkProblemDiscoveryItemDto.setTagDesc(dateRange.getTagDesc());
|
|
|
2942
|
+ checkProblemDiscoveryItemDto.setCount(count);
|
|
|
2943
|
+ checkProblemDiscoveryItemDtoList.add(checkProblemDiscoveryItemDto);
|
|
|
2944
|
+ });
|
|
|
2945
|
+ checkProblemDiscoveryDto.setCheckProblemDiscoveryItemDtoList(checkProblemDiscoveryItemDtoList);
|
|
|
2946
|
+
|
|
|
2947
|
+ BigDecimal currentCount = checkProblemDiscoveryItemDtoList.stream().filter(item -> CompareTypeEnum.CURRENT.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckProblemDiscoveryItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2948
|
+ checkProblemDiscoveryDto.setCount(currentCount);
|
|
|
2949
|
+ BigDecimal yearOnYearCount = checkProblemDiscoveryItemDtoList.stream().filter(item -> CompareTypeEnum.YEAR_ON_YEAR.getCode().equals(item.getTag())).findFirst().map(SysCheckAnalysisReportCheckProblemDiscoveryItemDto::getCount).orElse(BigDecimal.ZERO);
|
|
|
2950
|
+ SysCheckAnalysisReportCheckProblemDiscoveryItemDto checkProblemDiscoveryRingRatioItemDto = checkProblemDiscoveryItemDtoList.stream().filter(item -> CompareTypeEnum.RING_RATIO.getCode().equals(item.getTag())).findFirst().orElse(null);
|
|
|
2951
|
+ BigDecimal ringRatioCount = checkProblemDiscoveryRingRatioItemDto != null ? checkProblemDiscoveryRingRatioItemDto.getCount() : BigDecimal.ZERO;
|
|
|
2952
|
+
|
|
|
2953
|
+ List<SysAnalysisReportCompareItemDto> compareItemDtoList = new ArrayList<>();
|
|
|
2954
|
+ checkProblemDiscoveryDto.setCompareItemDtoList(compareItemDtoList);
|
|
|
2955
|
+ SysAnalysisReportCompareItemDto yearOnYearItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2956
|
+ yearOnYearItemDto.setCompareType(CompareTypeEnum.YEAR_ON_YEAR.getCode());
|
|
|
2957
|
+ yearOnYearItemDto.setCompareTypeDesc(CompareTypeEnum.YEAR_ON_YEAR.getDesc());
|
|
|
2958
|
+ BigDecimal subtractYearOnYear = currentCount.subtract(yearOnYearCount);
|
|
|
2959
|
+ if (subtractYearOnYear.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2960
|
+ yearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2961
|
+ yearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2962
|
+ yearOnYearItemDto.setProportion(yearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractYearOnYear.divide(yearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2963
|
+ yearOnYearItemDto.setProportionDesc(yearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : yearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2964
|
+ } else if (subtractYearOnYear.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2965
|
+ yearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2966
|
+ yearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2967
|
+ yearOnYearItemDto.setProportion(yearOnYearCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractYearOnYear.abs().divide(yearOnYearCount, 4, RoundingMode.HALF_UP));
|
|
|
2968
|
+ yearOnYearItemDto.setProportionDesc(yearOnYearItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : yearOnYearItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2969
|
+ } else {
|
|
|
2970
|
+ yearOnYearItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2971
|
+ yearOnYearItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2972
|
+ yearOnYearItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2973
|
+ yearOnYearItemDto.setProportionDesc("0%");
|
|
|
2974
|
+ }
|
|
|
2975
|
+ compareItemDtoList.add(yearOnYearItemDto);
|
|
|
2976
|
+ if (checkProblemDiscoveryRingRatioItemDto != null) {
|
|
|
2977
|
+ SysAnalysisReportCompareItemDto ringRatioItemDto = new SysAnalysisReportCompareItemDto();
|
|
|
2978
|
+ ringRatioItemDto.setCompareType(CompareTypeEnum.RING_RATIO.getCode());
|
|
|
2979
|
+ ringRatioItemDto.setCompareTypeDesc(CompareTypeEnum.RING_RATIO.getDesc());
|
|
|
2980
|
+ BigDecimal subtractSpecialTaskRingRatio = currentCount.subtract(ringRatioCount);
|
|
|
2981
|
+ if (subtractSpecialTaskRingRatio.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
2982
|
+ ringRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2983
|
+ ringRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2984
|
+ ringRatioItemDto.setProportion(ringRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskRingRatio.divide(ringRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2985
|
+ ringRatioItemDto.setProportionDesc(ringRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : ringRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2986
|
+ } else if (subtractSpecialTaskRingRatio.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
2987
|
+ ringRatioItemDto.setCompareResultType(CompareResultTypeEnum.DECLINE.getCode());
|
|
|
2988
|
+ ringRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.DECLINE.getDesc());
|
|
|
2989
|
+ ringRatioItemDto.setProportion(ringRatioCount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : subtractSpecialTaskRingRatio.abs().divide(ringRatioCount, 4, RoundingMode.HALF_UP));
|
|
|
2990
|
+ ringRatioItemDto.setProportionDesc(ringRatioItemDto.getProportion().compareTo(BigDecimal.ZERO) == 0 ? "--%" : ringRatioItemDto.getProportion().multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP) + "%");
|
|
|
2991
|
+ } else {
|
|
|
2992
|
+ ringRatioItemDto.setCompareResultType(CompareResultTypeEnum.RISE.getCode());
|
|
|
2993
|
+ ringRatioItemDto.setCompareResultTypeDesc(CompareResultTypeEnum.RISE.getDesc());
|
|
|
2994
|
+ ringRatioItemDto.setProportion(BigDecimal.ZERO);
|
|
|
2995
|
+ ringRatioItemDto.setProportionDesc("0%");
|
|
|
2996
|
+ }
|
|
|
2997
|
+ compareItemDtoList.add(ringRatioItemDto);
|
|
|
2998
|
+ }
|
|
|
2999
|
+
|
|
|
3000
|
+ String descOne = "共发现问题" + checkProblemDiscoveryDto.getCount() + "个,";
|
|
|
3001
|
+ List<String> descList = new ArrayList<>();
|
|
|
3002
|
+ checkProblemDiscoveryDto.getCompareItemDtoList().forEach(item -> descList.add(item.getCompareTypeDesc() + item.getCompareResultTypeDesc() + item.getProportionDesc()));
|
|
|
3003
|
+ String descTwo = String.join(",", descList);
|
|
|
3004
|
+ checkProblemDiscoveryDto.setDesc(descOne + descTwo);
|
|
|
3005
|
+ return checkProblemDiscoveryDto;
|
|
|
3006
|
+ }
|
|
|
3007
|
+
|
|
|
3008
|
+ /**
|
|
|
3009
|
+ * 获取问题分布统计
|
|
|
3010
|
+ *
|
|
|
3011
|
+ * @param paramDto 质控分析报告-问题分布统计查询参数
|
|
|
3012
|
+ * @return 问题分布统计
|
|
|
3013
|
+ */
|
|
|
3014
|
+ private SysCheckAnalysisReportCheckProblemDistributionDto getCheckProblemDistributionDto(SysAnalysisReportParamDto paramDto) {
|
|
|
3015
|
+ SysCheckAnalysisReportCheckProblemDistributionDto checkProblemDistributionDto = new SysCheckAnalysisReportCheckProblemDistributionDto();
|
|
|
3016
|
+ SysAnalysisReportDateRangeDto currentDateRangeDto = paramDto.getDateRangeList().stream().filter(dateRange -> StrUtil.equals(CompareTypeEnum.CURRENT.getCode(), dateRange.getTag())).findFirst().orElse(null);
|
|
|
3017
|
+ BaseLargeScreenQueryParamDto queryParamDto = new BaseLargeScreenQueryParamDto();
|
|
|
3018
|
+ queryParamDto.setStartDate(currentDateRangeDto.getStartDate());
|
|
|
3019
|
+ queryParamDto.setEndDate(currentDateRangeDto.getEndDate());
|
|
|
3020
|
+ List<SysCheckAnalysisReportCheckProblemDistributionItemDto> checkProblemDistributionItemDtoList = checkLargeScreenMapper.problemDistributionStatistics(queryParamDto);
|
|
|
3021
|
+ checkProblemDistributionDto.setCheckProblemDistributionItemDtoList(checkProblemDistributionItemDtoList);
|
|
|
3022
|
+ if (CollUtil.isEmpty(checkProblemDistributionItemDtoList)) {
|
|
|
3023
|
+ return null;
|
|
|
3024
|
+ }
|
|
|
3025
|
+
|
|
|
3026
|
+ StringBuilder desc = new StringBuilder();
|
|
|
3027
|
+ String formatOne = "当前安检质控中,%s类型问题的数量最多(%s件),是问题集中的主要类型";
|
|
|
3028
|
+ desc.append(String.format(formatOne, checkProblemDistributionItemDtoList.get(0).getName(), checkProblemDistributionItemDtoList.get(0).getTotal()));
|
|
|
3029
|
+ if (checkProblemDistributionItemDtoList.size() > 1) {
|
|
|
3030
|
+ List<String> list = new ArrayList<>();
|
|
|
3031
|
+ checkProblemDistributionItemDtoList = checkProblemDistributionItemDtoList.stream().skip(1).collect(Collectors.toList());
|
|
|
3032
|
+ checkProblemDistributionItemDtoList = checkProblemDistributionItemDtoList.stream().limit(2).collect(Collectors.toList());
|
|
|
3033
|
+ checkProblemDistributionItemDtoList.forEach(sysCheckAnalysisReportCheckProblemDistributionItemDto -> list.add(sysCheckAnalysisReportCheckProblemDistributionItemDto.getName() + "(" + sysCheckAnalysisReportCheckProblemDistributionItemDto.getTotal() + "件)"));
|
|
|
3034
|
+ String join = String.join("、", list);
|
|
|
3035
|
+ String formatTwo = ";其次是%s";
|
|
|
3036
|
+ desc.append(String.format(formatTwo, join));
|
|
|
3037
|
+ }
|
|
|
3038
|
+ checkProblemDistributionDto.setDesc(desc.length() == 0 ? null : desc.toString());
|
|
|
3039
|
+
|
|
|
3040
|
+ return checkProblemDistributionDto;
|
|
|
3041
|
+ }
|
|
|
3042
|
+
|
|
|
3043
|
+ /**
|
|
|
3044
|
+ * 获取问题整改统计
|
|
|
3045
|
+ *
|
|
|
3046
|
+ * @param paramDto 质控分析报告-问题整改统计查询参数
|
|
|
3047
|
+ * @return 问题整改统计
|
|
|
3048
|
+ */
|
|
|
3049
|
+ private SysCheckAnalysisReportCheckProblemCorrectionDto getCheckProblemCorrectionDto(SysAnalysisReportParamDto paramDto) {
|
|
|
3050
|
+ SysCheckAnalysisReportCheckProblemCorrectionDto checkProblemCorrectionDto = new SysCheckAnalysisReportCheckProblemCorrectionDto();
|
|
|
3051
|
+ List<SysCheckAnalysisReportCheckProblemCorrectionItemDto> checkProblemCorrectionItemDtoList = new ArrayList<>();
|
|
|
3052
|
+ SysAnalysisReportDateRangeDto currentDateRangeDto = paramDto.getDateRangeList().stream().filter(dateRange -> StrUtil.equals(CompareTypeEnum.CURRENT.getCode(), dateRange.getTag())).findFirst().orElse(null);
|
|
|
3053
|
+ BaseLargeScreenQueryParamDto queryParamDto = new BaseLargeScreenQueryParamDto();
|
|
|
3054
|
+ queryParamDto.setStartDate(currentDateRangeDto.getStartDate());
|
|
|
3055
|
+ queryParamDto.setEndDate(currentDateRangeDto.getEndDate());
|
|
|
3056
|
+ List<SysCheckAnalysisReportCheckProblemCorrectionItemDto> tempCheckProblemCorrectionItemDtoList = checkLargeScreenMapper.problemCorrectionStatistics(queryParamDto);
|
|
|
3057
|
+ if (CollUtil.isEmpty(tempCheckProblemCorrectionItemDtoList)) {
|
|
|
3058
|
+ return null;
|
|
|
3059
|
+ }
|
|
|
3060
|
+ Map<Long, SysCheckAnalysisReportCheckProblemCorrectionItemDto> deptMap = tempCheckProblemCorrectionItemDtoList.stream().collect(Collectors.toMap(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getDeptId, item -> item, (oldValue, newValue) -> newValue));
|
|
|
3061
|
+
|
|
|
3062
|
+ SysCheckAnalysisReportCheckProblemCorrectionItemDto maxItemDto = tempCheckProblemCorrectionItemDtoList.stream()
|
|
|
3063
|
+ .filter(p -> p.getOnTimeCompletedCount() != null && p.getOnTimeCompletedCount().compareTo(BigDecimal.ZERO) > 0)
|
|
|
3064
|
+ .max(Comparator.comparing(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOnTimeCompletedCount))
|
|
|
3065
|
+ .orElse(null);
|
|
|
3066
|
+ if (ObjUtil.isNotNull(maxItemDto)) {
|
|
|
3067
|
+ String desc = maxItemDto.getDeptName() + "的按时整改率更高、整改更及时,是当时整改工作落实较好的科室";
|
|
|
3068
|
+ checkProblemCorrectionDto.setDesc(desc);
|
|
|
3069
|
+ }
|
|
|
3070
|
+
|
|
|
3071
|
+ List<SysDept> deptList = sysDeptService.selectAllDept(SecurityUtils.getLoginUser().getDeptId());
|
|
|
3072
|
+ Collections.reverse(deptList);
|
|
|
3073
|
+ SysDept station = deptList.stream().filter(x -> StrUtil.equals(DeptType.STATION.getCode(), x.getDeptType())).findFirst().orElse(null);
|
|
|
3074
|
+ SysDept deptQuery = new SysDept();
|
|
|
3075
|
+ deptQuery.setParentId(station.getDeptId());
|
|
|
3076
|
+ deptQuery.setDeptType(DeptType.DEPARTMENT.getCode());
|
|
|
3077
|
+ List<SysDept> sysDeptList = sysDeptService.selectDeptInfoAll(deptQuery);
|
|
|
3078
|
+ sysDeptList.forEach(dept -> {
|
|
|
3079
|
+ SysCheckAnalysisReportCheckProblemCorrectionItemDto itemDto = deptMap.get(dept.getDeptId());
|
|
|
3080
|
+ if (itemDto != null) {
|
|
|
3081
|
+ checkProblemCorrectionItemDtoList.add(itemDto);
|
|
|
3082
|
+ } else {
|
|
|
3083
|
+ SysCheckAnalysisReportCheckProblemCorrectionItemDto itemDtoZero = new SysCheckAnalysisReportCheckProblemCorrectionItemDto();
|
|
|
3084
|
+ itemDtoZero.setDeptId(dept.getDeptId());
|
|
|
3085
|
+ itemDtoZero.setDeptName(dept.getDeptName());
|
|
|
3086
|
+ itemDtoZero.setOnTimeCompletedCount(BigDecimal.ZERO);
|
|
|
3087
|
+ itemDtoZero.setOverTimeCompletedCount(BigDecimal.ZERO);
|
|
|
3088
|
+ itemDtoZero.setOnTimeUnfinishedCount(BigDecimal.ZERO);
|
|
|
3089
|
+ itemDtoZero.setOverTimeUnfinishedCount(BigDecimal.ZERO);
|
|
|
3090
|
+ itemDtoZero.setOtherCount(BigDecimal.ZERO);
|
|
|
3091
|
+ checkProblemCorrectionItemDtoList.add(itemDtoZero);
|
|
|
3092
|
+ }
|
|
|
3093
|
+ });
|
|
|
3094
|
+
|
|
|
3095
|
+ SysCheckAnalysisReportCheckProblemCorrectionItemDto totalItem = new SysCheckAnalysisReportCheckProblemCorrectionItemDto();
|
|
|
3096
|
+ totalItem.setDeptId(null);
|
|
|
3097
|
+ totalItem.setDeptName("总数");
|
|
|
3098
|
+ totalItem.setOnTimeCompletedCount(tempCheckProblemCorrectionItemDtoList.stream().map(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOnTimeCompletedCount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
3099
|
+ totalItem.setOverTimeCompletedCount(tempCheckProblemCorrectionItemDtoList.stream().map(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOverTimeCompletedCount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
3100
|
+ totalItem.setOnTimeUnfinishedCount(tempCheckProblemCorrectionItemDtoList.stream().map(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOnTimeUnfinishedCount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
3101
|
+ totalItem.setOverTimeUnfinishedCount(tempCheckProblemCorrectionItemDtoList.stream().map(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOverTimeUnfinishedCount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
3102
|
+ totalItem.setOtherCount(tempCheckProblemCorrectionItemDtoList.stream().map(SysCheckAnalysisReportCheckProblemCorrectionItemDto::getOtherCount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
3103
|
+ checkProblemCorrectionItemDtoList.add(0, totalItem);
|
|
|
3104
|
+ checkProblemCorrectionDto.setCheckProblemCorrectionItemDtoList(checkProblemCorrectionItemDtoList);
|
|
|
3105
|
+
|
|
|
3106
|
+ return checkProblemCorrectionDto;
|
|
|
3107
|
+ }
|
|
|
3108
|
+
|
|
|
3109
|
+ /**
|
|
|
3110
|
+ * 质控分析报告-质控活动-问题分布统计
|
|
|
3111
|
+ *
|
|
|
3112
|
+ * @param paramDto 查询参数
|
|
|
3113
|
+ * @return 质控分析报告-质控活动-问题分布统计
|
|
|
3114
|
+ */
|
|
|
3115
|
+ @Override
|
|
|
3116
|
+ public SysCheckAnalysisReportCheckProblemDistributionDto getCheckProblemDistribution(BaseLargeScreenQueryParamDto paramDto) {
|
|
|
3117
|
+ SysCheckAnalysisReportCheckProblemDistributionDto checkProblemDistributionDto = new SysCheckAnalysisReportCheckProblemDistributionDto();
|
|
|
3118
|
+ List<SysCheckAnalysisReportCheckProblemDistributionItemDto> checkProblemDistributionItemDtoList = checkLargeScreenMapper.problemDistributionStatistics(paramDto);
|
|
|
3119
|
+ checkProblemDistributionDto.setCheckProblemDistributionItemDtoList(checkProblemDistributionItemDtoList);
|
|
|
3120
|
+ if (CollUtil.isEmpty(checkProblemDistributionItemDtoList)) {
|
|
|
3121
|
+ return null;
|
|
|
3122
|
+ }
|
|
|
3123
|
+
|
|
|
3124
|
+ StringBuilder desc = new StringBuilder();
|
|
|
3125
|
+ String formatOne = "%s类型问题占比最大";
|
|
|
3126
|
+ desc.append(String.format(formatOne, checkProblemDistributionItemDtoList.get(0).getName()));
|
|
|
3127
|
+ checkProblemDistributionDto.setDesc(desc.length() == 0 ? null : desc.toString());
|
|
|
3128
|
+
|
|
|
3129
|
+ return checkProblemDistributionDto;
|
|
|
3130
|
+ }
|
|
|
3131
|
+
|
|
2717
|
3132
|
}
|