fuliqi
2024-10-10 d268f82d25c25ebdc7a1ea30614f6cda6d3a9ae3
win库+大屏考核指标查询bug
11个文件已修改
67个文件已添加
969 ■■■■ 已修改文件
libs/YS/lib/isf_face_detect.model 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libCloudSDK.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libFAAC.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libG711.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libHW_H265dec_Linux64.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libMP2.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDCodec.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDFace.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDMP4.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDPlayer.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDRM.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDRSA.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNDVideomjpeg.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNetDEVSDK.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libNetDiscovery.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libSDL2.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libcrypto.a 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libcrypto.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libcurl.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libcyassl.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libevent.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libmxml.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libpolarssl.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libssl.a 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libssl.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/libtunnel.so 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/Microsoft.VC90.CRT.manifest 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/Microsoft.VC90.MFC.manifest 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDAO.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDFace.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDPlayer.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDRM_Module.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDRSA.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NDRtmp.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NV12ToARGB_drvapi.ptx 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NetCloudSDK.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NetDEVDiscovery.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/NetDEVSDK.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/RSA.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/avutil_audio_aac.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/dsp_audio_aac.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/dsp_audio_aac_enc.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/dsp_audio_g711.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/dsp_video_h264_1.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/dsp_video_mjpeg.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/fisheye_rectify.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/intel_gpu_dec.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/libcrypto-3-x64.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/libcurl.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/libssl-3-x64.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/libtunnel.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/libwinpthread-1.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/mfc90.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/mfc90u.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/mfcm90.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/mfcm90u.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/msvcm90.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/msvcp120.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/msvcp90.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/msvcr120.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/msvcr90.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/mxml1.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/nvidia_gpu_dec.dll 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/win/pthreadVC2.dll 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/constant/PointHeaderConstant.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/api/DH/lib/LibraryLoad.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/api/YS/YSInit.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/api/YS/lib/BaseFun.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/dataListener/EasyExcelListener.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/MonitorTask.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/UYTask.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/utils/poi/EasyExcelImportUtils.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libs/YS/lib/isf_face_detect.model
Binary files differ
libs/YS/lib/libCloudSDK.so
Binary files differ
libs/YS/lib/libFAAC.so
Binary files differ
libs/YS/lib/libG711.so
Binary files differ
libs/YS/lib/libHW_H265dec_Linux64.so
Binary files differ
libs/YS/lib/libMP2.so
Binary files differ
libs/YS/lib/libNDCodec.so
Binary files differ
libs/YS/lib/libNDFace.so
Binary files differ
libs/YS/lib/libNDMP4.so
Binary files differ
libs/YS/lib/libNDPlayer.so
Binary files differ
libs/YS/lib/libNDRM.so
Binary files differ
libs/YS/lib/libNDRSA.so
Binary files differ
libs/YS/lib/libNDVideomjpeg.so
Binary files differ
libs/YS/lib/libNetDEVSDK.so
Binary files differ
libs/YS/lib/libNetDiscovery.so
Binary files differ
libs/YS/lib/libSDL2.so
Binary files differ
libs/YS/lib/libcrypto.a
Binary files differ
libs/YS/lib/libcrypto.so
Binary files differ
libs/YS/lib/libcurl.so
Binary files differ
libs/YS/lib/libcyassl.so
Binary files differ
libs/YS/lib/libevent.so
Binary files differ
libs/YS/lib/libmxml.so
Binary files differ
libs/YS/lib/libpolarssl.so
Binary files differ
libs/YS/lib/libssl.a
Binary files differ
libs/YS/lib/libssl.so
Binary files differ
libs/YS/lib/libtunnel.so
Binary files differ
libs/YS/win/Microsoft.VC90.CRT.manifest
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC90.CRT"
        version="9.0.21022.8"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" />
</assembly>
libs/YS/win/Microsoft.VC90.MFC.manifest
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC90.MFC"
        version="9.0.21022.8"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="mfc90.dll" /> <file name="mfc90u.dll" /> <file name="mfcm90.dll" /> <file name="mfcm90u.dll" />
