浏览代码

告警信息处理

hym 4 年之前
父节点
当前提交
4f33f73fc0

+ 2 - 0
src/main/java/com/zoniot/ccrc/dao/GridManagementMapper.java

@@ -96,4 +96,6 @@ public interface GridManagementMapper {
                             @Param("userId") Integer userId, @Param("address") String address);
 
     List<GridManagement> getByDeviceId(@Param("deviceId") Long deviceId);
+
+    void deleteWarningRule(@Param("id") Integer id);
 }

+ 7 - 1
src/main/java/com/zoniot/ccrc/scheduled/WarningMessageJob.java

@@ -63,7 +63,13 @@ public class WarningMessageJob {
             for (WarningRule warningRule : list) {
                     Boolean flag =  mongoMeterReadRecordService.complyWithWarningRules(warningRule.getDeviceId(),warningRule.getWarningType());
                     if ( flag) {
-                        String content =  "单日用水量超过2吨";
+                        String content ="";
+                        if(warningRule.getWarningType()==4){
+                            content =  "单日用水量超过2吨";
+                        }else if(warningRule.getWarningType()==3){
+                            content =  "单日用水量少于0.01吨";
+                        }
+
                         addMessageInfo(warningRule,content);
                         sendWechatMessage(warningRule.getDeviceId(),content);
                 }

+ 3 - 0
src/main/java/com/zoniot/ccrc/service/impl/AppletsServiceImpl.java

@@ -52,6 +52,9 @@ public class AppletsServiceImpl implements AppletsService {
         endDate = Integer.valueOf(endDateTime.format(df));
         //查询在阶段类型时间范围内容的用水量
         Double volume = statisticsService.getDeviceVolume(startDate,endDate);
+        if(volume==null){
+            volume=0d;
+        }
         if(clientUserDtos!=null&&clientUserDtos.size()>0)
         {
             clientUserDto = clientUserDtos.get(0);

+ 1 - 0
src/main/java/com/zoniot/ccrc/service/impl/GridManagementServiceImpl.java

@@ -182,6 +182,7 @@ public class GridManagementServiceImpl implements GridManagementService {
         gridManagement.setId(id);
         gridManagement.setStatus(0);
         gridManagementMapper.update(gridManagement);
+        gridManagementMapper.deleteWarningRule(id);
     }
 
 }

+ 15 - 4
src/main/java/com/zoniot/ccrc/service/impl/MongoMeterReadRecordServiceImpl.java

@@ -123,7 +123,7 @@ public class MongoMeterReadRecordServiceImpl implements MongoMeterReadRecordServ
     @Override
     public boolean complyWithWarningRules(Long deviceId, Integer type) {
         boolean flag=false;
-        if(type==1){
+
             Integer date = Integer.valueOf(LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ofPattern("yyyyMMdd")));
             Query query = new Query();
             query.addCriteria(Criteria.where("deviceId").is(deviceId));
@@ -132,12 +132,23 @@ public class MongoMeterReadRecordServiceImpl implements MongoMeterReadRecordServ
             if(!Collections.isEmpty(list)){
                 MongoMeterReadRecord mongoMeterReadRecord=list.get(0);
                 BigDecimal lastCost = mongoMeterReadRecord.getLastCost();
+                 /*小于: == -1
+                    等于: == 0
+                    大于: == 1
+                    大于等于: > -1
+                    小于等于: < 1 */
+                if(type==4){
                 BigDecimal bigDecimal=new BigDecimal("2");
-                if(lastCost.compareTo(bigDecimal)==1){
-                    flag=true;
+                   if(lastCost.compareTo(bigDecimal)==1){
+                        flag=true;
+                    }
+                 }else if(type==3){
+                    BigDecimal smallDecimal=new BigDecimal("0.01");
+                    if(lastCost.compareTo(smallDecimal)==-1){
+                        flag=true;
+                    }
                 }
             }
-        }
         return flag;
     }
 }

+ 3 - 0
src/main/resources/mapper/GridManagementMapper.xml

@@ -180,6 +180,9 @@
         from sc_grid_management
         where id = #{id}
     </delete>
+    <update id="deleteWarningRule">
+        update sc_warning_rule set status=0 where device_id=#{id}
+    </update>
 
     <!-- 总数 -->
     <select id="count" resultType="int">