|  |  | 
 |  |  |     private TmsService tmsService; | 
 |  |  |     @Autowired | 
 |  |  |     private PlatformDeviceMapper platformDeviceMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private CategoryMapper categoryMapper; | 
 |  |  |     @Value("${debug_model}") | 
 |  |  |     private Boolean isDebug; | 
 |  |  |     /** | 
 |  |  | 
 |  |  |         }*/ | 
 |  |  |         return list; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public  WaningEventDataVO warningEventData(Integer type){ | 
 |  |  |         WaningEventDataVO lastResult = new WaningEventDataVO(); | 
 |  |  | 
 |  |  |         request.setPageSize(1000); | 
 |  |  |         request.setFiledOptions(new ArrayList<>()); | 
 |  |  |         request.setSorts(new ArrayList<>()); | 
 |  |  |         request.setFetchImg(true); | 
 |  |  |         RuleEventFiledOptionsRequest file = new RuleEventFiledOptionsRequest(); | 
 |  |  |         file.setFieldName("event_type"); | 
 |  |  |         file.setFieldValue("131588,131593");//安防告警和人员告警 | 
 |  |  |         //安防事件划分方式: | 
 |  |  |         //重点区域:重点人员-1644175361、区域入侵-1644175361、陌生人-1644171265、车辆违停-1644171265 | 
 |  |  |         //危险行为:人员倒地-1644171265、未带安全帽-422000002、抽烟-422000000、打电话-422000001、睡岗-422400001、离岗-422400000 | 
 |  |  |         file.setFieldValue("131588,131593,1644171265,422000002,422000000,422000001,422400001,422400000,1644175361,1644175361,1644171265,1644171265");//安防告警和人员告警 | 
 |  |  |         file.setType("in"); | 
 |  |  |         if(type == 1){ | 
 |  |  |             file.setFieldValue("131588");//安防告警 | 
 |  |  |             file.setFieldValue("131588,1644175361,1644175361,1644171265,1644171265");//安防告警 区域入侵 | 
 |  |  |         }else  if(type == 2){ | 
 |  |  |             file.setFieldValue("131593");//人员告警 | 
 |  |  |             file.setFieldValue("131593,1644171265,422000002,422000000,422000001,422400001,422400000");//人员告警 危险行为 | 
 |  |  |         } | 
 |  |  |         request.getFiledOptions().add(file); | 
 |  |  |  | 
 |  |  |         RuleEventFiledOptionsRequest fileLte = new RuleEventFiledOptionsRequest(); | 
 |  |  |         fileLte.setFieldName("happen_time"); | 
 |  |  |         fileLte.setFieldValue(DateUtil.formatDate(Utils.Date.getEnd(new Date()),"yyyy-MM-dd HH:mm:ss")); | 
 |  |  |         fileLte.setType("lte"); | 
 |  |  |         request.getFiledOptions().add(fileLte); | 
 |  |  |  | 
 |  |  |         RuleEventFiledOptionsRequest fileGte = new RuleEventFiledOptionsRequest(); | 
 |  |  |         fileGte.setFieldName("happen_time"); | 
 |  |  |         fileGte.setFieldValue(DateUtil.formatDate(Utils.Date.getStart(new Date()),"yyyy-MM-dd HH:mm:ss")); | 
 |  |  |         fileGte.setType("gte"); | 
 |  |  |         request.getFiledOptions().add(fileGte); | 
 |  |  |  | 
 |  |  |         RuleEventFiledOptionsRequest fileStatus = new RuleEventFiledOptionsRequest(); | 
 |  |  |         fileStatus.setFieldName("handle_status"); | 
 |  |  |         fileStatus.setFieldValue("99"); | 
 |  |  |         fileStatus.setType("neq"); | 
 |  |  |         request.getFiledOptions().add(fileStatus); | 
 |  |  |  | 
 |  |  |         SortRequest sort = new SortRequest(); | 
 |  |  |         sort.setSortField("happen_time"); | 
 |  |  |         sort.setSortType("desc"); | 
 |  |  | 
 |  |  |                     try { | 
 |  |  |                         if(DateUtil.getISO8601DateByStr(r.getHappen_time()).getTime() < Utils.Date.getStart(new Date()).getTime()){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if(StringUtils.equals(r.getStatus(),"99")){ | 
 |  |  |                            continue; | 
 |  |  |                         } | 
 |  |  |                     }catch (Exception e){ | 
 |  |  |                     } | 
 |  |  | 
 |  |  |             BaseResponse<BaseListPageResponse<FindHomeAlarmInfoPageResponse>> response = HKService.findHomeAlarmInfoPage(param); | 
 |  |  |             if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,海康同步数据失败~"); | 
 |  |  |             } | 
 |  |  |             if(Objects.nonNull(response.getData().getList())){ | 
 |  |  |                 return data; | 
 |  |  |             } | 
 |  |  |             for(FindHomeAlarmInfoPageResponse r : response.getData().getList()){ | 
 |  |  |                 AlarmEventDataVO t = new AlarmEventDataVO(); | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 【消防管控】看板-告警信息集合 | 
 |  |  |      * | 
 |  |  |      * @param type 0/null  = 当天;1=当月;2=当年 | 
 |  |  |      * @return | 
 |  |  |      * | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public   AlarmDataVO alarmDataSumByCate(){ | 
 |  |  |         AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(Utils.Date.getStart(new Date())) | 
 |  |  |     public   AlarmDataVO alarmDataSumByCate(Integer type){ | 
 |  |  |         Date startDate = Utils.Date.getStart(new Date()); | 
 |  |  |         if(Objects.nonNull(type)){ | 
 |  |  |             if(Constants.equalsInteger(type,Constants.TWO)){ | 
 |  |  |                 startDate = Utils.Date.getStart(DateUtil.getFirstThisYearDate()); | 
 |  |  |             }else if(Constants.equalsInteger(type,Constants.ONE)){ | 
 |  |  |                 startDate = Utils.Date.getStart(DateUtil.getFirstThisMonthDate()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         AlarmDataVO alarmDataVO = getAlertDataByStartEndTime(DateUtil.getPlusTime2(startDate) | 
 |  |  |                 ,(DateUtil.getPlusTime2(new Date()))); | 
 |  |  |         return  alarmDataVO; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         } | 
 |  |  |         //获取开始时间 | 
 |  |  |         List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1())) | 
 |  |  |                 .filter(i->DateUtil.formatDate(null,i.getParam1()).equals(today)) | 
 |  |  |                 .filter(i->Objects.nonNull(i.getParam1())&&i.getParam1().indexOf(today)>=0) | 
 |  |  |                 .map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam1()).getTime()).collect(Collectors.toList()); | 
 |  |  |         Long startTime  = Collections.min(startTimeList); | 
 |  |  |         Long startTime  = null ; | 
 |  |  |         if(CollectionUtils.isNotEmpty(startTimeList)){ | 
 |  |  |             startTime = Collections.min(startTimeList); | 
 |  |  |         } | 
 |  |  |         //获取结束时间 | 
 |  |  |         List<Long> endTimeList = platformLogList.stream() | 
 |  |  |                 .filter(i->Objects.nonNull(i.getParam2())&&DateUtil.formatDate(null,i.getParam2()).equals(today)) | 
 |  |  |                 .filter(i->Objects.nonNull(i.getParam2())&&i.getParam2().indexOf(today)>=0) | 
 |  |  |                 .map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam2()).getTime()).collect(Collectors.toList()); | 
 |  |  |         Long endTime = Collections.max(endTimeList); | 
 |  |  |         Long endTime = null ; | 
 |  |  |         if(CollectionUtils.isNotEmpty(endTimeList)){ | 
 |  |  |             endTime = Collections.max(endTimeList); | 
 |  |  |         } | 
 |  |  |         if(Objects.isNull(startTime) | 
 |  |  |             || Objects.isNull(endTime) || (startTime>=endTime)){ | 
 |  |  |             return BigDecimal.ZERO; | 
 |  |  |         } | 
 |  |  |         return   totalAmount.divide(new BigDecimal(( endTime - startTime )+"").divide(new BigDecimal("3600000"),2,BigDecimal.ROUND_HALF_UP),2,BigDecimal.ROUND_HALF_UP) ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private BigDecimal  getSumTotalByList(List<PlatformJob> list,Integer type,Integer status) { | 
 |  |  | 
 |  |  |         data.setDeviceTypeList(list); | 
 |  |  |         Long totalNum =hiddenDangerMapper.selectCount(new QueryWrapper<HiddenDanger>().lambda() | 
 |  |  |                 .eq(HiddenDanger::getIsdeleted,Constants.ZERO ) | 
 |  |  |                 .apply("to_days(create_date) = to_days(now())" ) ); | 
 |  |  |                 .apply(" DATE_FORMAT(create_date, '%Y-%m')  = DATE_FORMAT(now(), '%Y-%m')  " ) ); | 
 |  |  |         data.setDangerTotalNum(totalNum !=null?totalNum.intValue():0);//今日隐患数量 | 
 |  |  |         totalNum =hiddenDangerMapper.selectCount(new QueryWrapper<HiddenDanger>().lambda() | 
 |  |  |                 .eq(HiddenDanger::getIsdeleted,Constants.ZERO ) | 
 |  |  |                 .in(HiddenDanger::getStatus,Constants.ONE,Constants.TWO ) | 
 |  |  |                 .apply("to_days(check_date) = to_days(now())" ) ); | 
 |  |  | //                .in(HiddenDanger::getStatus,Constants.ONE,Constants.TWO ) | 
 |  |  |                 .eq(HiddenDanger::getStatus,Constants.ZERO ) | 
 |  |  |                 .apply(" DATE_FORMAT(create_date, '%Y-%m')  = DATE_FORMAT(now(), '%Y-%m')  " ) ); | 
 |  |  |         data.setDangerDealedNum(totalNum !=null?totalNum.intValue():0);//今日处理隐患数量 | 
 |  |  |         return  data; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         data.setInParkCarTotal( | 
 |  |  |                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count() | 
 |  |  |         ); | 
 |  |  |         //在园车辆 | 
 |  |  |         //2025年8月4日09:24:23 更换数据源 不从海康取 | 
 |  |  |         data.setFreeParkingLot(data.getParkingLotTotal()<data.getInParkCarTotal()?Constants.ZERO:data.getParkingLotTotal() - data.getInParkCarTotal()); | 
 |  |  |         //当前在园货车司机总数 | 
 |  |  |         data.setInParkCarUserTotal( | 
 |  |  |                 (int) retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.FIVE)).count() | 
 |  |  |         ); | 
 |  |  | 
 |  |  |                         &&Constants.equalsInteger(i.getCarType(),Constants.RetentionCarType.wxysCar)).count() | 
 |  |  |         ); | 
 |  |  |         data.setVideoPluginUrl(getVideoUrl()); | 
 |  |  |  | 
 |  |  |         data.setOutHyLotTotal(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.OUT_HY_LOT_TOTAL).getCode())); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         data.setInParkCarList(this.getInParkCars(data)); | 
 |  |  |  | 
 |  |  |         return data; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public List<Map<String,Object>> getInParkCars(SecurityBoardVO securityBoardVO){ | 
 |  |  |         List<Map<String,Object>> mapList = categoryMapper.selectJoinMaps(new MPJLambdaWrapper<Category>() | 
 |  |  |                 .select(Category::getName) | 
 |  |  |                 .select(" ( select count(1) from retention r where r.isdeleted = 0 and  r.CATEGORY_PARENT_ID = t.id and r.TYPE = 3   ) as total ") | 
 |  |  |                 .eq(Category::getType,Constants.ONE) | 
 |  |  |                 .eq(Category::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .isNull(Category::getParentId) | 
 |  |  |                 .groupBy(Category::getName) | 
 |  |  |  | 
 |  |  |         ); | 
 |  |  |         if(CollectionUtils.isEmpty(mapList)){ | 
 |  |  |             mapList = new ArrayList<>(); | 
 |  |  |         } | 
 |  |  |         Map<String,Object> map = new HashMap<>(); | 
 |  |  |         map.put("name","未知车辆"); | 
 |  |  |         map.put("total", retentionMapper.selectCount( | 
 |  |  |                 new MPJLambdaWrapper<Retention>() | 
 |  |  |                         .eq(Retention::getIsdeleted,Constants.ZERO) | 
 |  |  |                         .isNull(Retention::getCategoryId) | 
 |  |  |                         .eq(Retention::getCarType,Constants.SIX) | 
 |  |  |                     ) | 
 |  |  |         ); | 
 |  |  |         mapList.add(map); | 
 |  |  |         return mapList; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private String getVideoUrl() { | 
 |  |  |         return  systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()+"plugin/VideoWebPlugin.exe"; | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return r ; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  |