From 5985afa7fd58bf6b4efb3c890e41b90864da7831 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 20 八月 2024 17:17:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java | 8 +- ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java | 42 ++++++++++++++ ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 42 ++++++++----- ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 80 ++++++++++++++++++++++++-- 5 files changed, 147 insertions(+), 27 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java index 09bf614..c0213c9 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java @@ -13,17 +13,19 @@ public class AbsQuery { @ApiModelProperty(value = "褰撳墠椤�", required = true) - private Long pageNum = 1L; + private Integer pageNum = 1; @ApiModelProperty(value = "姣忛〉鏉℃暟", required = true) - private Long pageSize = 10L; + private Integer pageSize = 10; + + private Integer startNum; /** * 鑾峰彇mongo鍒嗛〉skip璺宠繃鐨勬潯鏁� * * @return */ - public Long getSkipNum() { + public Integer getSkipNum() { return (pageNum - 1) * pageSize; } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java index a916997..45c0ba3 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java @@ -5,6 +5,7 @@ import com.ycl.system.entity.BaseEntity; import lombok.Data; +import java.time.LocalDate; import java.util.Date; import java.util.List; @@ -220,6 +221,47 @@ private Long deptId; private String deptName; + private Integer provinceTag; + private String area; + private String error; + private String unitName; + private LocalDate mongoCreateTime; + /** + * 褰撴棩鎺ユ敹鍒扮殑褰撴棩鎶撴媿閲� + */ + private Integer dataCount; + /** + * 鏃堕挓鍑嗙‘鐜� + */ + private Float clockPercent; + /** + * 澶у浘鍙敤鐜� + */ + private Float bigUsefulPercent; + /** + * 涓昏灞炴�т竴鑷寸巼 + */ + private Float majorConPercent; + /** + * 閲嶈灞炴�т竴鑷寸巼 + */ + private Float importantConPercent; + /** + * 浜鸿劯鍚堟牸鐜� + */ + private Float faceEligPercent; + /** + * 鍏抽敭甯ф椂寤� + */ + private Integer ifmDelay; + /** + * 淇′护鏃跺欢 + */ + private Integer sipDelay; + /** + * 瑙嗛娴佹椂寤� + */ + private Integer videoDelay; /** * 鍔ㄦ�佸垪 diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java index 2a6592c..6e66a2a 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java @@ -124,11 +124,11 @@ /** * 鏁版嵁涓績-璧勪骇绠$悊 * - * @param page * @param query */ IPage assetManagement(IPage<TMonitorVO> page, @Param("query") DataCenterQuery query); + void deleteAll(); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java index 3a6d860..b91b2b4 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java @@ -2,23 +2,30 @@ import annotation.DataScope; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.query.DashboardQuery; import com.ycl.platform.domain.query.DataCenterQuery; import com.ycl.platform.domain.query.HomeQuery; +import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; +import com.ycl.platform.domain.result.HK.FaceDeviceSamplingResult; +import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; +import com.ycl.platform.domain.result.HK.VehicleDeviceSamplingResult; +import com.ycl.platform.domain.result.UY.VideoOnlineResult; import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.domain.vo.screen.MonitorRateVO; import com.ycl.platform.domain.vo.screen.MonitorTotalVO; import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.service.ITMonitorService; import com.ycl.system.Result; +import com.ycl.system.page.PageUtil; import com.ycl.system.service.ISysConfigService; import com.ycl.utils.StringUtils; -import com.ycl.utils.redis.RedisCache; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -40,7 +47,7 @@ @Autowired private ISysConfigService configService; @Autowired - private RedisCache redisCache; + private MongoTemplate mongoTemplate; /** * 鏌ヨ璁惧璧勪骇 @@ -62,16 +69,75 @@ */ @Override @DataScope(deptAlias = "d",userAlias = "u") - public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) - { + public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) { List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor); - if (Objects.equals(tMonitor.getRecovery(), 1)) { + // 寮傚父璁惧 + if (Objects.equals(tMonitor.getRecovery(), 1L)) { String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); if (StringUtils.isBlank(time)) { throw new RuntimeException("璇烽厤缃紓甯歌澶囪繛缁叧娉ㄦ椂闂�"); } List<TMonitorVO> recoveryMonitors = tMonitorMapper.selectRecoveryMonitor(time); monitors.addAll(recoveryMonitors); + } + // 瑙嗛鐩戞帶璁惧 + if (Objects.equals(tMonitor.getCameraFunType(), "1")) { + monitors.forEach(monitor -> { + Query query = new Query(); + query.addCriteria(Criteria.where("deviceId").is(monitor.getSerialNumber()) + // .and("mongoCreateTime").is(LocalDate.now()) + ); + VideoOnlineResult one = mongoTemplate.findOne(query, VideoOnlineResult.class); + if (one != null) { + monitor.setIfmDelay(one.getIfmDelay()); + monitor.setSipDelay(one.getSipDelay()); + monitor.setVideoDelay(one.getVideoDelay()); + monitor.setMongoCreateTime(one.getMongoCreateTime()); + } + }); + } + // 杞﹁締鐩戞帶璁惧 + if (Objects.equals(tMonitor.getCameraFunType(), "2")) { + monitors.forEach(monitor -> { + Query query = new Query(); + query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber()) + // .and("mongoCreateTime").is(LocalDate.now()) + ); + VehicleDeviceInspectionResult one = mongoTemplate.findOne(query, VehicleDeviceInspectionResult.class); + VehicleDeviceSamplingResult two = mongoTemplate.findOne(query, VehicleDeviceSamplingResult.class); + if (one != null) { + monitor.setDataCount(one.getDataCount()); + monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null); + monitor.setMongoCreateTime(one.getMongoCreateTime()); + } + if (two != null) { + monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful()) ? two.getBigUseful().getBigUsefulPercent() : null); + monitor.setMajorConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getMajorConPercent() : null); + monitor.setImportantConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getImportantConPercent() : null); + monitor.setMongoCreateTime(two.getMongoCreateTime()); + } + }); + } + // 浜鸿劯鐩戞帶璁惧 + if (Objects.equals(tMonitor.getCameraFunType(), "3")) { + monitors.forEach(monitor -> { + Query query = new Query(); + query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber()) + // .and("mongoCreateTime").is(LocalDate.now()) + ); + FaceDeviceInspectionResult one = mongoTemplate.findOne(query, FaceDeviceInspectionResult.class); + FaceDeviceSamplingResult two = mongoTemplate.findOne(query, FaceDeviceSamplingResult.class); + if (one != null) { + monitor.setDataCount(one.getDataCount()); + monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null); + monitor.setMongoCreateTime(one.getMongoCreateTime()); + } + if (two != null) { + monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful())? two.getBigUseful().getBigUsefulPercent() : null); + monitor.setFaceEligPercent(Objects.nonNull(two.getFaceEligibility()) ? two.getFaceEligibility().getFaceEligPercent() : null); + monitor.setMongoCreateTime(two.getMongoCreateTime()); + } + }); } return monitors; } @@ -168,7 +234,7 @@ @Override public Result assetManagement(DataCenterQuery query) { - IPage<TMonitorVO> page = new Page<>(query.getPageNum(), query.getPageSize()); + IPage<TMonitorVO> page = PageUtil.getPage(query, TMonitorVO.class); baseMapper.assetManagement(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 8c11119..62aac3b 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -89,12 +89,12 @@ <select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO"> select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude, - camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working, - public_security, installed_time, management_unit, mu_contact_info, storage_days - , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, - camera_dept, hybm, lxbm,d.dept_id, d.dept_name 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 + camera_capture_area, on_state, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag, + IF(COUNT(w.id) OVER() > 0, '鏄�', '鍚�') AS error, u.unit_name from t_monitor m + left join t_yw_point p on m.serial_number = p.serial_number and p.deleted = 0 + left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0 + left join t_work_order w on m.serial_number = w.serial_number and w.deleted = 0 + left join t_yw_unit u on p.unit_id = u.id and u.deleted = 0 <where> <if test="serialNumber != null and serialNumber != ''">and m.serial_number = #{serialNumber}</if> <if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if> @@ -488,23 +488,29 @@ tm.camera_dept, tm.hybm, tm.lxbm, - dc.prop_name, - dc.label_value, - dcv.column_value + 't_monitor' as tableName, + #{query.keyword} as keyword FROM t_monitor tm - LEFT JOIN t_dynamic_column_value dcv ON tm.id = dcv.ref_id - LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{query.tableName} <where> <if test="query.keyword != null and query.keyword != ''"> - AND (tm.name like concat('%', #{query.keyword}, '%') OR dcv.column_value like concat('%', #{query.keyword}, '%')) + AND tm.name like concat('%', #{query.keyword}, '%') </if> </where> </select> - <delete id="deleteAll"> - delete from t_monitor - </delete> + <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"/> @@ -537,7 +543,7 @@ <result column="camera_dept" property="cameraDept"/> <result column="hybm" property="hybm"/> <result column="lxbm" property="lxbm"/> - <collection property="dynamicColumnList" ofType="com.ycl.platform.domain.vo.DynamicColumnVO" resultMap="dynamicColumnMap"/> + <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"> @@ -546,4 +552,8 @@ <result column="column_value" property="columnValue"/> </resultMap> + + <delete id="deleteAll"> + delete from t_monitor + </delete> </mapper> -- Gitblit v1.8.0