From f97d15e16377b03bdc4b134001fbc532d9222fcf Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 16 一月 2025 14:57:01 +0800 Subject: [PATCH] bug --- ycl-server/src/main/java/com/ycl/task/ContractTask.java | 2 ycl-server/src/main/java/com/ycl/task/HKTask.java | 42 ++++++++++++++------ ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 4 +- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java | 1 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 6 +++ ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 2 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 12 ++++++ 7 files changed, 52 insertions(+), 17 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java index 8f6345f..68259c9 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/UpdateOnlineVO.java @@ -19,4 +19,5 @@ private Date updateTime; + private String serialNumber; } 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 4137721..9b3c66e 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 @@ -169,6 +169,12 @@ */ void updateOnlineFromUyOrHk(@Param("onlineList") List<UpdateOnlineVO> onlineList); + /** + * 鏍规嵁鍥芥爣淇敼 + * @param onlineList + */ + void updateOnlineFromHk(@Param("onlineList") List<UpdateOnlineVO> onlineList); + /** * 鐐逛綅鍦ㄧ嚎鐜� diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java index 3c1d2c4..9b48848 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java +++ b/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); diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java index b54211c..1d637c2 100644 --- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java +++ b/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( diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java index 91b9159..c6cad22 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/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("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�"); } diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 2c6604a..cd84be6 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/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 diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index b10788e..5a5c238 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/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"> -- Gitblit v1.8.0