</assembly>
libs/YS/win/NDAO.dll
Binary files differ
libs/YS/win/NDFace.dll
Binary files differ
libs/YS/win/NDPlayer.dll
Binary files differ
libs/YS/win/NDRM_Module.dll
Binary files differ
libs/YS/win/NDRSA.dll
Binary files differ
libs/YS/win/NDRtmp.dll
Binary files differ
libs/YS/win/NV12ToARGB_drvapi.ptx
New file
@@ -0,0 +1,423 @@
//
// Generated by NVIDIA NVVM Compiler
// Compiler built on Fri Jul 25 19:36:16 2014 (1406288176)
// Cuda compilation tools, release 6.5, V6.5.13
//
.version 4.1
.target sm_30
.address_size 64
.const .align 4 .u32 constAlpha;
.const .align 4 .b8 constHueColorSpaceMat[36];
.visible .func _Z7YUV2RGBPjPfS0_S0_(
    .param .b64 _Z7YUV2RGBPjPfS0_S0__param_0,
    .param .b64 _Z7YUV2RGBPjPfS0_S0__param_1,
    .param .b64 _Z7YUV2RGBPjPfS0_S0__param_2,
    .param .b64 _Z7YUV2RGBPjPfS0_S0__param_3
)
{
    .reg .s32     %r<4>;
    .reg .f32     %f<24>;
    .reg .s64     %rd<5>;
    ld.param.u64     %rd1, [_Z7YUV2RGBPjPfS0_S0__param_0];
    ld.param.u64     %rd2, [_Z7YUV2RGBPjPfS0_S0__param_1];
    ld.param.u64     %rd3, [_Z7YUV2RGBPjPfS0_S0__param_2];
    ld.param.u64     %rd4, [_Z7YUV2RGBPjPfS0_S0__param_3];
    ld.u32     %r1, [%rd1];
    cvt.rn.f32.u32    %f1, %r1;
    ld.u32     %r2, [%rd1+4];
    cvt.rn.f32.s32    %f2, %r2;
    add.f32     %f3, %f2, 0fC4000000;
    ld.u32     %r3, [%rd1+8];
    cvt.rn.f32.s32    %f4, %r3;
    add.f32     %f5, %f4, 0fC4000000;
    ld.const.f32     %f6, [constHueColorSpaceMat];
    ld.const.f32     %f7, [constHueColorSpaceMat+4];
    mul.f32     %f8, %f3, %f7;
    fma.rn.f32     %f9, %f1, %f6, %f8;
    ld.const.f32     %f10, [constHueColorSpaceMat+8];
    fma.rn.f32     %f11, %f5, %f10, %f9;
    st.f32     [%rd2], %f11;
    ld.const.f32     %f12, [constHueColorSpaceMat+12];
    ld.const.f32     %f13, [constHueColorSpaceMat+16];
    mul.f32     %f14, %f3, %f13;
    fma.rn.f32     %f15, %f1, %f12, %f14;
    ld.const.f32     %f16, [constHueColorSpaceMat+20];
    fma.rn.f32     %f17, %f5, %f16, %f15;
    st.f32     [%rd3], %f17;
    ld.const.f32     %f18, [constHueColorSpaceMat+24];
    ld.const.f32     %f19, [constHueColorSpaceMat+28];
    mul.f32     %f20, %f3, %f19;
    fma.rn.f32     %f21, %f1, %f18, %f20;
    ld.const.f32     %f22, [constHueColorSpaceMat+32];
    fma.rn.f32     %f23, %f5, %f22, %f21;
    st.f32     [%rd4], %f23;
    ret;
}
.visible .func  (.param .b32 func_retval0) _Z13RGBAPACK_8bitfffj(
    .param .b32 _Z13RGBAPACK_8bitfffj_param_0,
    .param .b32 _Z13RGBAPACK_8bitfffj_param_1,
    .param .b32 _Z13RGBAPACK_8bitfffj_param_2,
    .param .b32 _Z13RGBAPACK_8bitfffj_param_3
)
{
    .reg .s32     %r<10>;
    .reg .f32     %f<12>;
    ld.param.f32     %f1, [_Z13RGBAPACK_8bitfffj_param_0];
    ld.param.f32     %f2, [_Z13RGBAPACK_8bitfffj_param_1];
    ld.param.f32     %f3, [_Z13RGBAPACK_8bitfffj_param_2];
    ld.param.u32     %r1, [_Z13RGBAPACK_8bitfffj_param_3];
    mov.f32     %f4, 0f00000000;
    max.f32     %f5, %f1, %f4;
    mov.f32     %f6, 0f437F0000;
    min.f32     %f7, %f5, %f6;
    max.f32     %f8, %f2, %f4;
    min.f32     %f9, %f8, %f6;
    max.f32     %f10, %f3, %f4;
    min.f32     %f11, %f10, %f6;
    cvt.rzi.u32.f32    %r2, %f11;
    cvt.rzi.u32.f32    %r3, %f9;
    shl.b32     %r4, %r3, 8;
    cvt.rzi.u32.f32    %r5, %f7;
    shl.b32     %r6, %r5, 16;
    or.b32      %r7, %r2, %r1;
    or.b32      %r8, %r7, %r4;
    or.b32      %r9, %r8, %r6;
    st.param.b32    [func_retval0+0], %r9;
    ret;
}
.visible .func  (.param .b32 func_retval0) _Z14RGBAPACK_10bitfffj(
    .param .b32 _Z14RGBAPACK_10bitfffj_param_0,
    .param .b32 _Z14RGBAPACK_10bitfffj_param_1,
    .param .b32 _Z14RGBAPACK_10bitfffj_param_2,
    .param .b32 _Z14RGBAPACK_10bitfffj_param_3
)
{
    .reg .s32     %r<13>;
    .reg .f32     %f<12>;
    ld.param.f32     %f1, [_Z14RGBAPACK_10bitfffj_param_0];
    ld.param.f32     %f2, [_Z14RGBAPACK_10bitfffj_param_1];
    ld.param.f32     %f3, [_Z14RGBAPACK_10bitfffj_param_2];
    ld.param.u32     %r1, [_Z14RGBAPACK_10bitfffj_param_3];
    mov.f32     %f4, 0f00000000;
    max.f32     %f5, %f1, %f4;
    mov.f32     %f6, 0f447FC000;
    min.f32     %f7, %f5, %f6;
    max.f32     %f8, %f2, %f4;
    min.f32     %f9, %f8, %f6;
    max.f32     %f10, %f3, %f4;
    min.f32     %f11, %f10, %f6;
    cvt.rzi.u32.f32    %r2, %f11;
    shr.u32     %r3, %r2, 2;
    cvt.rzi.u32.f32    %r4, %f9;
    shl.b32     %r5, %r4, 6;
    and.b32      %r6, %r5, -256;
    cvt.rzi.u32.f32    %r7, %f7;
    shl.b32     %r8, %r7, 14;
    and.b32      %r9, %r8, -65536;
    or.b32      %r10, %r3, %r1;
    or.b32      %r11, %r10, %r6;
    or.b32      %r12, %r11, %r9;
    st.param.b32    [func_retval0+0], %r12;
    ret;
}
.visible .entry Passthru_drvapi(
    .param .u64 Passthru_drvapi_param_0,
    .param .u64 Passthru_drvapi_param_1,
    .param .u64 Passthru_drvapi_param_2,
    .param .u64 Passthru_drvapi_param_3,
    .param .u32 Passthru_drvapi_param_4,
    .param .u32 Passthru_drvapi_param_5
)
{
    .reg .pred     %p<4>;
    .reg .s16     %rs<3>;
    .reg .s32     %r<32>;
    .reg .f32     %f<9>;
    .reg .s64     %rd<16>;
    ld.param.u64     %rd1, [Passthru_drvapi_param_0];
    ld.param.u64     %rd2, [Passthru_drvapi_param_1];
    ld.param.u64     %rd3, [Passthru_drvapi_param_2];
    ld.param.u64     %rd4, [Passthru_drvapi_param_3];
    ld.param.u32     %r3, [Passthru_drvapi_param_4];
    ld.param.u32     %r4, [Passthru_drvapi_param_5];
    mov.u32     %r5, %ctaid.x;
    shl.b32     %r6, %r5, 1;
    mov.u32     %r7, %ntid.x;
    mov.u32     %r8, %tid.x;
    shl.b32     %r9, %r8, 1;
    mad.lo.s32     %r1, %r6, %r7, %r9;
    mov.u32     %r10, %ntid.y;
    mov.u32     %r11, %ctaid.y;
    mov.u32     %r12, %tid.y;
    mad.lo.s32     %r2, %r10, %r11, %r12;
    setp.lt.u32    %p1, %r1, %r3;
    setp.lt.u32    %p2, %r2, %r4;
    and.pred      %p3, %p1, %p2;
    @!%p3 bra     BB3_2;
    bra.uni     BB3_1;
BB3_1:
    cvta.to.global.u64     %rd5, %rd3;
    cvta.to.global.u64     %rd6, %rd1;
    shr.u64     %rd7, %rd4, 2;
    cvt.u32.u64    %r13, %rd7;
    cvt.u32.u64    %r14, %rd2;
    mad.lo.s32     %r15, %r2, %r14, %r1;
    cvt.u64.u32    %rd8, %r15;
    add.s64     %rd9, %rd6, %rd8;
    add.s32     %r16, %r15, 1;
    cvt.u64.u32    %rd10, %r16;
    add.s64     %rd11, %rd6, %rd10;
    ld.global.u8     %rs1, [%rd9];
    cvt.rn.f32.u16    %f1, %rs1;
    ld.global.u8     %rs2, [%rd11];
    cvt.rn.f32.u16    %f2, %rs2;
    mov.f32     %f3, 0f00000000;
    max.f32     %f4, %f1, %f3;
    mov.f32     %f5, 0f437F0000;
    min.f32     %f6, %f4, %f5;
    cvt.rzi.u32.f32    %r17, %f6;
    shl.b32     %r18, %r17, 8;
    shl.b32     %r19, %r17, 16;
    ld.const.u32     %r20, [constAlpha];
    or.b32      %r21, %r17, %r20;
    or.b32      %r22, %r21, %r18;
    or.b32      %r23, %r22, %r19;
    mad.lo.s32     %r24, %r2, %r13, %r1;
    mul.wide.u32     %rd12, %r24, 4;
    add.s64     %rd13, %rd5, %rd12;
    st.global.u32     [%rd13], %r23;
    max.f32     %f7, %f2, %f3;
    min.f32     %f8, %f7, %f5;
    cvt.rzi.u32.f32    %r25, %f8;
    shl.b32     %r26, %r25, 8;
    shl.b32     %r27, %r25, 16;
    or.b32      %r28, %r25, %r20;
    or.b32      %r29, %r28, %r26;
    or.b32      %r30, %r29, %r27;
    add.s32     %r31, %r24, 1;
    mul.wide.u32     %rd14, %r31, 4;
    add.s64     %rd15, %rd5, %rd14;
    st.global.u32     [%rd15], %r30;
BB3_2:
    ret;
}
.visible .entry NV12ToARGB_drvapi(
    .param .u64 NV12ToARGB_drvapi_param_0,
    .param .u64 NV12ToARGB_drvapi_param_1,
    .param .u64 NV12ToARGB_drvapi_param_2,
    .param .u64 NV12ToARGB_drvapi_param_3,
    .param .u32 NV12ToARGB_drvapi_param_4,
    .param .u32 NV12ToARGB_drvapi_param_5
)
{
    .reg .pred     %p<6>;
    .reg .s32     %r<98>;
    .reg .f32     %f<48>;
    .reg .s64     %rd<24>;
    ld.param.u64     %rd3, [NV12ToARGB_drvapi_param_0];
    ld.param.u64     %rd4, [NV12ToARGB_drvapi_param_2];
    ld.param.u64     %rd5, [NV12ToARGB_drvapi_param_3];
    ld.param.u32     %r21, [NV12ToARGB_drvapi_param_4];
    ld.param.u32     %r20, [NV12ToARGB_drvapi_param_5];
    ld.param.u32     %r1, [NV12ToARGB_drvapi_param_1];
    mov.u32     %r22, %ctaid.x;
    shl.b32     %r23, %r22, 1;
    mov.u32     %r24, %ntid.x;
    mov.u32     %r25, %tid.x;
    shl.b32     %r26, %r25, 1;
    mad.lo.s32     %r2, %r23, %r24, %r26;
    mov.u32     %r27, %ntid.y;
    mov.u32     %r28, %ctaid.y;
    mov.u32     %r29, %tid.y;
    mad.lo.s32     %r3, %r27, %r28, %r29;
    setp.lt.u32    %p1, %r2, %r21;
    setp.lt.u32    %p2, %r3, %r20;
    and.pred      %p3, %p1, %p2;
    @!%p3 bra     BB4_7;
    bra.uni     BB4_1;
BB4_1:
    cvta.to.global.u64     %rd1, %rd4;
    cvta.to.global.u64     %rd6, %rd3;
    shr.u64     %rd7, %rd5, 2;
    cvt.u32.u64    %r4, %rd7;
    mad.lo.s32     %r30, %r3, %r1, %r2;
    cvt.u64.u32    %rd8, %r30;
    add.s64     %rd9, %rd6, %rd8;
    ld.global.u8     %r31, [%rd9];
    shl.b32     %r5, %r31, 2;
    add.s32     %r32, %r30, 1;
    cvt.u64.u32    %rd10, %r32;
    add.s64     %rd11, %rd6, %rd10;
    ld.global.u8     %r33, [%rd11];
    shl.b32     %r6, %r33, 2;
    shr.s32     %r7, %r3, 1;
    add.s32     %r34, %r7, %r20;
    mad.lo.s32     %r35, %r34, %r1, %r2;
    cvt.u64.u32    %rd12, %r35;
    add.s64     %rd13, %rd6, %rd12;
    ld.global.u8     %r94, [%rd13];
    add.s32     %r36, %r35, 1;
    cvt.u64.u32    %rd14, %r36;
    add.s64     %rd2, %rd6, %rd14;
    and.b32      %r37, %r3, 1;
    setp.eq.b32    %p4, %r37, 1;
    @!%p4 bra     BB4_5;
    bra.uni     BB4_2;
BB4_2:
    ld.global.u8     %r95, [%rd2];
    shr.u32     %r38, %r20, 1;
    add.s32     %r39, %r38, -1;
    setp.ge.u32    %p5, %r7, %r39;
    @%p5 bra     BB4_4;
    add.s32     %r40, %r20, %r7;
    add.s32     %r41, %r40, 1;
    mad.lo.s32     %r42, %r41, %r1, %r2;
    cvt.u64.u32    %rd16, %r42;
    add.s64     %rd17, %rd6, %rd16;
    ld.global.u8     %r43, [%rd17];
    add.s32     %r44, %r94, %r43;
    add.s32     %r45, %r44, 1;
    shr.u32     %r94, %r45, 1;
    add.s32     %r46, %r42, 1;
    cvt.u64.u32    %rd18, %r46;
    add.s64     %rd19, %rd6, %rd18;
    ld.global.u8     %r47, [%rd19];
    add.s32     %r48, %r95, %r47;
    add.s32     %r49, %r48, 1;
    shr.u32     %r95, %r49, 1;
BB4_4:
    shl.b32     %r50, %r94, 12;
    or.b32      %r51, %r50, %r5;
    shl.b32     %r52, %r95, 22;
    or.b32      %r97, %r51, %r52;
    or.b32      %r53, %r50, %r6;
    or.b32      %r96, %r53, %r52;
    bra.uni     BB4_6;
BB4_5:
    shl.b32     %r54, %r94, 12;
    ld.global.u8     %r55, [%rd2];
    shl.b32     %r56, %r55, 22;
    or.b32      %r57, %r54, %r5;
    or.b32      %r97, %r57, %r56;
    or.b32      %r58, %r54, %r6;
    or.b32      %r96, %r58, %r56;
BB4_6:
    bfe.u32     %r59, %r97, 10, 10;
    bfe.u32     %r60, %r97, 20, 10;
    bfe.u32     %r61, %r96, 10, 10;
    bfe.u32     %r62, %r96, 20, 10;
    and.b32      %r63, %r97, 1023;
    cvt.rn.f32.u32    %f1, %r63;
    add.s32     %r64, %r59, -512;
    cvt.rn.f32.s32    %f2, %r64;
    add.s32     %r65, %r60, -512;
    cvt.rn.f32.s32    %f3, %r65;
    ld.const.f32     %f4, [constHueColorSpaceMat];
    ld.const.f32     %f5, [constHueColorSpaceMat+4];
    mul.f32     %f6, %f2, %f5;
    fma.rn.f32     %f7, %f1, %f4, %f6;
    ld.const.f32     %f8, [constHueColorSpaceMat+8];
    fma.rn.f32     %f9, %f3, %f8, %f7;
    ld.const.f32     %f10, [constHueColorSpaceMat+12];
    ld.const.f32     %f11, [constHueColorSpaceMat+16];
    mul.f32     %f12, %f2, %f11;
    fma.rn.f32     %f13, %f1, %f10, %f12;
    ld.const.f32     %f14, [constHueColorSpaceMat+20];
    fma.rn.f32     %f15, %f3, %f14, %f13;
    ld.const.f32     %f16, [constHueColorSpaceMat+24];
    ld.const.f32     %f17, [constHueColorSpaceMat+28];
    mul.f32     %f18, %f2, %f17;
    fma.rn.f32     %f19, %f1, %f16, %f18;
    ld.const.f32     %f20, [constHueColorSpaceMat+32];
    fma.rn.f32     %f21, %f3, %f20, %f19;
    and.b32      %r66, %r96, 1023;
    cvt.rn.f32.u32    %f22, %r66;
    add.s32     %r67, %r61, -512;
    cvt.rn.f32.s32    %f23, %r67;
    add.s32     %r68, %r62, -512;
    cvt.rn.f32.s32    %f24, %r68;
    mul.f32     %f25, %f23, %f5;
    fma.rn.f32     %f26, %f22, %f4, %f25;
    fma.rn.f32     %f27, %f24, %f8, %f26;
    mul.f32     %f28, %f23, %f11;
    fma.rn.f32     %f29, %f22, %f10, %f28;
    fma.rn.f32     %f30, %f24, %f14, %f29;
    mul.f32     %f31, %f23, %f17;
    fma.rn.f32     %f32, %f22, %f16, %f31;
    fma.rn.f32     %f33, %f24, %f20, %f32;
    mov.f32     %f34, 0f00000000;
    max.f32     %f35, %f9, %f34;
    mov.f32     %f36, 0f447FC000;
    min.f32     %f37, %f35, %f36;
    max.f32     %f38, %f15, %f34;
    min.f32     %f39, %f38, %f36;
    max.f32     %f40, %f21, %f34;
    min.f32     %f41, %f40, %f36;
    cvt.rzi.u32.f32    %r69, %f41;
    shr.u32     %r70, %r69, 2;
    cvt.rzi.u32.f32    %r71, %f39;
    shl.b32     %r72, %r71, 6;
    and.b32      %r73, %r72, -256;
    cvt.rzi.u32.f32    %r74, %f37;
    shl.b32     %r75, %r74, 14;
    and.b32      %r76, %r75, -65536;
    ld.const.u32     %r77, [constAlpha];
    or.b32      %r78, %r70, %r77;
    or.b32      %r79, %r78, %r73;
    or.b32      %r80, %r79, %r76;
    mad.lo.s32     %r81, %r3, %r4, %r2;
    mul.wide.u32     %rd20, %r81, 4;
    add.s64     %rd21, %rd1, %rd20;
    st.global.u32     [%rd21], %r80;
    max.f32     %f42, %f27, %f34;
    min.f32     %f43, %f42, %f36;
    max.f32     %f44, %f30, %f34;
    min.f32     %f45, %f44, %f36;
    max.f32     %f46, %f33, %f34;
    min.f32     %f47, %f46, %f36;
    cvt.rzi.u32.f32    %r82, %f47;
    shr.u32     %r83, %r82, 2;
    cvt.rzi.u32.f32    %r84, %f45;
    shl.b32     %r85, %r84, 6;
    and.b32      %r86, %r85, -256;
    cvt.rzi.u32.f32    %r87, %f43;
    shl.b32     %r88, %r87, 14;
    and.b32      %r89, %r88, -65536;
    or.b32      %r90, %r83, %r77;
    or.b32      %r91, %r90, %r86;
    or.b32      %r92, %r91, %r89;
    add.s32     %r93, %r81, 1;
    mul.wide.u32     %rd22, %r93, 4;
    add.s64     %rd23, %rd1, %rd22;
    st.global.u32     [%rd23], %r92;
BB4_7:
    ret;
}
libs/YS/win/NetCloudSDK.dll
Binary files differ
libs/YS/win/NetDEVDiscovery.dll
Binary files differ
libs/YS/win/NetDEVSDK.dll
Binary files differ
libs/YS/win/RSA.dll
Binary files differ
libs/YS/win/avutil_audio_aac.dll
Binary files differ
libs/YS/win/dsp_audio_aac.dll
Binary files differ
libs/YS/win/dsp_audio_aac_enc.dll
Binary files differ
libs/YS/win/dsp_audio_g711.dll
Binary files differ
libs/YS/win/dsp_video_h264_1.dll
Binary files differ
libs/YS/win/dsp_video_mjpeg.dll
Binary files differ
libs/YS/win/fisheye_rectify.dll
Binary files differ
libs/YS/win/intel_gpu_dec.dll
Binary files differ
libs/YS/win/libcrypto-3-x64.dll
Binary files differ
libs/YS/win/libcurl.dll
Binary files differ
libs/YS/win/libssl-3-x64.dll
Binary files differ
libs/YS/win/libtunnel.dll
Binary files differ
libs/YS/win/libwinpthread-1.dll
Binary files differ
libs/YS/win/mfc90.dll
Binary files differ
libs/YS/win/mfc90u.dll
Binary files differ
libs/YS/win/mfcm90.dll
Binary files differ
libs/YS/win/mfcm90u.dll
Binary files differ
libs/YS/win/msvcm90.dll
Binary files differ
libs/YS/win/msvcp120.dll
Binary files differ
libs/YS/win/msvcp90.dll
Binary files differ
libs/YS/win/msvcr120.dll
Binary files differ
libs/YS/win/msvcr90.dll
Binary files differ
libs/YS/win/mxml1.dll
Binary files differ
libs/YS/win/nvidia_gpu_dec.dll
Binary files differ
libs/YS/win/pthreadVC2.dll
Binary files differ
ycl-common/src/main/java/constant/PointHeaderConstant.java
New file
@@ -0,0 +1,13 @@
package constant;
/**
 * 点位导出表头常量
 */
