|
@@ -242,6 +242,181 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public CommonPage<BaseAlarmResponeVO> statistic_notoken(BaseAlarmRequestVO baseAlarmRequestVO){
|
|
|
+
|
|
|
+ List<BaseAlarmResponeVO> list = new ArrayList<>();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<DmpProductInfo> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(DmpProductInfo::getDeleteFlag,0)
|
|
|
+ .like(StringUtils.isNotBlank(baseAlarmRequestVO.getProductName()),DmpProductInfo::getProductName,baseAlarmRequestVO.getProductName());
|
|
|
+ List<DmpProductInfo> list1 = dmpProductInfoService.list(queryWrapper);
|
|
|
+ if(CollectionUtils.isNotEmpty(list1)){
|
|
|
+
|
|
|
+ List<String> productCodeList = list1.stream().map(s -> s.getProductCode()).collect(Collectors.toList());
|
|
|
+ QueryWrapper<BaseAlarm> queryWrapper2 = Wrappers.query();
|
|
|
+ queryWrapper2.select("product_code as productCode","handle_status as handleStatus","count(*) as count")
|
|
|
+ .in("product_code",productCodeList)
|
|
|
+ .groupBy("product_code","handle_status");
|
|
|
+ List<Map<String,Object>> handleStatusList = this.listMaps(queryWrapper2);
|
|
|
+
|
|
|
+ for(int i=0;i<list1.size();i++){
|
|
|
+ BaseAlarmResponeVO responeVO = new BaseAlarmResponeVO();
|
|
|
+ responeVO.setProductCode(list1.get(i).getProductCode());
|
|
|
+ responeVO.setProductName(list1.get(i).getProductName());
|
|
|
+ responeVO.setDeviceType(list1.get(i).getDeviceType());
|
|
|
+
|
|
|
+ //未处理
|
|
|
+ int untreated = 0;
|
|
|
+ if(CollectionUtils.isNotEmpty(handleStatusList)){
|
|
|
+ for(int j=0;j<handleStatusList.size();j++){
|
|
|
+ if(list1.get(i).getProductCode().equals(handleStatusList.get(j).get("productCode")) && (0 == Integer.parseInt(handleStatusList.get(j).get("handleStatus").toString()))){
|
|
|
+ untreated = Integer.parseInt(String.valueOf(handleStatusList.get(j).get("count")));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //已处理
|
|
|
+ int processed = 0;
|
|
|
+ if(CollectionUtils.isNotEmpty(handleStatusList)){
|
|
|
+ for(int j=0;j<handleStatusList.size();j++){
|
|
|
+ if(list1.get(i).getProductCode().equals(handleStatusList.get(j).get("productCode")) && (1 == Integer.parseInt(handleStatusList.get(j).get("handleStatus").toString()))){
|
|
|
+ processed = Integer.parseInt(String.valueOf(handleStatusList.get(j).get("count")));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //总数
|
|
|
+ int count = untreated+processed;
|
|
|
+ //处置率
|
|
|
+ float processRate = 0;
|
|
|
+ if(count != 0){
|
|
|
+ processRate = ((float) processed/count)*100;
|
|
|
+ }
|
|
|
+
|
|
|
+ responeVO.setTotal(count);
|
|
|
+ responeVO.setUntreated(untreated);
|
|
|
+ responeVO.setProcessed(processed);
|
|
|
+ responeVO.setProcessRate(processRate);
|
|
|
+
|
|
|
+// //设备总数
|
|
|
+// responeVO.setDeviceCount(0);
|
|
|
+// if(CollectionUtils.isNotEmpty(mapList)){
|
|
|
+// for(int j=0;j<mapList.size();j++){
|
|
|
+// if(list1.get(i).getProductCode().equals(mapList.get(j).get("productCode"))){
|
|
|
+// responeVO.setDeviceCount(Integer.parseInt(String.valueOf(mapList.get(j).get("count"))));
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ //离线告警统计
|
|
|
+ //离线告警未处理
|
|
|
+ int offLineUntreated = 0;
|
|
|
+// offLineUntreated = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,0).eq(BaseAlarm::getAlarmType,"001").eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()).eq(BaseAlarm::getTenantId,SecurityUtils.getTenantId()));
|
|
|
+ //离线告警已处理
|
|
|
+ int offLineProcessed = 0;
|
|
|
+// offLineProcessed = this.count(Wrappers.<BaseAlarm>query().lambda().eq(BaseAlarm::getHandleStatus,1).eq(BaseAlarm::getAlarmType,"001").eq(BaseAlarm::getProductCode,list1.get(i).getProductCode()).eq(BaseAlarm::getTenantId,SecurityUtils.getTenantId()));
|
|
|
+ //离线告警总数
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ int total = 0;
|
|
|
+ if(list1.size()>0){
|
|
|
+ total = list1.size();
|
|
|
+ }
|
|
|
+ int current = 0;
|
|
|
+ Integer pageNum = baseAlarmRequestVO.getCurrent();
|
|
|
+ Integer pageSize = baseAlarmRequestVO.getSize();
|
|
|
+ if(pageNum != null && pageSize >0){
|
|
|
+ current = (pageNum-1)*pageSize;
|
|
|
+ }
|
|
|
+ List<BaseAlarmResponeVO> records = list.stream().skip(current).limit(pageSize).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return new CommonPage<BaseAlarmResponeVO>(records,total,pageSize,pageNum);
|
|
|
+ }
|
|
|
+
|
|
|
+ public CommonPage<BaseAlarm> page_notoken(BaseAlarmListVO baseAlarmListVO){
|
|
|
+ List<BaseAlarm> list = new ArrayList<>();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper
|
|
|
+ .eq(StringUtils.isNotBlank(baseAlarmListVO.getProductCode()),BaseAlarm::getProductCode,baseAlarmListVO.getProductCode())
|
|
|
+ .eq(StringUtils.isNotBlank(baseAlarmListVO.getAlarmType()),BaseAlarm::getAlarmType,baseAlarmListVO.getAlarmType())
|
|
|
+ .eq(null != baseAlarmListVO.getHandleStatus(),BaseAlarm::getHandleStatus,baseAlarmListVO.getHandleStatus())
|
|
|
+ .between(StringUtils.isNotBlank(baseAlarmListVO.getStartTime()) && StringUtils.isNotBlank(baseAlarmListVO.getEndTime()),BaseAlarm::getAlarmTime,baseAlarmListVO.getStartTime(),baseAlarmListVO.getEndTime())
|
|
|
+ .orderByDesc(BaseAlarm::getId);
|
|
|
+ List<BaseAlarm> records = this.list(queryWrapper);
|
|
|
+ if(records.size()>0){
|
|
|
+ List<String> devList = new ArrayList<>();
|
|
|
+ for(int i=0;i<records.size();i++){
|
|
|
+ devList.add(records.get(i).getDeviceId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(devList.size() > 0){
|
|
|
+ LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper1.in(DmpDeviceInfo::getDeviceId,devList)
|
|
|
+ .eq(DmpDeviceInfo::getDeleteFlag,0);
|
|
|
+ List<DmpDeviceInfo> deviceInfo = dmpDeviceInfoService.list(queryWrapper1);
|
|
|
+ if(CollectionUtils.isNotEmpty(deviceInfo)){
|
|
|
+ for(int i=0;i<records.size();i++){
|
|
|
+ for(int j=0;j<deviceInfo.size();j++){
|
|
|
+ if(records.get(i).getDeviceId().equals(deviceInfo.get(j).getDeviceId())){
|
|
|
+ records.get(i).setDeviceName(deviceInfo.get(j).getDeviceName());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for(int i=0;i<records.size();i++){
|
|
|
+ BaseAlarmType baseAlarmType = baseMapper.getAlarmTypeOne(records.get(i).getAlarmType());
|
|
|
+ if(baseAlarmType != null){
|
|
|
+ records.get(i).setTypeImg(baseAlarmType.getTypeImg());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(baseAlarmListVO.getDeviceName())){
|
|
|
+ list = records.stream().filter(e -> baseAlarmListVO.getDeviceName().equals(e.getDeviceName())).collect(Collectors.toList());
|
|
|
+ }else {
|
|
|
+ if(records.size()>0){
|
|
|
+ for(int k=0;k<records.size();k++){
|
|
|
+ list.add(records.get(k));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ int total = 0;
|
|
|
+ if(list.size()>0){
|
|
|
+ total = list.size();
|
|
|
+ }
|
|
|
+ int current = 0;
|
|
|
+ Integer pageNum = baseAlarmListVO.getCurrent();
|
|
|
+ Integer pageSize = baseAlarmListVO.getSize();
|
|
|
+ if(pageNum != null && pageSize >0){
|
|
|
+ current = (pageNum-1)*pageSize;
|
|
|
+ }
|
|
|
+ List<BaseAlarm> info = list.stream().sorted(Comparator.comparing(BaseAlarm::getId,Comparator.reverseOrder())).skip(current).limit(pageSize).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return new CommonPage<BaseAlarm>(info,total,pageSize,pageNum);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
public List<BaseAlarm> getScreenAlarmList(){
|
|
|
|
|
|
LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
|