zxl
2025-02-27 58b691e9cfe1e5e1ae8a62c8b66f1995eaad0e9e
导出osd问题 以及缺少小时改分钟
2个文件已修改
49 ■■■■■ 已修改文件
ycl-server/src/main/java/com/ycl/api/YS/YSApi.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/api/YS/YSApi.java
@@ -6,6 +6,7 @@
import com.ycl.api.YS.lib.NetDEVSDKLib;
import com.ycl.api.YS.login.Login;
import com.ycl.platform.domain.result.OSDResult;
import com.ycl.utils.StringUtils;
import enumeration.DeviceType;
import lombok.extern.slf4j.Slf4j;
@@ -91,25 +92,37 @@
                return null;
            }
            stOSDInfo.read();
            //省份
            String name = new String(stOSDInfo.stNameOSD.szOSDText, StandardCharsets.UTF_8).trim();
            osdResult.setOSD1(name);
//            log.info("name"+name);
            int num = 0;
            for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) {
                String text = new String(osd.szOSDText, StandardCharsets.UTF_8).trim();
//                log.info("num:"+num+",texr:"+text);
                if (num == 0) {
                    osdResult.setOSD2(text);
                } else if (num == 1) {
                    osdResult.setOSD3(text);
                } else if (num == 2) {
                    osdResult.setName(text);
                } else if (num == 3) {
                    osdResult.setOSD4(text);
            if (StringUtils.isNotEmpty(name) && name.contains("|")){
                String[] osdNames = name.split("\\|");
                osdResult.setOSD1(osdNames[0]);
                osdResult.setOSD2(osdNames[1]);
                osdResult.setOSD3(osdNames[2]);
                osdResult.setName(osdNames[3]);
            }else {
                //省份
                osdResult.setOSD1(name);
//                log.info("YSname"+name);
                int num = 0;
                for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) {
                    String text = new String(osd.szOSDText, StandardCharsets.UTF_8).trim();
//                    log.info("YSnum:"+num+",YStexr:"+text);
                    if (num == 0) {
                        osdResult.setOSD2(text);
                    } else if (num == 1) {
                        osdResult.setOSD3(text);
                    } else if (num == 2) {
                        osdResult.setName(text);
                    } else if (num == 3) {
                        osdResult.setOSD4(text);
                    }
                    num++;
                }
                num++;
            }
            //登出
            YSInit.netdevsdk.NETDEV_Logout(lpUserID);
            osdResult.setDeviceBrand(DeviceType.YS.getType());
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -1419,12 +1419,12 @@
    private void setLoseDaily(VideoDailyExp videoDailyExp, List<RecordMetaDSumResult> recordResults) throws NoSuchFieldException, IllegalAccessException {
        //一个设备当月在线情况
        for (RecordMetaDSumResult recordResult : recordResults) {
            int dayOfMonth = DateUtils.getDayOfMonth(recordResult.getStatTime());
            int dayOfMonth = DateUtils.getDayOfMonth(recordResult.getStatTime());  //获取启动日期是当月第几天
            //反射赋值,字段统一定义为day+1,2,3...
            Field field = videoDailyExp.getClass().getDeclaredField("day" + dayOfMonth);
            field.setAccessible(true);
            //防止转换为科学计数法
            BigDecimal bigDecimal = BigDecimal.valueOf(recordResult.getMissDuration() == null ? 0 : recordResult.getMissDuration());
            BigDecimal bigDecimal = BigDecimal.valueOf(recordResult.getMissDuration() == null ? 0 : (recordResult.getMissDuration()) * 60);
            field.set(videoDailyExp, bigDecimal.toString());
        }
    }