liubing před 3 roky
rodič
revize
b4479e4fe5

+ 12 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/YsDeviceService.java

@ -413,10 +413,18 @@ public class YsDeviceService {
                return result;
            }
            tmp.sort(Comparator.comparing(obj -> Long.parseLong(((LinkedHashMap) obj).get("startTime").toString())));
            LinkedHashMap mergeTmpirst = null;
            LinkedHashMap mergeTmp = null;
            for (int i=0;i<tmp.size();i++){
                LinkedHashMap mapTmp = tmp.getObject(i,LinkedHashMap.class);
            Iterator<Object> arrIterator = tmp.iterator();
            while (arrIterator.hasNext()) {
                LinkedHashMap mapTmp = (LinkedHashMap) arrIterator.next();
                Long startTimeStr =  Long.parseLong(mapTmp.get("startTime").toString()) ;
                long current = System.currentTimeMillis();
                long toDayZero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
                if (toDayZero-startTimeStr>0){//去除开始时间不为当天是时间段
                    arrIterator.remove();
                    continue;
                }
                Long endTimeStr = Long.parseLong(mapTmp.get("endTime").toString()) ;
                String startTimeDate = DateUtil.dateToStrLong(new Date(startTimeStr));
                String endTimeDate = DateUtil.dateToStrLong(new Date(endTimeStr));
@ -436,11 +444,10 @@ public class YsDeviceService {
                }
                if (startTimeStr==Long.parseLong(mergeTmp.get("endTime").toString())){//时间区间相连
                    startTimeStr =  Long.parseLong(mergeTmp.get("startTime").toString()) ;
                    Long videoLongTmp = Long.parseLong(mergeTmp.get("videoLong").toString());
                    videoLong = (endTimeStr-startTimeStr)/1000;
                    mergeTmp.put("endTime",mapTmp.get("endTime"));
                    mergeTmp.put("endTimeDate",endTimeDate);
                    mergeTmp.put("videoLong",videoLong+videoLongTmp);
                    mergeTmp.put("videoLong",videoLong);
                }else{
                    timeTmp.add(mergeTmp);
                    mergeTmp = new LinkedHashMap();
@ -454,7 +461,7 @@ public class YsDeviceService {
                    mergeTmp.put("channelNo",mapTmp.get("channelNo"));
                    mergeTmp.put("videoLong",videoLong);
                }
                if (i==tmp.size()-1){
                if (!arrIterator.hasNext()){
                    timeTmp.add(mergeTmp);
                }
            }

+ 6 - 0
svr/svr-cloud-device/pom.xml

@ -145,6 +145,12 @@
            <artifactId>bcprov-ext-jdk16</artifactId>
            <version>1.46</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-yarn-api</artifactId>
            <version>2.7.3</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 126 - 3
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/YsDeviceService.java