lengfaqiang пре 2 година
родитељ
комит
b6bb8a4de9

+ 41 - 16
slope-modules/slope-detection/src/main/java/com/sckw/slope/detection/service/ProjectService.java

@@ -1418,29 +1418,42 @@ public class ProjectService {
         if (Objects.nonNull(project)) {
             mountainId = project.getMountainId();
         }
-        List<KwsAlarm> kwsAlarmsCount = alarmMapper.selectList(new LambdaQueryWrapper<KwsAlarm>()
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(mountainId), KwsAlarm::getMountainId, mountainId)
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), KwsAlarm::getCompanyId, companyId)
+        LambdaQueryWrapper<KwsAlarm> alarmLambdaQueryWrapper = new LambdaQueryWrapper<KwsAlarm>()
                 .eq(KwsAlarm::getStatus, 0)
-                .eq(KwsAlarm::getDelFlag, 0)
-        );
+                .eq(KwsAlarm::getDelFlag, 0);
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(projectId)) {
+            alarmLambdaQueryWrapper.eq(KwsAlarm::getProjectId, Long.parseLong(projectId));
+        }
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(companyId)) {
+            alarmLambdaQueryWrapper.eq(KwsAlarm::getCompanyId, Long.parseLong(companyId));
+        }
+        List<KwsAlarm> kwsAlarmsCount = alarmMapper.selectList(alarmLambdaQueryWrapper);
         int alarmTotal = 0;
         if (!CollectionUtils.isEmpty(kwsAlarmsCount)) {
             alarmTotal = kwsAlarmsCount.stream().mapToInt(KwsAlarm::getTriggerTimes).sum();
         }
 //        vo.setAlarmTotal(CollectionUtils.isEmpty(kwsAlarmsCount) ? 0 : kwsAlarmsCount.size());
         vo.setAlarmTotal(alarmTotal);
-        List<KwsAlarmDetail> unreadKwsAlarms = alarmDetailMapper.selectList(new LambdaQueryWrapper<KwsAlarmDetail>()
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(mountainId), KwsAlarmDetail::getMountainId, mountainId)
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), KwsAlarmDetail::getCompanyId, companyId)
+        LambdaQueryWrapper<KwsAlarmDetail> eq = new LambdaQueryWrapper<KwsAlarmDetail>()
                 .eq(KwsAlarmDetail::getStatus, 0)
                 .eq(KwsAlarmDetail::getDelFlag, 0)
+                .in(KwsAlarmDetail::getAlarmId, kwsAlarmsCount.stream().map(KwsAlarm::getId).distinct().collect(Collectors.toList()));
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(projectId)) {
+            eq.eq(KwsAlarmDetail::getAlarmId, Long.parseLong(projectId));
+        }
+        List<KwsAlarmDetail> unreadKwsAlarms = alarmDetailMapper.selectList(eq
         );
         vo.setUnreadAlarmTotal(CollectionUtils.isEmpty(unreadKwsAlarms) ? 0 : unreadKwsAlarms.size());
-        List<KwsAlarm> oneThresholdAlarm = alarmMapper.selectList(new LambdaQueryWrapper<KwsAlarm>()
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(mountainId), KwsAlarm::getMountainId, mountainId)
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), KwsAlarm::getCompanyId, companyId)
-                .eq(KwsAlarm::getLevel, NumberConstant.ONE)
+
+        LambdaQueryWrapper<KwsAlarm> eqed = new LambdaQueryWrapper<KwsAlarm>();
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(projectId)) {
+            eqed.eq(KwsAlarm::getProjectId, Long.parseLong(projectId));
+        }
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(companyId)) {
+            eqed.eq(KwsAlarm::getCompanyId, Long.parseLong(companyId));
+        }
+        eqed.eq(KwsAlarm::getLevel, NumberConstant.ONE);
+        List<KwsAlarm> oneThresholdAlarm = alarmMapper.selectList(eqed
         );
         int oneAlarmTotal = 0;
         if (!CollectionUtils.isEmpty(oneThresholdAlarm)) {
@@ -1448,11 +1461,23 @@ public class ProjectService {
         }
 //        vo.setOneAlarmTotal(CollectionUtils.isEmpty(oneThresholdAlarm) ? 0 : oneThresholdAlarm.size());
         vo.setOneAlarmTotal(oneAlarmTotal);
-        List<KwsAlarmDetail> kwsAlarms = alarmDetailMapper.selectList(new LambdaQueryWrapper<KwsAlarmDetail>()
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(mountainId), KwsAlarmDetail::getMountainId, mountainId)
-                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), KwsAlarmDetail::getCompanyId, companyId)
+        KwsAlarm alarms = null;
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(projectId)) {
+            alarms = alarmMapper.selectById(Long.parseLong(projectId));
+        }
+        LambdaQueryWrapper<KwsAlarmDetail> lt = new LambdaQueryWrapper<KwsAlarmDetail>()
                 .eq(KwsAlarmDetail::getDelFlag, 0)
-                .gt(KwsAlarmDetail::getCreateTime, localDateTimeStart).lt(KwsAlarmDetail::getCreateTime, localDateTimeEnd)
+                .gt(KwsAlarmDetail::getCreateTime, localDateTimeStart).lt(KwsAlarmDetail::getCreateTime, localDateTimeEnd);
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(projectId)) {
+            lt.eq(KwsAlarmDetail::getMountainId, Long.parseLong(mountainId));
+        }
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(companyId)) {
+            lt.eq(KwsAlarmDetail::getCompanyId, Long.parseLong(companyId));
+        }
+        if (Objects.nonNull(alarms)){
+            lt.eq(KwsAlarmDetail::getAlarmId,alarms.getId());
+        }
+        List<KwsAlarmDetail> kwsAlarms = alarmDetailMapper.selectList(lt
         );
         vo.setTodayAlarmTotal(CollectionUtils.isEmpty(kwsAlarms) ? 0 : kwsAlarms.size());
         return HttpResult.ok("查询成功", vo);

+ 4 - 4
slope-modules/slope-detection/src/main/resources/mapper/mysql/KwsDeviceMapper.xml

@@ -371,10 +371,10 @@
         AND c.del_flag = 0
         and a.mountain_id = b.mountain_id
         and b.mountain_id = c.mountain_id
-      <if test="projectId != null and projectId != ''">
+      <if test="projectId != null">
           and a.id = #{projectId}
       </if>
-      <if test="companyId != null and companyId != ''">
+      <if test="companyId != null">
           and a.company_id = #{companyId}
       </if>
   </select>
@@ -391,10 +391,10 @@
       and a.mountain_id = b.mountain_id
       and b.mountain_id = c.mountain_id
       and c.online = 0
-      <if test="projectId != null and projectId != ''">
+      <if test="projectId != null">
           and a.id=#{projectId}
       </if>
-      <if test="companyId != null and companyId != ''">
+      <if test="companyId != null">
           and a.company_id=#{companyId}
       </if>
     </select>