8个文件已修改
2个文件已添加
112 ■■■■■ 已修改文件
document/合同导入模板 .xlsx 补丁 | 查看 | 原始文档 | blame | 历史
document/自贡运维管理系统 - 操作手册.docx 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/UYTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/VideoTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
document/ºÏͬµ¼ÈëÄ£°å .xlsx
Binary files differ
document/×Ô¹±ÔËά¹ÜÀíϵͳ - ²Ù×÷ÊÖ²á.docx
Binary files differ
ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
@@ -217,16 +217,24 @@
                    for (NET_TITLE_OSD_INFO osd : stuOSD) {
                        String osdStr = null;
                        osdStr = new String(osd.szText, StandardCharsets.UTF_8).trim();
//                        log.info("TEXT:"+osdStr);
                        log.error("TEXT:"+osdStr);
                        if (!StringUtils.isEmpty(osdStr)) {
                            if (num == 0) {
                                osdResult.setOSD1(osdStr);
                            } else if (num == 1) {
                                osdResult.setOSD2(osdStr);
                            } else if (num == 2) {
                                osdResult.setOSD3(osdStr);
                            } else if (num == 3) {
                                osdResult.setName(osdStr);
                            if (osdStr.contains("|")) {
                                String[] osdNames = osdStr.split("\\|");
                                osdResult.setOSD1(osdNames[0]);
                                osdResult.setOSD2(osdNames[1]);
                                osdResult.setOSD3(osdNames[2]);
                                osdResult.setName(osdNames[3]);
                            } else {
                                if (num == 0) {
                                    osdResult.setOSD1(osdStr);
                                } else if (num == 1) {
                                    osdResult.setOSD2(osdStr);
                                } else if (num == 2) {
                                    osdResult.setOSD3(osdStr);
                                } else if (num == 3) {
                                    osdResult.setName(osdStr);
                                }
                            }
                        }
                        num++;
@@ -240,6 +248,7 @@
    /**
     * é’ˆå¯¹åˆ©æ—§è®¾å¤‡èŽ·å–OSD的方法
     *
     * @param serialNumber
     * @param loginId
     * @return
@@ -256,13 +265,13 @@
            log.error("e为空,尝试另一个通道");
            e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 1, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer());
        }
        if(e) {
        if (e) {
            osdInfo4.read();
            NetSDKLib.NET_CUSTOM_TITLE_INFO[] stuCustomTitle = osdInfo4.stuCustomTitle;
            for (NetSDKLib.NET_CUSTOM_TITLE_INFO net_custom_title_info : stuCustomTitle) {
                String name = new String(net_custom_title_info.szText, StandardCharsets.UTF_8).trim();
                log.info("name:{}",name);
                if(StringUtils.isNotEmpty(name) && name.contains("|")){
                log.error("name:{}", name);
                if (StringUtils.isNotEmpty(name) && name.contains("|")) {
                    String[] osdNames = name.split("\\|");
                    //剔除掉空串
//                    List<String> nonEmptyList = new ArrayList<>();
@@ -277,27 +286,28 @@
                    result.setName(osdNames[3]);
                }
            }
        }else {
            log.error(serialNumber,"利旧osd为空");
        } else {
            log.error(serialNumber, "利旧osd为空");
        }
        return result;
    }
    /**
     * èŽ·å–å•ä¸ªé…ç½®
     *
     * @param hLoginHandle ç™»é™†å¥æŸ„
     * @param nChn é€šé“号,-1 è¡¨ç¤ºå…¨é€šé“
     * @param strCmd é…ç½®åç§°
     * @param cmdObject é…ç½®å¯¹åº”的结构体对象
     * @param nChn         é€šé“号,-1 è¡¨ç¤ºå…¨é€šé“
     * @param strCmd       é…ç½®åç§°
     * @param cmdObject    é…ç½®å¯¹åº”的结构体对象
     * @return æˆåŠŸè¿”å›ž true
     */
    public static boolean GetDevConfig(LLong hLoginHandle, int nChn, String strCmd, Structure cmdObject) {
        boolean result = false;
        IntByReference error = new IntByReference(0);
        int nBufferLen = 2*1024*1024;
        int nBufferLen = 2 * 1024 * 1024;
        byte[] strBuffer = new byte[nBufferLen];
        if(netsdk.CLIENT_GetNewDevConfig( hLoginHandle, strCmd , nChn, strBuffer, nBufferLen,error,3000,null)) {
        if (netsdk.CLIENT_GetNewDevConfig(hLoginHandle, strCmd, nChn, strBuffer, nBufferLen, error, 3000, null)) {
            cmdObject.write();
            if (netsdk.CLIENT_ParseData(strCmd, strBuffer, cmdObject.getPointer(),
                    cmdObject.size(), null)) {
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -95,7 +95,7 @@
    /**
     * èŽ·å–æ¢å¤å¼‚å¸¸è®¾å¤‡
     * @param time æ—¶é—´
     * @param monitor æ—¶é—´
     * @return æ•°æ®
     */
    Map<String, String> recoveryException(TMonitorVO monitor);
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -336,6 +336,7 @@
        // æ·»åŠ å›ºå®šæ¡ä»¶
        criteriaList.add(Criteria.where("monitorType").regex(".*" + CheckConstants.Rule_Category_Video + ".*"));
        criteriaList.add(Criteria.where("mongoCreateTime").gte(params.getStartTime()).lte(params.getEndTime()));
        criteriaList.add(Criteria.where("importantTag").is(Boolean.TRUE));
        // æ ¹æ®dataType动态添加条件
        if (params.getDataType() == 1) {
            criteriaList.add(Criteria.where("provinceTag").is(Boolean.TRUE));
@@ -436,6 +437,7 @@
        // æ·»åŠ å›ºå®šæ¡ä»¶
        criteriaList.add(Criteria.where("monitorType").regex(".*" + CheckConstants.Rule_Category_Video + ".*"));
        criteriaList.add(Criteria.where("mongoCreateTime").gte(params.getStartTime()).lte(params.getEndTime()));
        criteriaList.add(Criteria.where("importantCommandImageTag").is(Boolean.TRUE));
        // æ ¹æ®dataType动态添加条件
        if (params.getDataType() == 1) {
            criteriaList.add(Criteria.where("provinceTag").is(Boolean.TRUE));
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -372,16 +372,21 @@
     */
    @Override
    public Map<String, Object> home(HomeQuery monitorQuery) {
        System.out.println(monitorQuery + "~~~~~~~~~~~~~打印");
        Map<String, Object> dataMap = new HashMap<>();
        Map<String, Object> monthMap1 = new HashMap<>();
        Map<String, Object> monthMap2 = new HashMap<>();
        List<Map<String, Object>> home = baseMapper.home(monitorQuery);
        if (ObjectUtils.isNotEmpty(home)) {
            //拿到数据库 å¾ªçŽ¯æŸ¥è¯¢
            System.out.println(home + "~~~~~~~~~~~~~打印");
            for (Map<String, Object> map : home) {
                //得到map的 months键的值  num1键的值 ç»„装为新对象
                monthMap1.put(map.get("months").toString(), map.get("num1"));
                //得到map的 months键的值  num2键的值 ç»„装为新对象
                monthMap2.put(map.get("months").toString(), map.get("num2"));
            }
            //home çš„下标0的 map的 name键的值
            dataMap.put("name", home.get(0).get("name"));
            dataMap.put("state", monthMap1);
            dataMap.put("state2", monthMap2);
ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -76,7 +76,7 @@
    private static final ExecutorService executorService = new ThreadPoolExecutor(16,
            64,
            5000,
            60,
            TimeUnit.SECONDS,
            new ArrayBlockingQueue<>(1000),
            new ThreadPoolExecutor.CallerRunsPolicy()
ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -64,8 +64,8 @@
        //计算点位在线率和重点点位在线率和指挥图像在线率
        Query query = new Query();
        query.addCriteria(Criteria
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
        List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));//<&== æ˜¨å¤©çš„开始时间 < ç»“束时间
        List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);//
        //优云上有车辆和人脸的设备数据,需要过滤出视频设备
        List<String> videoIds = monitorMapper.getVideoIds();
        if(!CollectionUtils.isEmpty(results)){
ycl-server/src/main/resources/application-dev.yml
@@ -42,7 +42,7 @@
#    password: ycl@202466
    url: jdbc:mysql://localhost:3306/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true&allowPublicKeyRetrieval=true
    username: root
    password: 1234
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -487,26 +487,45 @@
        WHERE TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <= #{time}
        ]]>
    </select>
<!-- æŸ¥è¯¢ t_yw_unit ä¸­id ä¸ºï¼Ÿ å¹¶ä¸” t_work_order-->
<!--    <select id="home" resultType="java.util.Map">-->
<!--        SELECT-->
<!--        u.unit_name AS name,-->
<!--        CONCAT(MONTH(w.create_time), '月') AS months,-->
<!--        COUNT(w.id) AS num1,-->
<!--        COUNT(w.id) - COUNT(m.id) AS num2-->
<!--        FROM-->
<!--        t_monitor m-->
<!--        LEFT JOIN t_yw_point p ON m.serial_number = p.serial_number-->
<!--        LEFT JOIN t_yw_unit u ON p.unit_id = u.id-->
<!--        LEFT JOIN t_work_order w ON w.serial_number = p.serial_number-->
<!--        WHERE u.id = #{unitId} AND MONTH(w.create_time) IS NOT NULL-->
<!--       <if test="dateRange != null and dateRange.size > 0">-->
<!--            AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN DATE_FORMAT(#{dateRange[0]}, '%Y-%m') AND DATE_FORMAT(#{dateRange[1]}, '%Y-%m')-->
<!--        </if>-->
<!--        GROUP BY months-->
<!--        ORDER BY months-->
<!--    </select>-->
    <select id="home" resultType="java.util.Map">
        SELECT
        select count(distinct w.serial_number) as num1,
        CASE WHEN( a.num -count(distinct w.serial_number))
        <![CDATA[ < 0 THEN 0 ELSE (a.num -count(distinct w.serial_number)) END as num2  ]]>,
        u.unit_name AS name,
        CONCAT(MONTH(w.create_time), '月') AS months,
        COUNT(w.id) AS num1,
        COUNT(m.id) - COUNT(w.id) AS num2
        FROM
        t_monitor m
        LEFT JOIN t_yw_point p ON m.serial_number = p.serial_number
        LEFT JOIN t_yw_unit u ON p.unit_id = u.id
        LEFT JOIN t_work_order w ON w.serial_number = p.serial_number
        WHERE u.id = #{unitId} AND MONTH(w.create_time) IS NOT NULL
        CONCAT(MONTH(w.create_time), '月') AS months
        from
        (select count(m.id) as num from  t_monitor m where m.serial_number IN (SELECT p.serial_number from  t_yw_unit u,t_yw_point p where p.unit_id = u.id and u.id = #{unitId} AND p.examine_status = 1)
        ) as a
        join
        t_work_order w
        JOIN t_yw_unit u ON u.id = w.unit_id
        where w.unit_id=#{unitId}
        <if test="dateRange != null and dateRange.size > 0">
            AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN DATE_FORMAT(#{dateRange[0]}, '%Y-%m') AND DATE_FORMAT(#{dateRange[1]}, '%Y-%m')
        </if>
        AND w.deleted = 1
        GROUP BY months
        ORDER BY months
    </select>
</select>
    <select id="monitorTotal" resultType="com.ycl.platform.domain.vo.screen.MonitorTotalVO">
        SELECT
            'video' as type,