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(); } 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)) { 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); 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) ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java
@@ -26,7 +26,6 @@ @Slf4j @Component("checkScoreTask") //TODO:修改score、index默认发布 public class CheckScoreTask { @Autowired private CheckTemplateMapper templateMapper; 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); } //存放到mongo if (!CollectionUtils.isEmpty(dataList)) { //如果存在之前的数据先删除 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>