|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | Date lastMonth =  DateUtil.addMonthToDate(month,-1);//上月 | 
|---|
|  |  |  | Date year = Utils.Date.getStart(new Date());//今年 | 
|---|
|  |  |  | Date lastYear = DateUtil.addYearToDate(year,-1);//去年 | 
|---|
|  |  |  | log.error("1、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | List<PlatformJob>  monthNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | 
|---|
|  |  |  | .select(PlatformJob::getStatus,PlatformJob::getStatus) | 
|---|
|  |  |  | .select(PlatformJob::getType,PlatformJob::getType) | 
|---|
|  |  |  | .eq(PlatformJob::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) | 
|---|
|  |  |  | //                        .in(PlatformJob::getType,Constants.ONE,Constants.THREE) | 
|---|
|  |  |  | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(), | 
|---|
|  |  |  | Constants.PlatformJobStatus.LEAVED.getKey(), | 
|---|
|  |  |  | Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) | 
|---|
|  |  |  | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(month)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(month)+"') ")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("2、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | List<PlatformJob>  yearNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | 
|---|
|  |  |  | .in(PlatformJob::getType,Constants.ONE,Constants.THREE) | 
|---|
|  |  |  | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) | 
|---|
|  |  |  | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(year)+"')   and done_date<=  now()  ")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("3、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | List<PlatformJob>  monthLastNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | 
|---|
|  |  |  | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.LEAVED.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) | 
|---|
|  |  |  | .apply("year(done_date) = year('"+DateUtil.getPlusTime2(lastMonth)+"') and month(done_date) = month('"+DateUtil.getPlusTime2(lastMonth)+"') and  done_date<= '" | 
|---|
|  |  |  | +DateUtil.getPlusTime2(lastMonth)+"'")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("4、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | List<PlatformJob> yearLastNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | .selectAs(PlatformJob::getId,PlatformJob::getId) | 
|---|
|  |  |  | 
|---|
|  |  |  | data.setMonthLastOutTotal(getSumTotalByList(monthLastNum,null,null) );//上月出库量 | 
|---|
|  |  |  | data.setYearOutTotal(getSumTotalByList(yearNum,null,null)  );//本年出库量 | 
|---|
|  |  |  | data.setYearLastOutTotal(getSumTotalByList(yearLastNum,null,null) );//去年出库量 | 
|---|
|  |  |  | data.setMonthOutTimes(monthNum!=null?monthNum.size():0); | 
|---|
|  |  |  | data.setMonthOutTimes(monthNum!=null?monthNum.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)||Constants.equalsInteger(i.getType(),Constants.THREE)).collect(Collectors.toList()).size():0); | 
|---|
|  |  |  | data.setYearOutTimes(yearNum!=null?yearNum.size():0); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("5、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | //==========今天之前未完成出入库任务 | 
|---|
|  |  |  | List<PlatformJob> beforeJobNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | 
|---|
|  |  |  | .apply("   to_days(create_date) < to_days(now()) ") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("6、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | //==========今天出入库完成量 | 
|---|
|  |  |  | List<PlatformJob> currentDoneNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | 
|---|
|  |  |  | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey()) | 
|---|
|  |  |  | .apply(" to_days(done_date) = to_days(now())")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("7、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | //==========今天下发出入库任务 未完成的---- | 
|---|
|  |  |  | List<PlatformJob> currentNum = platformJobMapper.selectJoinList(PlatformJob.class, | 
|---|
|  |  |  | new MPJLambdaWrapper<PlatformJob>() | 
|---|
|  |  |  | 
|---|
|  |  |  | .notIn(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey()) | 
|---|
|  |  |  | .apply(" to_days(create_date) = to_days(now()) and done_date is null   ")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.error("8、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | BigDecimal beforeOutNum = (getSumTotalByList(beforeJobNum,0,null));//今天之前未完成出库任务 | 
|---|
|  |  |  | log.error("9、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | BigDecimal currentOutNum = (getSumTotalByList(currentNum,0,null));//今天下发出库任务 | 
|---|
|  |  |  | log.error("10、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | BigDecimal beforeInNum = (getSumTotalByList(beforeJobNum,1,null));//今天之前未完成入库任务 | 
|---|
|  |  |  | log.error("11、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | BigDecimal currentInNum = (getSumTotalByList(currentNum,1,null));//今天下发入库任务 | 
|---|
|  |  |  | log.error("12、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setCurrentInDoneNum(getSumTotalByList(currentDoneNum,1,1));//今日完成量 | 
|---|
|  |  |  | log.error("13、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setCurrentOutDoneNum(getSumTotalByList(currentDoneNum,0,1));//今日完成量 | 
|---|
|  |  |  | log.error("14、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setCurrentInNum(beforeInNum.add(data.getCurrentInDoneNum()).add(currentInNum));//当前入库总任务成量 | 
|---|
|  |  |  | log.error("15、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setCurrentOutNum(beforeOutNum.add(data.getCurrentOutDoneNum()).add(currentOutNum));//当前出库总任务成量 | 
|---|
|  |  |  | log.error("16、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setTodayOutRate(getDayTotalRata(data.getCurrentOutDoneNum(),DateUtil.getToday()));//当日出库效率 | 
|---|
|  |  |  | log.error("17、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setTodayInRate(getDayTotalRata(data.getCurrentInDoneNum(),DateUtil.getToday()));//当日入库效率 | 
|---|
|  |  |  | data.setMonthOutRate(getMonthRata(monthNum,Constants.ZERO));//本月出库效率 | 
|---|
|  |  |  | data.setMonthInRate(getMonthRata(monthNum,Constants.ONE));//本月出库效率 | 
|---|
|  |  |  | log.error("18、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | //查询本月全部日志 | 
|---|
|  |  |  | List<PlatformLog> monthLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() | 
|---|
|  |  |  | .eq(PlatformLog::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .and(i->i.isNotNull(PlatformLog::getParam1).or().isNotNull(PlatformLog::getParam2)) | 
|---|
|  |  |  | .apply("year(CREATE_DATE) = year('"+DateUtil.getPlusTime2(month)+"') and month(CREATE_DATE) = month('"+DateUtil.getPlusTime2(month)+"') ") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.setMonthOutRate(getMonthRata(monthLogList,monthNum,Constants.ZERO));//本月出库效率 | 
|---|
|  |  |  | log.error("19、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | data.setMonthInRate(getMonthRata(monthLogList,monthNum,Constants.ONE));//本月入库效率 | 
|---|
|  |  |  | log.error("20、=====================>"+DateUtil.getCurrDateTime()); | 
|---|
|  |  |  | //------------今日出入库效率---------------- | 
|---|
|  |  |  | //        BigDecimal outHours = getTotalDoneTimes(currentDoneNum,0);// | 
|---|
|  |  |  | //        BigDecimal inHours = getTotalDoneTimes(currentDoneNum,1);// | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal getMonthRata(List<PlatformJob> list, Integer type) { | 
|---|
|  |  |  | private BigDecimal getMonthRata(List<PlatformLog> monthLogList,List<PlatformJob> list, Integer type) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | if(list==null || list.size() == 0){ | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | 
|---|
|  |  |  | filter(i->jobDate.equals(DateUtil.formatDate(i.getDoneDate(),"yyyy-MM-dd"))).collect(Collectors.toList()); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(platformJobList)){ | 
|---|
|  |  |  | //获取今天的 | 
|---|
|  |  |  | r = r.add(this.getDayTotalRata(getSumTotalByList(platformJobList,type,null),jobDate)); | 
|---|
|  |  |  | r = r.add(this.getDayTotalForMonthRata(monthLogList,getSumTotalByList(platformJobList,type,null),jobDate)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | r = r.divide(new BigDecimal(Integer.toString(jobList.size())),2,BigDecimal.ROUND_HALF_UP); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private BigDecimal getDayTotalForMonthRata(List<PlatformLog> allList ,BigDecimal totalAmount,String today) { | 
|---|
|  |  |  | BigDecimal r = new BigDecimal(0); | 
|---|
|  |  |  | //查询今日最早/最晚的作业数据 | 
|---|
|  |  |  | List<PlatformLog> platformLogList = allList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(today)).collect(Collectors.toList()); | 
|---|
|  |  |  | //                platformLogMapper.selectList(new QueryWrapper<PlatformLog>() | 
|---|
|  |  |  | //                .lambda() | 
|---|
|  |  |  | //                .apply(" (  DATE_FORMAT( param1 ,'%Y-%m-%d' ) =  '"+today+"' or DATE_FORMAT( param2 ,'%Y-%m-%d' )  =  '"+today+"' ) ") | 
|---|
|  |  |  | //        ); | 
|---|
|  |  |  | if(totalAmount.compareTo(BigDecimal.ZERO)==0||CollectionUtils.isEmpty(platformLogList)){ | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(platformLogList!=null && platformLogList.size()>0){ | 
|---|
|  |  |  | return this.getWorkTime(totalAmount,platformLogList,today); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(platformLogList!=null && platformLogList.size()>0){ | 
|---|
|  |  |  | return this.getWorkTime(totalAmount,platformLogList); | 
|---|
|  |  |  | return this.getWorkTime(totalAmount,platformLogList,today); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param platformLogList | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList){ | 
|---|
|  |  |  | public BigDecimal getWorkTime(BigDecimal totalAmount,List<PlatformLog> platformLogList,String today){ | 
|---|
|  |  |  | if(CollectionUtils.isEmpty(platformLogList)){ | 
|---|
|  |  |  | return BigDecimal.ZERO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //获取开始时间 | 
|---|
|  |  |  | List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam1()).getTime()).collect(Collectors.toList()); | 
|---|
|  |  |  | Long startTime  = Collections.min(startTimeList); | 
|---|
|  |  |  | List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1())) | 
|---|
|  |  |  | .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  = null ; | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(startTimeList)){ | 
|---|
|  |  |  | startTime = Collections.min(startTimeList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //获取结束时间 | 
|---|
|  |  |  | List<Long> endTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam2())).map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam2()).getTime()).collect(Collectors.toList()); | 
|---|
|  |  |  | Long endTime = Collections.max(endTimeList); | 
|---|
|  |  |  | List<Long> endTimeList = platformLogList.stream() | 
|---|
|  |  |  | .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 = 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"; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean notInList(String transportCode, List<String> planCodes) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return r ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|