public class PointHeaderConstant {
    public final static String Point_Name = "点位名称(可修改)";
    public final static String Serial_Number = "国标码(不可修改)";
    public final static String IP = "点位IP(可修改)";
    public final static String Province_Tag = "是否省厅标签(可修改)";
    public final static String Impotrant_Command_Image = "是否重点指挥图像(可修改)";
    public final static String Dept_Tag = "是否部级标签(可修改)";
}
ycl-server/src/main/java/com/ycl/api/DH/lib/LibraryLoad.java
@@ -27,7 +27,7 @@
  private static String currentFold;
  /** 动态库需要写入的目录 */
  private static String EXTRACT_PATH = "/deviceSDK/linux64";
//  private static String EXTRACT_PATH = System.getProperty("java.io.tmpdir");
  private static boolean written = false;
  /**
ycl-server/src/main/java/com/ycl/api/YS/YSInit.java
@@ -36,17 +36,17 @@
                System.out.printf("Initialize failed:%d", netdevsdk.NETDEV_GetLastError());
                return;
            }
            try {
                Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class);
                Common.updateStructureByReferenceMethod.setAccessible(true);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
//            try {
//                Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class);
//                Common.updateStructureByReferenceMethod.setAccessible(true);
//            } catch (Exception e) {
//                throw new RuntimeException(e);
//            }
            File file=new File(strPicturePath);
            if(!file.exists()){
                file.mkdir();
            }
//            File file=new File(strPicturePath);
//            if(!file.exists()){
//                file.mkdir();
//            }
            NetDEVSDKLib.NETDEV_REV_TIMEOUT_S pstRevTimeout=new NetDEVSDKLib.NETDEV_REV_TIMEOUT_S();
            pstRevTimeout.dwRevTimeOut=3;
ycl-server/src/main/java/com/ycl/api/YS/lib/BaseFun.java
@@ -48,7 +48,7 @@
        if(OsArch.toLowerCase().startsWith("win32-x86")) {
            loadLibrary = filePath + "\\libs\\win32\\";
        } else if(OsArch.toLowerCase().startsWith("win32-amd64") ) {
            loadLibrary = filePath + "\\libs\\win64\\";
            loadLibrary = filePath + "\\libs\\YS\\win\\";
        }
        String loadSDKLibrary = loadLibrary + "NetDEVSDK";
ycl-server/src/main/java/com/ycl/dataListener/EasyExcelListener.java
New file
@@ -0,0 +1,35 @@
package com.ycl.dataListener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class EasyExcelListener extends AnalysisEventListener<Map<Integer, String>> {
    //表头数据(存储所有的表头数据)
    private List<Map<Integer, String>> headList = new ArrayList<>();
    //数据体
    private List<Map<Integer, String>> dataList = new ArrayList<>();
    //这里会一行行的返回头
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        //存储全部表头数据
        headList.add(headMap);
    }
    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
        dataList.add(data);
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
    }
    public List<Map<Integer, String>> getHeadList() {
        return headList;
    }
    public List<Map<Integer, String>> getDataList() {
        return dataList;
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -766,48 +766,53 @@
    public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception {
        String url = String.format(this.rtspServer + "/api/play/start/%s/%s", deviceId, channelId);
        String result = HttpUtils.sendGet(url);
        log.error("拿到取流响应结果:" + result);
        log.info("拿到取流响应结果:" + result);
        WVPResult wvpResult = JSON.parseObject(result, WVPResult.class);
        String imgUrl = null;
        if (0 == wvpResult.getCode()) {
            log.error("请求成功");
        if (wvpResult.getCode() == 0) {
            JSONObject data = (JSONObject) wvpResult.getData();
            String rtspUrl = data.getString("rtsp"); // 取地址
            log.error("目标地址:" + rtspUrl);
            FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
            String rtspUrl = data.getString("fmp4"); // 取mp4地址
            if (StringUtils.hasText(rtspUrl)) {
                System.out.println("目标地址:" + rtspUrl);
                FFmpegFrameGrabber grabber = null;
                try {
                    grabber = new FFmpegFrameGrabber(rtspUrl);
//                    grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然会丢包很严重
                    grabber.setImageWidth(1920);
                    grabber.setImageHeight(1080);
                    grabber.setFrameRate(25);
//                    grabber.setVideoOption("probesize", "10000"); // 设置捕获分析的最大字节
                    grabber.start();
                    Frame frame = grabber.grabFrame();
                    Frame frame = grabber.grabImage(); // 直接捕获一帧
                    if (frame != null) {
                        //转换图像
                        Java2DFrameConverter converter = new Java2DFrameConverter();
                        BufferedImage srcImage = converter.getBufferedImage(frame);
                        if (srcImage != null) {
                            imgUrl = workOrderNo + "_" + IdUtils.fastSimpleUUID() + ".png";
                            // 生成图片路径
                            String imgPath = PlatformConfig.getProfile() + "/" + imgUrl;
                            System.out.println("图片保存地址:" + imgPath);
                            imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl;
                            //创建文件
                            File file = new File(imgPath);
                            //输出文件
                            ImageIO.write(srcImage, "png", file);
                        }
                        System.out.println("成功捕获一帧");
                        // 将Frame转换为Mat
                        OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();
                        Mat mat = converter.convertToMat(frame);
                        imgUrl = workOrderNo + "_" + IdUtils.fastSimpleUUID() + ".png";
                        // 生成图片路径
                        String imgPath = PlatformConfig.getProfile() + "/" + imgUrl;
                        System.out.println("图片保存地址:" + imgPath);
                        imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl;
                        // 保存图片
                        opencv_imgcodecs.imwrite(imgPath, mat);
                    } else {
                        System.out.println("未捕获到帧");
                    }
                } catch (IOException e) {
                } catch (FrameGrabber.Exception e) {
                    e.printStackTrace();
                } finally {
                    grabber.stop(); // 停止捕获
                    grabber.close(); // 释放资源
                    if (grabber != null) {
                        try {
                            grabber.stop(); // 停止捕获
                        } catch (FrameGrabber.Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        } else {
            System.out.println("请求失败,错误码:" + wvpResult.getCode() + "--" + wvpResult.getMsg());
        }
        System.out.println("图片URL:" + imgUrl);
        return imgUrl;
    }
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -33,6 +33,8 @@
import com.ycl.thread.PointImportCallable;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.poi.EasyExcelImportUtils;
import constant.PointHeaderConstant;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
@@ -250,12 +252,12 @@
        }
        //定义表头列表
        LinkedHashSet<String> headers = new LinkedHashSet<>();
        headers.add("点位名称(可修改)");
        headers.add("国标码(不可修改)");
        headers.add("点位IP(可修改)");
        headers.add("是否省厅标签(可修改)");
        headers.add("是否重点指挥图像(可修改)");
        headers.add("是否部级标签(可修改)");
        headers.add(PointHeaderConstant.Point_Name);
        headers.add(PointHeaderConstant.Serial_Number);
        headers.add(PointHeaderConstant.IP);
        headers.add(PointHeaderConstant.Province_Tag);
        headers.add(PointHeaderConstant.Impotrant_Command_Image);
        headers.add(PointHeaderConstant.Dept_Tag);
        List<String> headersList = new LinkedList<>();
        if (!CollectionUtils.isEmpty(dynamicsHeaders)) {
            //使用链表保证后续补充数据时获取数据顺序一致
@@ -306,6 +308,7 @@
    @Override
    public Result importData(MultipartFile file, Integer unitId, Date startTime, Date endTime, Boolean
            needUpdateUnit) throws IOException {
//        List<Map<String,String>> list = EasyExcelImportUtils.makeData(file);
        Consumer<List<PointExport>> consumer = (dataList) -> {
            try {
                this.updatePoint(dataList, unitId, startTime, endTime, needUpdateUnit);
@@ -316,6 +319,14 @@
            }
        };
        EasyExcel.read(file.getInputStream(), PointExport.class, new CurrencyDataListener(consumer)).headRowNumber(1).doReadAll();
//        for (Map<String, String> map : list) {
//            PointExport pointExport = new PointExport();
//            pointExport.setPointName(map.get(PointHeaderConstant.Point_Name));
//            pointExport.setPointIP(map.get(PointHeaderConstant.IP));
//            pointExport.setSerialNumber(map.get(PointHeaderConstant.Serial_Number));
//        }
//        this.updatePoint(dataList, unitId, startTime, endTime, needUpdateUnit);
//        System.out.println(list);
        return Result.ok();
    }
ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -79,11 +79,11 @@
    @Transactional(rollbackFor = Exception.class)
    public void synchronize() {
        log.info("开始同步mongodb一机一档到数据库");
        Date yesterday = DateUtils.addDays(new Date(), -1);
//        Date yesterday = DateUtils.addDays(new Date(), -1);
        Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
        List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
        //mongo品牌数据
        Query OSDQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
        Query OSDQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
        Map<String, OsdCheckResult> osdMap = mongoTemplate.find(query, OsdCheckResult.class).stream().collect(Collectors.toMap(OsdCheckResult::getDeviceNo, Function.identity()));
        //数据库monitor表数据
        Map<String, TMonitorVO> monitorVOMap = monitorMapper.selectMonitorVOList().stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity()));
@@ -146,8 +146,8 @@
            ywPointMapper.deleteAll();
            ywPointService.saveBatch(ywPointList);
        }
        //新的数据放入Redis中等待考核指标任务使用
        redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
        //新的数据放入Redis中等待考核指标任务使用(弃用,改为标签形式)
//        redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
        log.info("结束同步mongodb一机一档到数据库");
    }
ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -212,6 +212,7 @@
                            }
                            int checkTimes = 1;
                            int offLineTimes = 1;
                            //TODO:BUG
                            Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp());
                            if (!CollectionUtils.isEmpty(map)) {
                                checkTimes = (Integer) map.get("checkTimes") + 1;
@@ -241,6 +242,8 @@
            allOf.get(35, TimeUnit.SECONDS); // 给予额外的5秒来收集结果
        } catch (TimeoutException e) {
            log.warn("部分任务未在指定时间内完成");
        } catch (Exception e2){
            log.error("数据收集异常"+e2);
        }
        dataList = futureList.stream()
ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
@@ -1,6 +1,7 @@
package com.ycl.task;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.config.PlatformConfig;
import com.ycl.platform.domain.entity.DeviceInfo;
import com.ycl.platform.domain.entity.WorkOrderCheckImg;
import com.ycl.platform.domain.vo.DeviceInfoVO;
@@ -8,13 +9,21 @@
import com.ycl.platform.mapper.WorkOrderCheckImgMapper;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.utils.DateUtils;
import com.ycl.utils.uuid.IdUtils;
import constant.Constants;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -47,7 +56,45 @@
//            new ThreadPoolExecutor.CallerRunsPolicy()
//    );
    public void run() {
    public void run() throws FFmpegFrameGrabber.Exception {
//        String rtspUrl = "http://www.w3school.com.cn/i/movie.mp4";
//        if (StringUtils.hasText(rtspUrl)) {
//            FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
//            try {
////                    grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然会丢包很严重
//                grabber.setImageWidth(1920);
//                grabber.setImageHeight(1080);
//                grabber.setFrameRate(25);
//                grabber.start();
//                System.out.println("成功");
//                Frame frame = grabber.grabImage();
//                String imgUrl = null;
//                if (frame != null) {
//                    System.out.println("成功2");
//                    //转换图像
//                    Java2DFrameConverter converter = new Java2DFrameConverter();
//                    BufferedImage srcImage = converter.getBufferedImage(frame);
//                    System.out.println(srcImage);
//                    if (srcImage != null) {
//                        imgUrl = IdUtils.fastSimpleUUID() + ".png";
//                        // 生成图片路径
//                        String imgPath = "/" + imgUrl;
//                        System.out.println("图片保存地址:" + imgPath);
////                        imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl;
//                        //创建文件
//                        File file = new File("D:\\Codes\\zgyw\\"+imgUrl);
//                        //输出文件
//                        ImageIO.write(srcImage, "png", file);
//                    }
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } finally {
//                grabber.stop(); // 停止捕获
////                grabber.close(); // 释放资源
//            }
//        }
        // 查出最近一周的故障的设备
        Date now = new Date();
        Calendar ca = Calendar.getInstance();
@@ -82,7 +129,6 @@
                img.setCreateTime(new Date());
                workOrderCheckImgMapper.insert(img);
            }
        }
    }
        }    }
}
ycl-server/src/main/java/com/ycl/utils/poi/EasyExcelImportUtils.java
New file
@@ -0,0 +1,82 @@
package com.ycl.utils.poi;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.util.IoUtils;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.ycl.dataListener.EasyExcelListener;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class EasyExcelImportUtils {
        /**
         * 动态获取全部列和数据体
         * [stream, parseRowNumber]
         * @return {@link List< Map< String, String>>}
         * @throws
         */
        public static List<Map<String,String>> parseExcelToData(byte[] stream, Integer parseRowNumber) {
            EasyExcelListener readListener = new EasyExcelListener();
            EasyExcelFactory.read(new ByteArrayInputStream(stream)).registerReadListener(readListener).headRowNumber(parseRowNumber).sheet(0).doRead();
            List<Map<Integer, String>> headList = readListener.getHeadList();
            if(CollectionUtils.isEmpty(headList)){
                throw new RuntimeException("Excel表头不能为空");
            }
            List<Map<Integer, String>> dataList = readListener.getDataList();
            if(CollectionUtils.isEmpty(dataList)){
                throw new RuntimeException("Excel数据内容不能为空");
            }
            //获取头部,取最后一次解析的列头数据
            Map<Integer, String> excelHeadIdxNameMap = headList.get(headList.size() -1);
            //封装数据体
            List<Map<String,String>> excelDataList = Lists.newArrayList();
            for (Map<Integer, String> dataRow : dataList) {
                Map<String,String> rowData = new LinkedHashMap<>();
                excelHeadIdxNameMap.entrySet().forEach(columnHead -> {
                    rowData.put(columnHead.getValue(), dataRow.get(columnHead.getKey()));
                });
                excelDataList.add(rowData);
            }
            return excelDataList;
        }
        /**
         * 返回导入的所有数据
         * [file]
         * @return {@link List< Map< String, String>>}
         * @throws
         */
        public static List<Map<String,String>> makeData(MultipartFile file){
            InputStream inputStream = null;//转换成输入流
            try {
                inputStream = file.getInputStream();
            } catch (IOException e) {
                e.printStackTrace();
            }
            byte[] stream = new byte[0];
            try {
                stream = IoUtils.toByteArray(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(stream == null || stream.length == 0){
                return null;
            }
            List<Map<String,String>> dataList = parseExcelToData(stream, 1);//从动态获取全部列和数据体,默认从第一行开始解析数据
            try {
                if(inputStream != null){
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return dataList;
        }
    }
ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml
@@ -139,19 +139,44 @@
    </select>
    <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexCar">
        SELECT
            IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,
            IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,
            IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,
            IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy,
            IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity,
            IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy,
            IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy,
            IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness,
            IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability,
            IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability
        FROM
            t_check_index_car
<!--        SELECT-->
<!--            IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,-->
<!--            IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,-->
<!--            IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,-->
<!--            IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy,-->
<!--            IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity,-->
<!--            IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy,-->
<!--            IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy,-->
<!--            IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness,-->
<!--            IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability,-->
<!--            IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability-->
<!--        FROM-->
<!--            t_check_index_car-->
<!--        <where>-->
<!--            <if test="deptId != null">-->
<!--                AND dept_id = #{deptId}-->
<!--            </if>-->
<!--            <if test="dataScope == 1">-->
<!--                AND examine_tag = 0-->
<!--            </if>-->
<!--            <if test="dataScope == 2">-->
<!--                AND examine_tag = 1-->
<!--            </if>-->
<!--            <if test="dataScope == 3">-->
<!--                AND examine_tag = 2-->
<!--            </if>-->
<!--        </where>-->
<!--        ORDER BY-->
<!--            create_time DESC-->
<!--        <if test="deptId == null">-->
<!--            LIMIT 7-->
<!--        </if>-->
<!--        <if test="deptId != null">-->
<!--            LIMIT 1-->
<!--        </if>-->
        WITH LatestRecords AS (
        SELECT *
        FROM t_check_index_car
        <where>
            <if test="deptId != null">
                AND dept_id = #{deptId}
@@ -166,13 +191,26 @@
                AND examine_tag = 2
            </if>
        </where>
        ORDER BY
            create_time DESC
        ORDER BY create_time DESC
        <if test="deptId == null">
            LIMIT 7
        </if>
        <if test="deptId != null">
            LIMIT 1
        </if>
        )
        SELECT
        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,
        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,
        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,
        IFNULL(ROUND(AVG(vehicle_information_collection_accuracy * 100), 0), 0) AS vehicle_information_collection_accuracy,
        IFNULL(ROUND(AVG(vehicle_capture_integrity * 100), 0), 0) AS vehicle_capture_integrity,
        IFNULL(ROUND(AVG(vehicle_capture_accuracy * 100), 0), 0) AS vehicle_capture_accuracy,
        IFNULL(ROUND(AVG(vehicle_timing_accuracy * 100), 0), 0) AS vehicle_timing_accuracy,
        IFNULL(ROUND(AVG(vehicle_upload_timeliness * 100), 0), 0) AS vehicle_upload_timeliness,
        IFNULL(ROUND(AVG(vehicle_url_availability * 100), 0), 0) AS vehicle_url_availability,
        IFNULL(ROUND(AVG(vehicle_picture_availability * 100), 0), 0) AS vehicle_picture_availability
        FROM
        LatestRecords;
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
@@ -132,17 +132,43 @@
    </select>
    <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexFace">
        SELECT
        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,
        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,
        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,
        IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,
        IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,
        IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,
        IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,
        IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability
        FROM
        t_check_index_face
<!--        SELECT-->
<!--        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,-->
<!--        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,-->
<!--        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,-->
<!--        IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,-->
<!--        IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,-->
<!--        IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,-->
<!--        IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,-->
<!--        IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability-->
<!--        FROM-->
<!--        t_check_index_face-->
<!--        <where>-->
<!--            <if test="deptId != null">-->
<!--                AND dept_id = #{deptId}-->
<!--            </if>-->
<!--            <if test="dataScope == 1">-->
<!--                AND examine_tag = 0-->
<!--            </if>-->
<!--            <if test="dataScope == 2">-->
<!--                AND examine_tag = 1-->
<!--            </if>-->
<!--            <if test="dataScope == 3">-->
<!--                AND examine_tag = 2-->
<!--            </if>-->
<!--        </where>-->
<!--        ORDER BY-->
<!--        create_time DESC-->
<!--        <if test="deptId == null">-->
<!--            LIMIT 7-->
<!--        </if>-->
<!--        <if test="deptId != null">-->
<!--            LIMIT 1-->
<!--        </if>-->
        WITH LatestRecords AS (
        SELECT *
        FROM t_check_index_face
        <where>
            <if test="deptId != null">
                AND dept_id = #{deptId}
@@ -157,13 +183,24 @@
                AND examine_tag = 2
            </if>
        </where>
        ORDER BY
        create_time DESC
        ORDER BY create_time DESC
        <if test="deptId == null">
            LIMIT 7
        </if>
        <if test="deptId != null">
            LIMIT 1
        </if>
        )
        SELECT
        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,
        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,
        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,
        IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,
        IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,
        IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,
        IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,
        IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability
        FROM
        LatestRecords;
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -155,6 +155,70 @@
    </select>
    <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexVideo">
<!--        SELECT-->
<!--        IFNULL(ROUND(AVG(platform_online * 100), 0), 0) AS platform_online,-->
<!--        IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification,-->
<!--        IFNULL(ROUND(AVG(monitor_registration * 100), 0), 0) AS monitor_registration,-->
<!--        IFNULL(ROUND(AVG(archives_rate * 100), 0), 0) AS archives_rate,-->
<!--        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,-->
<!--        IFNULL(ROUND(AVG(video_available * 100), 0), 0) AS video_available,-->
<!--        IFNULL(ROUND(AVG(ministry_site_online * 100), 0), 0) AS ministry_site_online,-->
<!--        IFNULL(ROUND(AVG(ministry_video_available * 100), 0), 0) AS ministry_video_available,-->
<!--        IFNULL(ROUND(AVG(key_site_online * 100), 0), 0) AS key_site_online,-->
<!--        IFNULL(ROUND(AVG(key_video_available * 100), 0), 0) AS key_video_available,-->
<!--        IFNULL(ROUND(AVG(key_annotation_accuracy * 100), 0), 0) AS key_annotation_accuracy,-->
<!--        IFNULL(ROUND(AVG(key_timing_accuracy * 100), 0), 0) AS key_timing_accuracy,-->
<!--        IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online,-->
<!--        IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security-->
<!--        FROM-->
<!--        t_check_index_video-->
<!--        <where>-->
<!--            <if test="deptId != null">-->
<!--                AND dept_id = #{deptId}-->
<!--            </if>-->
<!--            <if test="dataScope == 1">-->
<!--                AND examine_tag = 0-->
<!--            </if>-->
<!--            <if test="dataScope == 2">-->
<!--                AND examine_tag = 1-->
<!--            </if>-->
<!--            <if test="dataScope == 3">-->
<!--                AND examine_tag = 2-->
<!--            </if>-->
<!--        </where>-->
<!--        ORDER BY-->
<!--        create_time DESC-->
<!--        <if test="deptId == null">-->
<!--            LIMIT 7-->
<!--        </if>-->
<!--        <if test="deptId != null">-->
<!--            LIMIT 1-->
<!--        </if>-->
        WITH LatestRecords AS (
        SELECT *
        FROM t_check_index_video
        <where>
            <if test="deptId != null">
                AND dept_id = #{deptId}
            </if>
            <if test="dataScope == 1">
                AND examine_tag = 0
            </if>
            <if test="dataScope == 2">
                AND examine_tag = 1
            </if>
            <if test="dataScope == 3">
                AND examine_tag = 2
            </if>
        </where>
        ORDER BY create_time DESC
        <if test="deptId == null">
            LIMIT 7
        </if>
        <if test="deptId != null">
            LIMIT 1
        </if>
        )
        SELECT
        IFNULL(ROUND(AVG(platform_online * 100), 0), 0) AS platform_online,
        IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification,
@@ -171,29 +235,7 @@
        IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online,
        IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security
        FROM
        t_check_index_video
        <where>
            <if test="deptId != null">
                AND dept_id = #{deptId}
            </if>
            <if test="dataScope == 1">
                AND examine_tag = 0
            </if>
            <if test="dataScope == 2">
                AND examine_tag = 1
            </if>
            <if test="dataScope == 3">
                AND examine_tag = 2
            </if>
        </where>
        ORDER BY
        create_time DESC
        <if test="deptId == null">
            LIMIT 7
        </if>
        <if test="deptId != null">
            LIMIT 1
        </if>
        LatestRecords;
    </select>
    <select id="selectAndDeptName" resultType="com.ycl.platform.domain.entity.CheckIndexVideo">