Ver código fonte

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 ano atrás
pai
commit
69c52c6148

+ 15 - 8
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataRealTimeServiceImpl.java

@@ -14,6 +14,7 @@ import com.usky.backend.service.DataRealTimeService;
 import com.usky.common.core.util.JsonUtils;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import nonapi.io.github.classgraph.json.JSONUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -34,6 +35,8 @@ import java.util.Map;
  */
 @Service
 public class DataRealTimeServiceImpl extends AbstractCrudService<DataRealTimeMapper, DataRealTime> implements DataRealTimeService {
+    @Autowired
+    private DataRealTimeMapper dataRealTimeMapper;
 
     @Override
     public void data(List<DeviceDataInfoVO> list){
@@ -52,18 +55,22 @@ public class DataRealTimeServiceImpl extends AbstractCrudService<DataRealTimeMap
                     one.setInsertTime(LocalDateTime.now());
                     this.updateById(one);
                 }else{
-                    one.setDeviceId(list.get(i).getDeviceId());
-                    one.setDeviceType(list.get(i).getDeviceType());
-                    one.setAttributeName(list.get(i).getName());
-                    one.setAttributeData(String.valueOf(list.get(i).getValue()));
-                    one.setDataTime(list.get(i).getTimestamp());
-                    one.setInsertTime(LocalDateTime.now());
-                    this.save(one);
+                    DataRealTime data = new DataRealTime();
+                    data.setDeviceId(list.get(i).getDeviceId());
+                    data.setDeviceType(list.get(i).getDeviceType());
+                    data.setAttributeName(list.get(i).getName());
+                    data.setAttributeData(String.valueOf(list.get(i).getValue()));
+                    data.setDataTime(list.get(i).getTimestamp());
+                    data.setInsertTime(LocalDateTime.now());
+                    this.save(data);
                 }
 
                 String tableName = "data_"+list.get(i).getTypeAbbrevia()+"_history";
                 //操作各个设备历史数据表(通用方法)
-                int res = baseMapper.insertHistoryTable(list.get(i),tableName,LocalDateTime.now());
+                int res = dataRealTimeMapper.insertHistoryTable(list.get(i),tableName,LocalDateTime.now());
+                if(res > 0){
+
+                }
             }
         }
 

+ 33 - 5
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseAlarmServiceImpl.java

@@ -16,7 +16,6 @@ import com.usky.iot.domain.DmpProductInfo;
 import com.usky.iot.mapper.BaseAlarmMapper;
 import com.usky.iot.service.BaseAlarmService;
 import com.usky.common.mybatis.core.AbstractCrudService;
-import com.usky.iot.service.BaseAlarmTypeService;
 import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.DmpProductInfoService;
 import com.usky.iot.service.vo.BaseAlarmListVO;
@@ -43,8 +42,6 @@ import java.util.stream.Collectors;
  */
 @Service
 public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, BaseAlarm> implements BaseAlarmService {
-    @Autowired
-    private BaseAlarmTypeService baseAlarmTypeService;
 
     @Autowired
     private DmpProductInfoService dmpProductInfoService;
@@ -96,9 +93,11 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
                 }
 
                 //未处理
-                int untreated = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,0).eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
+                int untreated = 0;
+                untreated = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,0).eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
                 //已处理
-                int processed = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,1).eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
+                int processed = 0;
+                processed = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,1).eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
                 //总数
                 int count = untreated+processed;
                 //处置率
@@ -112,6 +111,35 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
                 responeVO.setProcessed(processed);
                 responeVO.setProcessRate(processRate);
 
+                //设备总数
+                int deviceCount = 0;
+                List<Integer> serviceStatusList = new ArrayList<>();
+                serviceStatusList.add(1);
+                serviceStatusList.add(2);
+                LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.in(DmpDeviceInfo::getServiceStatus,serviceStatusList)
+                        .eq(DmpDeviceInfo::getProductCode,list1.get(i).getProductCode())
+                        .eq(DmpDeviceInfo::getDeleteFlag,0);
+                deviceCount = dmpDeviceInfoService.count(queryWrapper1);
+                responeVO.setDeviceCount(deviceCount);
+                //离线告警统计
+                //离线告警未处理
+                int offLineUntreated = 0;
+                offLineUntreated = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,0).eq(BaseAlarm::getAlarmType,"lx-20230700000000000").eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
+                //离线告警已处理
+                int offLineProcessed = 0;
+                offLineProcessed = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,1).eq(BaseAlarm::getAlarmType,"lx-20230700000000000").eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()));
+                //离线告警总数
+                int offLineCount = offLineUntreated+offLineProcessed;
+                //离线告警处置率
+                float offLineProcessRate = 0;
+                if(offLineCount != 0){
+                    offLineProcessRate = ((float) offLineProcessed/offLineCount)*100;
+                }
+                responeVO.setOffLineUntreated(offLineUntreated);
+                responeVO.setOffLineProcessed(offLineProcessed);
+                responeVO.setOffLineProcessRate(offLineProcessRate);
+
                 list.add(responeVO);
             }
         }

+ 14 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseAlarmTypeServiceImpl.java

@@ -8,12 +8,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.BaseAlarm;
 import com.usky.iot.domain.BaseAlarmType;
 import com.usky.iot.domain.DmpProductInfo;
 import com.usky.iot.mapper.BaseAlarmTypeMapper;
+import com.usky.iot.service.BaseAlarmService;
 import com.usky.iot.service.BaseAlarmTypeService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.iot.service.vo.BaseAlarmTypeRequestVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -33,6 +36,8 @@ import java.util.Optional;
  */
 @Service
 public class BaseAlarmTypeServiceImpl extends AbstractCrudService<BaseAlarmTypeMapper, BaseAlarmType> implements BaseAlarmTypeService {
+    @Autowired
+    private BaseAlarmService baseAlarmService;
 
     @Override
     public void add(BaseAlarmType baseAlarmType){
@@ -60,8 +65,17 @@ public class BaseAlarmTypeServiceImpl extends AbstractCrudService<BaseAlarmTypeM
 
     @Override
     public void remove(Integer id){
+
         BaseAlarmType baseAlarmType = this.getById(id);
         Optional.ofNullable(baseAlarmType).orElseThrow(() -> new BusinessException("告警类型不存在"));
+
+        LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseAlarm::getAlarmType,baseAlarmType.getTypeCode());
+        int count = baseAlarmService.count(queryWrapper);
+        if(count > 0){
+            throw new BusinessException("有告警信息使用该告警类型,不能删除");
+        }
+
         baseAlarmType.setDeleteFlag(1);
         this.updateById(baseAlarmType);
     }

+ 21 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseAlarmResponeVO.java

@@ -21,7 +21,7 @@ public class BaseAlarmResponeVO {
     private Integer deviceType;
 
     /**
-     * 总数
+     * 告警总数
      */
     private Integer total;
 
@@ -39,4 +39,24 @@ public class BaseAlarmResponeVO {
      * 处置率
      */
     private float processRate;
+
+    /**
+     * 设备数
+     */
+    private Integer deviceCount;
+
+    /**
+     * 离线告警待处理
+     */
+    private Integer offLineUntreated;
+
+    /**
+     * 离线告警已处理
+     */
+    private Integer offLineProcessed;
+
+    /**
+     * 离线告警处置率
+     */
+    private float offLineProcessRate;
 }