From a1969bc264f5842b87205ffc9fa77e56c51d3058 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 18 十一月 2024 10:12:11 +0800 Subject: [PATCH] 在线监测对于纯车辆人脸可以恢复在线状态 --- ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 5 ++ ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java | 1 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 12 +----- ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java | 2 ycl-server/src/main/java/com/ycl/task/UYTask.java | 32 ++++++++++------ ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 4 +- ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 29 ++++++++++---- 7 files changed, 51 insertions(+), 34 deletions(-) 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 a8b4676..893cac3 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 @@ -16,6 +16,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.security.core.parameters.P; +import java.util.Date; import java.util.List; import java.util.Map; @@ -175,4 +176,8 @@ * @return 璁惧璧勪骇闆嗗悎 */ public List<TMonitorResult> selectMonitorResult(VideoExportForm exportForm); + + void batchUpdateOnline(@Param("ipList")List<String> ipList,@Param("date") Date date,@Param("online")Integer online); + + List<TMonitor> selectCarOrFace(); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java index 010b6fc..22527b6 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java @@ -45,7 +45,7 @@ public List<ContractScore> selectDefaultScoreList(ContractScore contractScore) { //閬垮厤鎼滅储鏉′欢澶辨晥 if(contractScore.getUnitId()==null) { - //TODO:鏁版嵁鏉冮檺(鏆傛椂涓嶇煡閬撹涓嶈鏁版嵁鏉冮檺) + //TODO:鏁版嵁鏉冮檺 Integer unitId = SecurityUtils.getUnitId(); Long uid = null; if (Objects.nonNull(unitId)) { diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java index 781bf2b..c676cab 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java @@ -1094,7 +1094,7 @@ Document errorFilter = new Document("$or", errorConditions); dList2.add(errorFilter); Document osdErrorFilter = new Document("$and", dList2); - //TODO锛氭湭鐭ユ暟 鏂板0鐨勭姸鎬� + //鏈煡鏁� List<Document> dList3 = new ArrayList<>(2); setTag(params,dList3); dList3.add(importantTagCondition); @@ -1233,7 +1233,7 @@ Document errorFilter = new Document("$or", errorConditions); dList2.add(errorFilter); Document osdErrorFilter = new Document("$and", dList2); - //TODO锛氭湭鐭ユ暟 鏂板0鐨勭姸鎬� + //鏈煡鏁� List<Document> dList3 = new ArrayList<>(2); setTag(params,dList3); dList3.add(importantTagCondition); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java index 96e8e1b..b4f26fc 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -1,10 +1,6 @@ package com.ycl.platform.service.impl; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelWriter; -import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -15,9 +11,6 @@ import com.ycl.config.PlatformConfig; import com.ycl.exception.ServiceException; import com.ycl.platform.domain.entity.*; -import com.ycl.platform.domain.excel.ErrorExport; -import com.ycl.platform.domain.excel.PointExport; -import com.ycl.platform.domain.excel.WorkOrderWhiteExport; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.*; import com.ycl.platform.domain.vo.*; @@ -45,7 +38,6 @@ import constant.RedisConstant; import enumeration.ErrorType; import enumeration.general.*; -import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -67,8 +59,6 @@ import org.springframework.util.StringUtils; import pojo.CascadeOption; -import java.io.IOException; -import java.io.OutputStream; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; @@ -329,6 +319,7 @@ */ @Override public Result add(WorkOrderForm form) { + //TODO锛氬悓涓浗鏍囧伐鍗曞鍔犳晠闅滅被鍨� //妫�鏌ョ櫧鍚嶅崟 List<WorkOrder> data = new ArrayList<>(); WorkOrder workOrder = WorkOrderForm.getEntityByForm(form, null); @@ -702,6 +693,7 @@ return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); } try { + //杩欐槸鍏ㄩ儴涓嬪彂 if (query.getWorkOrderNOList().isEmpty()) { query.setWorkOrderNOList(new LambdaQueryChainWrapper<>(baseMapper) .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) diff --git a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java index 9b44e1c..5b8b350 100644 --- a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java +++ b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java @@ -26,7 +26,6 @@ @Slf4j @Component("checkScoreTask") -//TODO锛氫慨鏀箂core銆乮ndex榛樿鍙戝竷 public class CheckScoreTask { @Autowired private CheckTemplateMapper templateMapper; diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java index 7527055..68237f3 100644 --- a/ycl-server/src/main/java/com/ycl/task/UYTask.java +++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson2.JSONObject; import com.mongodb.client.result.DeleteResult; import com.ycl.feign.UYClient; +import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.param.UY.ImageDetectionParam; import com.ycl.platform.domain.param.UY.MonitorQualifyParam; @@ -262,20 +263,27 @@ .map(CompletableFuture::join) .filter(Objects::nonNull) .collect(Collectors.toList()); - //绛涢�夊嚭ping绂荤嚎鐨勮澶囷紝鏇存敼鏁版嵁搴撲负绂荤嚎锛屽苟涓旀洿鏂扮函杞﹁締鎴栫函浜鸿劯鐨勮澶囩殑鍦ㄧ嚎鐘舵��(杩欓儴鍒嗚澶囦笉浼氭媺娴佹娴�) + Date now = new Date(); - List<UpdateOnlineVO> onlineUpdateList = dataList.stream().map(item -> { - UpdateOnlineVO vo = new UpdateOnlineVO(); - if(item.getPingOnline()) { - vo.setOnline(ApiConstants.UY_OnlineSite_Online); - }else if(!item.getPingOnline()){ - vo.setOnline(ApiConstants.UY_OnlineSite_Offline); + List<String> offLineList = new ArrayList<>(); + List<String> onLineList = new ArrayList<>(); + //鏌ュ嚭鏁版嵁搴撶函杞﹁締鎴栫函浜鸿劯璁惧 + List<String> serialNumbers = monitorMapper.selectCarOrFace().stream().map(TMonitor::getSerialNumber).collect(Collectors.toList()); + dataList.forEach(item->{ + //鏇存柊绾溅杈嗘垨绾汉鑴哥殑璁惧鐨勫湪绾跨姸鎬�(杩欓儴鍒嗚澶囦笉浼氭媺娴佹娴�) + if(item.getPingOnline() && !CollectionUtils.isEmpty(serialNumbers) && serialNumbers.contains(item.getNo())) { + onLineList.add(item.getIp()); + } else if(!item.getPingOnline()) { + //绛涢�夊嚭ping绂荤嚎鐨勮澶囷紝鏇存敼鏁版嵁搴撲负绂荤嚎 + offLineList.add(item.getIp()); } - vo.setIp(item.getIp()); - vo.setUpdateTime(now); - return vo; - }).collect(Collectors.toList()); - monitorMapper.updateOnline(onlineUpdateList); + }); + if(!CollectionUtils.isEmpty(offLineList)) { + monitorMapper.batchUpdateOnline(offLineList, now, ApiConstants.UY_OnlineSite_Offline); + } + if(!CollectionUtils.isEmpty(onLineList)) { + monitorMapper.batchUpdateOnline(onLineList, now, ApiConstants.UY_OnlineSite_Online); + } //瀛樻斁鍒癿ongo if (!CollectionUtils.isEmpty(dataList)) { //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 5a297d8..4d17f84 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -695,14 +695,27 @@ update_time = #{online.updateTime} WHERE EXISTS (SELECT 1 FROM t_monitor - <where> - ip = #{online.ip} AND t_monitor.serial_number = t_yw_point.serial_number - <if test="online.online!=null and online.online"> - and t_monitor.camera_fun_type = '2' or t_monitor.camera_fun_type = '3' - </if> - </where> - ) + WHERE ip = #{online.ip} + AND t_monitor.serial_number = t_yw_point.serial_number ) </foreach> </update> - + <update id="batchUpdateOnline"> + UPDATE + t_yw_point p + LEFT JOIN t_monitor m on p.serial_number = m.serial_number + SET + p.online = #{online}, + p.update_time = #{date} + WHERE m.ip in + <foreach collection="ipList" open="(" close=")" separator="," item="ip"> + #{ip} + </foreach> + </update> + <select id="selectCarOrFace" resultType="com.ycl.platform.domain.entity.TMonitor"> + select m.* + from t_monitor m + left join t_yw_point p + on m.serial_number = p.serial_number + where (m.camera_fun_type = '2' or m.camera_fun_type = '3') and p.examine_status = 1 + </select> </mapper> -- Gitblit v1.8.0