ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/task/ContractTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/task/HKTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java
@@ -19,4 +19,5 @@ private Date updateTime; private String serialNumber; } ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -169,6 +169,12 @@ */ void updateOnlineFromUyOrHk(@Param("onlineList") List<UpdateOnlineVO> onlineList); /** * 根据国标修改 * @param onlineList */ void updateOnlineFromHk(@Param("onlineList") List<UpdateOnlineVO> onlineList); /** * 点位在线率 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -77,7 +77,7 @@ */ List<DeviceInfoVO> hasErrorWorkOrderList(@Param("start") Date start, @Param("end") Date end); List<WorkOrderVO> selectPassOrder(@Param("startTime") LocalDateTime now, @Param("endTime")LocalDateTime thirtyDaysAgo, @Param("status") String status, @Param("errorList") List<String> errorList); List<WorkOrderVO> selectPassOrder(@Param("startTime") LocalDateTime now, @Param("endTime")LocalDateTime thirtyDaysAgo, @Param("status") String status, @Param("errorList") List<String> errorList,@Param("auditStatus") String auditStatus); int addMany(@Param("workOrderList") List<WorkOrder> workOrderList); ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -200,7 +200,7 @@ deductErrorType.add(ErrorType.ABNORMAL_PIC.getValue()); deductErrorType.add(ErrorType.POINT_INFO_ERROR.getValue()); deductErrorType.add(ErrorType.CLOCK_SKEW.getValue()); List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(),deductErrorType); List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(),deductErrorType,"审核通过"); //存在有两种扣分的故障 只扣减第一个故障 Map<String, WorkOrderVO> map = workOrders.stream() .collect(Collectors.toMap( ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -173,7 +173,6 @@ faceParam.setDataType(ApiConstants.HK_DataType_FACE); List<SnapshotDataMonitorResult> faceList = HkApiUtil.sendAPI(host, appKey, appSecret, "/api/dqd/service/rs/v1/data/snapCountDetail/query", faceParam, SnapshotDataMonitorResult.class); if (!CollectionUtils.isEmpty(faceList)) { log.info("结果数据大小:{}", faceList.size()); //如果今天存在之前的数据先删除 Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) @@ -189,22 +188,38 @@ faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE)); mongoTemplate.insertAll(faceList); } //修改online状态以及生成工单 //修改online状态 List<SnapshotDataMonitorResult> totalResult = new ArrayList<>(); totalResult.addAll(carList); totalResult.addAll(faceList); if (!CollectionUtils.isEmpty(totalResult)) { List<String> numbers = totalResult.stream().map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList()); Map<String, TMonitor> map = monitorMapper.selectList(new QueryWrapper<TMonitor>().in("serial_number", numbers)) .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); Date now = new Date(); //过滤 totalResult = totalResult.stream().filter(item -> map.get(item.getExternalIndexCode()) != null).collect(Collectors.toList()); totalResult.forEach(item -> { TMonitor monitor = map.get(item.getExternalIndexCode()); item.setIp(monitor.getIp()); }); //海康不做在线监测 //先拿优云的在线,过滤掉优云已有的国标码 Query query = new Query(); query.addCriteria(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class); if (!CollectionUtils.isEmpty(results)) { Date now = new Date(); List<String> uyNoList = results.stream().map(VideoOnlineResult::getNo).collect(Collectors.toList()); List<String> numbers = totalResult.stream().filter(result->!uyNoList.contains(result.getExternalIndexCode())) .map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList()); //排除掉优云且不包含视频设备的国标 Map<String, TMonitor> map = monitorMapper.selectList(new QueryWrapper<TMonitor>() .in("serial_number", numbers)) .stream().filter(monitor -> monitor.getCameraFunType()!=null && !monitor.getCameraFunType().contains("1")) .collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); List<UpdateOnlineVO> willUpdateList = new ArrayList<>(); totalResult.forEach(item -> { TMonitor monitor = map.get(item.getExternalIndexCode()); if(monitor!=null) { UpdateOnlineVO vo = new UpdateOnlineVO(); vo.setOnline(item.getDataCount() > 0 ? 1 : -1); vo.setSerialNumber(monitor.getSerialNumber()); vo.setUpdateTime(now); willUpdateList.add(vo); } }); if(!CollectionUtils.isEmpty(willUpdateList)) monitorMapper.updateOnlineFromHk(willUpdateList); // List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> { // UpdateOnlineVO vo = new UpdateOnlineVO(); // vo.setOnline(item.getDataCount() > 0 ? 1 : -1); @@ -222,6 +237,7 @@ // (existing, replacement) -> existing // 如果遇到相同的 IP,保留第一个(existing) // )).values()); // uyErrorTypeCheckService.hkOnlineCheck(workOrders); } } log.info("结束抓拍数据量检测结果数据同步"); } ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -691,6 +691,18 @@ AND t_monitor.serial_number = t_yw_point.serial_number ) </foreach> </update> <update id="updateOnlineFromHk"> <foreach collection="onlineList" item="online" separator=";"> UPDATE t_yw_point SET online = #{online.online}, update_time = #{online.updateTime} WHERE serial_number = #{online.serialNumber} </foreach> </update> <update id="batchUpdateOnline"> UPDATE t_yw_point p ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -362,13 +362,13 @@ SELECT wo.id,wo.work_order_no,wo.unit_id,woet.error_name as errorType,woet.create_time as distributeTime FROM t_work_order wo LEFT JOIN t_work_order_error_type woet ON woet.work_order_no = wo.work_order_no LEFT JOIN t_work_order_auditing_record woar ON woar.work_order_no = wo.work_order_no LEFT JOIN t_work_order_auditing_record woar ON woar.work_order_no = wo.work_order_no and woar.result = #{auditStatus} WHERE wo.deleted = 0 AND wo.deduct = 0 AND wo.status = #{status} AND woet.error_name in <foreach collection="errorList" item="error" separator="," open="(" close=")"> #{error} </foreach> AND woar.create_time between #{startTime} and #{endTime} and woar.result = #{auditStatus} AND woar.create_time between #{startTime} and #{endTime} </select> <update id="updateMany">