|
|
@@ -663,6 +663,25 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
663
|
663
|
upperBound = boxPlotData.getUpperBound();
|
|
664
|
664
|
}
|
|
665
|
665
|
}
|
|
|
666
|
+ } else if (dto.getInspectDepartmentId() != null) {
|
|
|
667
|
+ // 根据 id 获取部门信息
|
|
|
668
|
+ SysDept dept = sysDeptService.selectDeptById(dto.getInspectDepartmentId());
|
|
|
669
|
+ if (Objects.isNull(dept)) {
|
|
|
670
|
+ return Collections.emptyList();
|
|
|
671
|
+ }
|
|
|
672
|
+
|
|
|
673
|
+ // 查找匹配的分组数据
|
|
|
674
|
+ Optional<GroupedBoxPlotDataDto> matchedGroup = boxPlotDataList.stream()
|
|
|
675
|
+ .filter(grouped -> Objects.equals(grouped.getGroupName(), dept.getDeptName()))
|
|
|
676
|
+ .findFirst();
|
|
|
677
|
+
|
|
|
678
|
+ if (matchedGroup.isPresent()) {
|
|
|
679
|
+ BoxPlotDataDto boxPlotData = matchedGroup.get().getBoxPlotData();
|
|
|
680
|
+ if (Objects.nonNull(boxPlotData)) {
|
|
|
681
|
+ lowerBound = boxPlotData.getLowerBound();
|
|
|
682
|
+ upperBound = boxPlotData.getUpperBound();
|
|
|
683
|
+ }
|
|
|
684
|
+ }
|
|
666
|
685
|
} else {
|
|
667
|
686
|
GroupedBoxPlotDataDto firstGroup = boxPlotDataList.get(0);
|
|
668
|
687
|
if (Objects.nonNull(firstGroup) && Objects.nonNull(firstGroup.getBoxPlotData())) {
|
|
|
@@ -681,6 +700,10 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
681
|
700
|
// 有大队 ID,查询大队数据
|
|
682
|
701
|
seizureReportList = seizureReportMapper.homePageSeizureReportBrigadeId(dto);
|
|
683
|
702
|
userInfoList = sysUserService.homePageUserInfoByBrigadeId(dto.getInspectBrigadeId());
|
|
|
703
|
+ } else if (dto.getInspectDepartmentId() != null) {
|
|
|
704
|
+ // 有科室 ID,查询科室数据
|
|
|
705
|
+ seizureReportList = seizureReportMapper.homePageSeizureReportDepartmentId(dto);
|
|
|
706
|
+ userInfoList = sysUserService.homePageUserInfoByDepartmentId(dto.getInspectDepartmentId());
|
|
684
|
707
|
} else {
|
|
685
|
708
|
// 无大队 ID,查询全站数据
|
|
686
|
709
|
seizureReportList = seizureReportMapper.homePageSeizureReport(dto);
|
|
|
@@ -704,6 +727,10 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
704
|
727
|
for (LargeScreenHomePageUserInfoSqlDto userInfo : userInfoList) {
|
|
705
|
728
|
BigDecimal totalQuantity = userSeizureMap.getOrDefault(userInfo.getUserId(), BigDecimal.ZERO);
|
|
706
|
729
|
|
|
|
730
|
+ if (lowerBound == null || upperBound == null) {
|
|
|
731
|
+ continue;
|
|
|
732
|
+ }
|
|
|
733
|
+
|
|
707
|
734
|
// 判断是否为异常值
|
|
708
|
735
|
if (totalQuantity.compareTo(lowerBound) < 0 || totalQuantity.compareTo(upperBound) > 0) {
|
|
709
|
736
|
ItemAbnormalSeizureDto abnormalDto = new ItemAbnormalSeizureDto();
|
|
|
@@ -759,6 +786,25 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
759
|
786
|
upperBound = boxPlotData.getUpperBound();
|
|
760
|
787
|
}
|
|
761
|
788
|
}
|
|
|
789
|
+ } else if (dto.getInspectDepartmentId() != null) {
|
|
|
790
|
+ // 根据 id 获取部门信息
|
|
|
791
|
+ SysDept dept = sysDeptService.selectDeptById(dto.getInspectDepartmentId());
|
|
|
792
|
+ if (Objects.isNull(dept)) {
|
|
|
793
|
+ return result;
|
|
|
794
|
+ }
|
|
|
795
|
+
|
|
|
796
|
+ // 查找匹配的分组数据
|
|
|
797
|
+ Optional<GroupedBoxPlotDataDto> matchedGroup = boxPlotDataList.stream()
|
|
|
798
|
+ .filter(grouped -> Objects.equals(grouped.getGroupName(), dept.getDeptName()))
|
|
|
799
|
+ .findFirst();
|
|
|
800
|
+
|
|
|
801
|
+ if (matchedGroup.isPresent()) {
|
|
|
802
|
+ BoxPlotDataDto boxPlotData = matchedGroup.get().getBoxPlotData();
|
|
|
803
|
+ if (Objects.nonNull(boxPlotData)) {
|
|
|
804
|
+ lowerBound = boxPlotData.getLowerBound();
|
|
|
805
|
+ upperBound = boxPlotData.getUpperBound();
|
|
|
806
|
+ }
|
|
|
807
|
+ }
|
|
762
|
808
|
} else {
|
|
763
|
809
|
GroupedBoxPlotDataDto firstGroup = boxPlotDataList.get(0);
|
|
764
|
810
|
if (Objects.nonNull(firstGroup) && Objects.nonNull(firstGroup.getBoxPlotData())) {
|
|
|
@@ -776,6 +822,10 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
776
|
822
|
// 有大队 ID,查询大队数据
|
|
777
|
823
|
seizureReportList = seizureReportMapper.homePageSeizureReportBrigadeId(dto);
|
|
778
|
824
|
userInfoList = sysUserService.homePageUserInfoByBrigadeId(dto.getInspectBrigadeId());
|
|
|
825
|
+ } else if (dto.getInspectDepartmentId() != null) {
|
|
|
826
|
+ // 有科室 ID,查询科室数据
|
|
|
827
|
+ seizureReportList = seizureReportMapper.homePageSeizureReportDepartmentId(dto);
|
|
|
828
|
+ userInfoList = sysUserService.homePageUserInfoByDepartmentId(dto.getInspectDepartmentId());
|
|
779
|
829
|
} else {
|
|
780
|
830
|
// 无大队 ID,查询全站数据
|
|
781
|
831
|
seizureReportList = seizureReportMapper.homePageSeizureReport(dto);
|
|
|
@@ -800,6 +850,10 @@ public class ItemLargeScreenServiceImpl implements ItemLargeScreenService {
|
|
800
|
850
|
for (LargeScreenHomePageUserInfoSqlDto userInfo : userInfoList) {
|
|
801
|
851
|
BigDecimal totalQuantity = userSeizureMap.getOrDefault(userInfo.getUserId(), BigDecimal.ZERO);
|
|
802
|
852
|
|
|
|
853
|
+ if (lowerBound == null || upperBound == null) {
|
|
|
854
|
+ continue;
|
|
|
855
|
+ }
|
|
|
856
|
+
|
|
803
|
857
|
// 判断是否为异常值
|
|
804
|
858
|
if (totalQuantity.compareTo(upperBound) > 0) {
|
|
805
|
859
|
// 显著高于
|