fuliqi
2024-10-15 99b454f9d696d75368fa4ac340425ccad260f555
动态列完成
13个文件已修改
371 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/DynamicColumnMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/CarTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/ContractTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/UYTask.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/application-prod.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java
@@ -3,8 +3,11 @@
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.result.BaseResult;
import com.ycl.platform.domain.vo.DynamicColumnVO;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
 * 点位在线率
@@ -16,9 +19,13 @@
    private Integer deptId;
    /*** 部门id*/
    private String ip;
    /** 最近监测在线状态 */
    private Boolean online;
    /** 优云/海康检测结果 */
    private Integer online;
    private String onlineStr;
    /** 最近监测在线状态 */
    private Boolean pingOnline;
    private String pingOnlineStr;
    /** 当日监测次数 */
    private Integer checkCount;
    /** 当日离线 */
@@ -28,4 +35,9 @@
    /** 设备名 */
    private String name;
    private WorkOrder workOrder;
    private Integer pointId;
    /**
     * 动态列
     */
    private List<DynamicColumnVO> dynamicColumnList;
}
ycl-server/src/main/java/com/ycl/platform/mapper/DynamicColumnMapper.java
@@ -34,6 +34,7 @@
     */
    List<DynamicColumnVO> getData();
    List<DynamicColumnVO> getDynamicsByIds(@Param("tableName")String tableName,@Param("ids") List<Integer> ids);
    List<String> getHeader(String tableName);
    /**
    *  分页
@@ -44,4 +45,7 @@
    void updateBatch( @Param("updateList") List<DynamicColumnValue> updateList);
    void deleteBatch(@Param("deleteList") List<Integer> deleteList);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -74,10 +74,10 @@
        MongoUtil.setPage(query, params, TIME_FIELD);
        List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
                item.setOnlineStr("在线");
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
                item.setPingOnlineStr("离线");
            }
        });
        params.setDeptTag(-1);
@@ -117,10 +117,10 @@
        MongoUtil.setPage(query, params, TIME_FIELD);
        List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
                item.setOnlineStr("在线");
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
                item.setPingOnlineStr("离线");
            }
        });
        // 统计设备数量
@@ -165,10 +165,10 @@
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
                item.setOnlineStr("在线");
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
                item.setPingOnlineStr("离线");
            }
        });
        Date now = new Date();
@@ -209,10 +209,10 @@
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
                item.setOnlineStr("在线");
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
                item.setPingOnlineStr("离线");
            }
        });
        Date now = new Date();
@@ -912,24 +912,24 @@
        //分页数量
        long total = mongoTemplate.count(query, TMonitorResult.class);
        MongoUtil.setPage(query, params, TIME_FIELD);
        //系统ping的结果
        List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        //TODO:优云在线结果
        params.setDeptTag(-1);
        params.setDeviceType(2);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
                item.setOnlineStr("在线");
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
                item.setPingOnlineStr("离线");
            }
        });
        Date now = new Date();
        List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
                .select(CheckIndexCar::getSiteOnline)
                .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
                .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
                .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
                .list();
        BigDecimal onlineRate = BigDecimal.ZERO;
        if (CollectionUtils.isNotEmpty(videoList)) {
@@ -1422,7 +1422,7 @@
        MongoUtil.setPage(query, params, TIME_FIELD);
        List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getOnline() && item.getOnline()){
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -22,6 +22,7 @@
import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
import com.ycl.platform.domain.result.UY.OsdCheckResult;
import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
import com.ycl.platform.domain.vo.DynamicColumnVO;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.home.BaseHomeVO;
@@ -30,6 +31,7 @@
import com.ycl.platform.domain.vo.home.HomeVideoVO;
import com.ycl.platform.domain.vo.screen.MonitorRateVO;
import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
import com.ycl.platform.mapper.DynamicColumnMapper;
import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.mapper.WorkOrderMapper;
import com.ycl.platform.service.ITMonitorService;
@@ -91,6 +93,8 @@
    private WorkOrderMapper workOrderMapper;
    @Autowired
    private SysDictDataMapper dictDataMapper;
    @Autowired
    private DynamicColumnMapper dynamicColumnMapper;
    /**
     * 查询设备资产
@@ -453,7 +457,7 @@
                if (!CollectionUtils.isEmpty(onlines)) {
                    videoExp.setTotal(onlines.size());
                    videoExp.setOnline(Integer.valueOf(onlines.stream()
                            .filter(TMonitorResult::getOnline)
                            .filter(TMonitorResult::getPingOnline)
                            .count() + ""));
                    videoExp.setOffline(videoExp.getTotal() - videoExp.getOnline());
                }
@@ -510,6 +514,17 @@
        exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + ""));
        VideoExportForm.convertTags(exportForm);
        List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
        //获取动态列数据
        List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
        List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
        //补充动态列数据
        if(!CollectionUtils.isEmpty(dynamics)) {
            Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId));
            for (TMonitorResult tMonitorResult : tMonitorResults) {
                Integer pointId = tMonitorResult.getPointId();
                tMonitorResult.setDynamicColumnList(map.get(pointId));
            }
        }
        List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
        Query query = getQuery(deviceIds, exportForm.getMonth());
        //月份每日在线数据
@@ -530,12 +545,19 @@
                videoDailyExp.setSerialNumber(result.getNo());
                videoDailyExp.setDeviceName(result.getName());
                videoDailyExp.setArea(areaDeptEnum == null ? "未知" : areaDeptEnum.getName());
                String tag = "" + (result.getProvinceTag() ? "省厅、" : "") + (result.getImportantTag() ? "重点点位、" : "") + (result.getImportantCommandImageTag() ? "重点指挥图像、" : "") + (result.getDeptTag() ? "部级、" : "");
                // 删除字符串末尾的“、”
                if (tag.endsWith("、")) {
                    tag = tag.substring(0, tag.length() - 1);
                StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "省厅、" : "") + (result.getImportantTag() ? "重点点位、" : "") + (result.getImportantCommandImageTag() ? "重点指挥图像、" : "") + (result.getDeptTag() ? "部级、" : ""));
                //动态列处理加在标签里
                if(!CollectionUtils.isEmpty(result.getDynamicColumnList())){
                    List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
                    for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
                        tag.append(dynamicColumnVO.getColumnValue()).append("、");
                    }
                }
                videoDailyExp.setTag(tag);
                // 删除字符串末尾的“、”
                if (tag.toString().endsWith("、")) {
                    tag = new StringBuilder(tag.substring(0, tag.length() - 1));
                }
                videoDailyExp.setTag(tag.toString());
                setOnlineDaily(videoDailyExp, result, onlines);
                videoDailyExps.add(videoDailyExp);
                //全量表
@@ -1050,7 +1072,7 @@
        for (TMonitorResult monitorResult : onlineResult) {
            int dayOfMonth = monitorResult.getMongoCreateTime().getDayOfMonth();
            String online = "";
            online += monitorResult.getOnline() ? "在线" : "离线";
            online += monitorResult.getPingOnline() ? "在线" : "离线";
            //反射赋值,字段统一定义为day+1,2,3...
            Field field = videoDailyExp.getClass().getDeclaredField("day" + dayOfMonth);
            field.setAccessible(true);
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -452,12 +452,13 @@
                }
            }
        }
        //mybaits方法
        //插入
        if(!CollectionUtils.isEmpty(insertList)) dynamicColumnMapper.saveBatch(insertList);
        //更新
        if(!CollectionUtils.isEmpty(updateList)) dynamicColumnMapper.updateBatch(updateList);
        //删除
        if(!CollectionUtils.isEmpty(deleteList)) dynamicColumnMapper.deleteBatchIds(deleteList);
        if(!CollectionUtils.isEmpty(deleteList)) dynamicColumnMapper.deleteBatch(deleteList);
    }
    public void waitAllFinishAndGetResult(List<YwPoint> dataList) {
ycl-server/src/main/java/com/ycl/task/CarTask.java
@@ -48,7 +48,7 @@
        //计算点位在线率和视图库对接稳定性
        Query query = new Query();
        query.addCriteria(Criteria
                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
                .and("dataType").is(ApiConstants.HK_DataType_CAR));
        List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
        CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline);
ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -99,7 +99,7 @@
                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
        List<TMonitorResult> tMonitorResults = mongoTemplate.find(query, TMonitorResult.class);
        for (TMonitorResult result : tMonitorResults) {
            if(result.getOnline()){
            if(result.getPingOnline()){
                onlineStatusMap.put(result.getNo(), Online);
            }else {
                onlineStatusMap.put(result.getNo(), Offline);
ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -209,7 +209,7 @@
                                checkTimes = (Integer) map.get("checkTimes") + 1;
                                offLineTimes = (Integer) map.get("offLineTimes");
                            }
                            monitor.setOnline(Boolean.FALSE);
                            monitor.setPingOnline(Boolean.FALSE);
                            monitor.setCheckCount(checkTimes);
                            monitor.setOffLineCount(offLineTimes);
                            if (monitor.getOffLineCount() >= time) {
@@ -243,9 +243,9 @@
                .collect(Collectors.toList());
        //筛选出ping离线的设备,更改数据库为离线
        Date now = new Date();
        List<UpdateOnlineVO> willUpdateList = dataList.stream().filter(result->!result.getOnline()).map(item -> {
        List<UpdateOnlineVO> willUpdateList = dataList.stream().filter(result->!result.getPingOnline()).map(item -> {
            UpdateOnlineVO vo = new UpdateOnlineVO();
            vo.setOnline(item.getOnline()?ApiConstants.UY_OnlineSite_Online:ApiConstants.UY_OnlineSite_Offline);
            vo.setOnline(item.getPingOnline()?ApiConstants.UY_OnlineSite_Online:ApiConstants.UY_OnlineSite_Offline);
            vo.setIp(item.getIp());
            vo.setUpdateTime(now);
            return vo;
@@ -293,6 +293,11 @@
                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                        DeleteResult result = mongoTemplate.remove(query, VideoOnlineResult.class);
                        //打标签
                        records.forEach(item -> {
                            if (Objects.nonNull(item.getDeviceId())) {
                                item.setNo(item.getDeviceId());
                            }
                        });
                        pointService.setDeviceTagByGB(records);
                        //存放在mongo中
                        mongoTemplate.insertAll(records);
ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
@@ -51,14 +51,14 @@
        ResponseEntity<String> res = null;
        String prefix = "http://";
        if ("127.0.0.1".equals(monitor.getIp())) {
            monitor.setOnline(Boolean.FALSE);
            monitor.setPingOnline(Boolean.FALSE);
            return monitor;
        }
        try {
            res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
            monitor.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
            monitor.setPingOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
        } catch (Exception e) {
            monitor.setOnline(Boolean.FALSE);
            monitor.setPingOnline(Boolean.FALSE);
        }
        // 如果http得到的不在线,那么再ping一下
        boolean reachable = false;
@@ -71,15 +71,15 @@
        } else {
            map = new HashMap<>();
        }
        if (!monitor.getOnline()) {
        if (!monitor.getPingOnline()) {
            try {
                reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000);
            } catch (IOException e) {
                e.printStackTrace();
            }
            monitor.setOnline(reachable);
            monitor.setPingOnline(reachable);
        }
        if (!monitor.getOnline()) {
        if (!monitor.getPingOnline()) {
            offLineTimes++;
        }
        map.put("checkTimes", checkTimes);
ycl-server/src/main/resources/application-prod.yml
@@ -121,6 +121,7 @@
HK:
  userName: admin
  password: zg@2024dx
  password2: Hik12345+
  host: 51.92.65.49
  appKey: 29555942
  appSecret: t9U7tCplCyYHzQPPL7cH
ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml
@@ -72,4 +72,23 @@
            WHERE id = #{item.id}
        </foreach>
    </update>
    <delete id="deleteBatch">
        delete from t_dynamic_column_value where id in
        <foreach collection="deleteList" open="(" close=")" separator="," item="id">
            #{id}
        </foreach>
    </delete>
    <select id="getDynamicsByIds" resultType="com.ycl.platform.domain.vo.DynamicColumnVO">
        SELECT
        *
        FROM
        t_dynamic_column_value dcv
        LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}
        WHERE
        dcv.ref_id in
        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -39,6 +39,28 @@
        <result property="deviceType" column="device_type"/>
    </resultMap>
    <resultMap id="monitorMap" type="com.ycl.platform.domain.result.SYS.TMonitorResult">
        <result column="m.id" property="id"/>
        <result column="no" property="no"/>
        <result column="m.name" property="name"/>
        <result column="monitorType" property="monitorType"/>
        <result column="d.dept_id" property="deptId"/>
        <result column="p.province_tag" property="provinceTag"/>
        <result column="p.important_tag" property="importantTag"/>
        <result column="p.important_command_image_tag" property="importantCommandImageTag"/>
        <result column="p.dept_tag" property="deptTag"/>
        <result column="p.online" property="online"/>
        <collection property="dynamicColumnList" select="getDyColumns"
                    column="{pid=pid,tableName=tableName}"
                    ofType="com.ycl.platform.domain.vo.DynamicColumnVO"/>
    </resultMap>
    <resultMap id="dynamicColumnMap" type="com.ycl.platform.domain.vo.DynamicColumnVO">
        <result column="prop_name" property="propName"/>
        <result column="label_value" property="labelValue"/>
        <result column="column_value" property="columnValue"/>
    </resultMap>
    <sql id="selectTMonitorVo">
        select id,
               serial_number,
@@ -169,8 +191,9 @@
        left join sys_dept d on p.dept_id = d.dept_id
    </select>
    <select id="selectMonitorResult" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult">
        select m.id, m.serial_number as no,m.name,m.camera_fun_type as monitorType,d.dept_id,p.province_tag,p.important_tag,p.important_command_image_tag,p.dept_tag,p.online
    <select id="selectMonitorResult" resultType = "com.ycl.platform.domain.result.SYS.TMonitorResult">
        select m.id, m.serial_number as no,m.name,m.camera_fun_type as monitorType,
        d.dept_id,p.province_tag,p.important_tag,p.important_command_image_tag,p.dept_tag,p.online,p.id as pointId
        from t_monitor m
        left join t_yw_point p on m.serial_number = p.serial_number
        left join sys_dept d on p.dept_id = d.dept_id
@@ -199,6 +222,8 @@
            </if>
        </where>
    </select>
    <select id="selectTMonitorById" parameterType="Long" resultType="com.ycl.platform.domain.vo.TMonitorVO">
        <include refid="selectTMonitorVo"/>
        where id = #{id}
@@ -535,106 +560,106 @@
    </select>
    <select id="assetManagement" resultMap="dyMap">
        SELECT
            tm.id,
            tm.serial_number,
               tm.name,
               tm.site_type,
               tm.mac_addr,
               tm.ip,
               tm.camera_fun_type,
               tm.longitude,
               tm.latitude,
               tm.camera_capture_area,
               tm.on_state,
               tm.civil_code,
               tm.integrated_device,
               tm.camera_brand,
               tm.address,
               tm.net_working,
               tm.public_security,
               tm.installed_time,
               tm.management_unit,
               tm.mu_contact_info,
               tm.storage_days,
               tm.monitor_azimuth,
               tm.scene_photo_addr,
               tm.model,
               tm.site_vulgo,
               tm.camera_type,
               tm.camera_light_type,
               tm.encoded_format,
               tm.camera_dept,
               tm.hybm,
               tm.lxbm,
               't_monitor' as tableName,
               #{query.keyword} as keyword
        FROM
            t_monitor tm
                INNER JOIN t_yw_point yp ON yp.serial_number = tm.serial_number
        <where>
            <if test="query.keyword != null and query.keyword != ''">
                AND tm.name like concat('%', #{query.keyword}, '%')
            </if>
            <if test="query.startTIme != null and query.endTime != null">
                AND yp.create_time between #{query.startTime} and #{query.endTime}
            </if>
        </where>
    </select>
<!--    <select id="assetManagement" resultMap="dyMap">-->
<!--        SELECT-->
<!--            tm.id,-->
<!--            tm.serial_number,-->
<!--               tm.name,-->
<!--               tm.site_type,-->
<!--               tm.mac_addr,-->
<!--               tm.ip,-->
<!--               tm.camera_fun_type,-->
<!--               tm.longitude,-->
<!--               tm.latitude,-->
<!--               tm.camera_capture_area,-->
<!--               tm.on_state,-->
<!--               tm.civil_code,-->
<!--               tm.integrated_device,-->
<!--               tm.camera_brand,-->
<!--               tm.address,-->
<!--               tm.net_working,-->
<!--               tm.public_security,-->
<!--               tm.installed_time,-->
<!--               tm.management_unit,-->
<!--               tm.mu_contact_info,-->
<!--               tm.storage_days,-->
<!--               tm.monitor_azimuth,-->
<!--               tm.scene_photo_addr,-->
<!--               tm.model,-->
<!--               tm.site_vulgo,-->
<!--               tm.camera_type,-->
<!--               tm.camera_light_type,-->
<!--               tm.encoded_format,-->
<!--               tm.camera_dept,-->
<!--               tm.hybm,-->
<!--               tm.lxbm,-->
<!--               't_monitor' as tableName,-->
<!--               #{query.keyword} as keyword-->
<!--        FROM-->
<!--            t_monitor tm-->
<!--                INNER JOIN t_yw_point yp ON yp.serial_number = tm.serial_number-->
<!--        <where>-->
<!--            <if test="query.keyword != null and query.keyword != ''">-->
<!--                AND tm.name like concat('%', #{query.keyword}, '%')-->
<!--            </if>-->
<!--            <if test="query.startTIme != null and query.endTime != null">-->
<!--                AND yp.create_time between #{query.startTime} and #{query.endTime}-->
<!--            </if>-->
<!--        </where>-->
<!--    </select>-->
    <select id="getDyColumns" resultMap="dynamicColumnMap">
        SELECT
               *
        FROM
             t_dynamic_column_value dcv
                 LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}
        WHERE
            dcv.ref_id = #{id}
            <if test="keyword != null and keyword != ''">
                and dcv.column_value like concat('%', #{keyword}, '%')
            </if>
    </select>
<!--    <select id="getDyColumns" resultMap="dynamicColumnMap">-->
<!--        SELECT-->
<!--               *-->
<!--        FROM-->
<!--             t_dynamic_column_value dcv-->
<!--                 LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}-->
<!--        WHERE-->
<!--            dcv.ref_id = #{id}-->
<!--            <if test="keyword != null and keyword != ''">-->
<!--                and dcv.column_value like concat('%', #{keyword}, '%')-->
<!--            </if>-->
<!--    </select>-->
    <resultMap id="dyMap" type="com.ycl.platform.domain.vo.TMonitorVO">
        <id column="id" property="id"/>
        <result column="serial_number" property="serialNumber"/>
        <result column="name" property="name"/>
        <result column="site_type" property="siteType"/>
        <result column="mac_addr" property="macAddr"/>
        <result column="ip" property="ip"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="camera_capture_area" property="cameraCaptureArea"/>
        <result column="camera_fun_type" property="cameraFunType"/>
        <result column="on_state" property="onState"/>
        <result column="civil_code" property="civilCode"/>
        <result column="integrated_device" property="integratedDevice"/>
        <result column="camera_brand" property="cameraBrand"/>
        <result column="address" property="address"/>
        <result column="public_security" property="publicSecurity"/>
        <result column="installed_time" property="installedTime"/>
        <result column="management_unit" property="managementUnit"/>
        <result column="mu_contact_info" property="muContactInfo"/>
        <result column="storage_days" property="storageDays"/>
        <result column="monitor_azimuth" property="monitorAzimuth"/>
        <result column="scene_photo_addr" property="scenePhotoAddr"/>
        <result column="model" property="model"/>
        <result column="site_vulgo" property="siteVulgo"/>
        <result column="camera_type" property="cameraType"/>
        <result column="camera_light_type" property="cameraLightType"/>
        <result column="encoded_format" property="encodedFormat"/>
        <result column="camera_dept" property="cameraDept"/>
        <result column="hybm" property="hybm"/>
        <result column="lxbm" property="lxbm"/>
        <collection property="dynamicColumnList" select="getDyColumns" column="{id=id,tableName=tableName,keyword=keyword}" ofType="com.ycl.platform.domain.vo.DynamicColumnVO"/>
    </resultMap>
<!--    <resultMap id="dyMap" type="com.ycl.platform.domain.vo.TMonitorVO">-->
<!--        <id column="id" property="id"/>-->
<!--        <result column="serial_number" property="serialNumber"/>-->
<!--        <result column="name" property="name"/>-->
<!--        <result column="site_type" property="siteType"/>-->
<!--        <result column="mac_addr" property="macAddr"/>-->
<!--        <result column="ip" property="ip"/>-->
<!--        <result column="longitude" property="longitude"/>-->
<!--        <result column="latitude" property="latitude"/>-->
<!--        <result column="camera_capture_area" property="cameraCaptureArea"/>-->
<!--        <result column="camera_fun_type" property="cameraFunType"/>-->
<!--        <result column="on_state" property="onState"/>-->
<!--        <result column="civil_code" property="civilCode"/>-->
<!--        <result column="integrated_device" property="integratedDevice"/>-->
<!--        <result column="camera_brand" property="cameraBrand"/>-->
<!--        <result column="address" property="address"/>-->
<!--        <result column="public_security" property="publicSecurity"/>-->
<!--        <result column="installed_time" property="installedTime"/>-->
<!--        <result column="management_unit" property="managementUnit"/>-->
<!--        <result column="mu_contact_info" property="muContactInfo"/>-->
<!--        <result column="storage_days" property="storageDays"/>-->
<!--        <result column="monitor_azimuth" property="monitorAzimuth"/>-->
<!--        <result column="scene_photo_addr" property="scenePhotoAddr"/>-->
<!--        <result column="model" property="model"/>-->
<!--        <result column="site_vulgo" property="siteVulgo"/>-->
<!--        <result column="camera_type" property="cameraType"/>-->
<!--        <result column="camera_light_type" property="cameraLightType"/>-->
<!--        <result column="encoded_format" property="encodedFormat"/>-->
<!--        <result column="camera_dept" property="cameraDept"/>-->
<!--        <result column="hybm" property="hybm"/>-->
<!--        <result column="lxbm" property="lxbm"/>-->
<!--        <collection property="dynamicColumnList" select="getDyColumns" column="{id=id,tableName=tableName,keyword=keyword}" ofType="com.ycl.platform.domain.vo.DynamicColumnVO"/>-->
<!--    </resultMap>-->
    <resultMap id="dynamicColumnMap" type="com.ycl.platform.domain.vo.DynamicColumnVO">
        <result column="prop_name" property="propName"/>
        <result column="label_value" property="labelValue"/>
        <result column="column_value" property="columnValue"/>
    </resultMap>
<!--    <resultMap id="dynamicColumnMap" type="com.ycl.platform.domain.vo.DynamicColumnVO">-->
<!--        <result column="prop_name" property="propName"/>-->
<!--        <result column="label_value" property="labelValue"/>-->
<!--        <result column="column_value" property="columnValue"/>-->
<!--    </resultMap>-->
    <delete id="deleteAll">
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -51,10 +51,6 @@
        <result column="column_value" property="columnValue"/>
    </resultMap>
    <select id="selectData" resultType="com.ycl.platform.base.BaseSelect">
    </select>
    <select id="page" resultMap="pageMap">
        SELECT
        typ.id,