From 5dccf0dc687dfef1c91936af3cea06fe0609b918 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 11 十二月 2024 17:31:11 +0800 Subject: [PATCH] osd时间bug、离线工单bug等 --- ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java | 2 ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java | 50 ++++++++-------- ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 10 +- ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 2 ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java | 46 ++++++++------- ycl-server/src/main/java/com/ycl/task/OsdTask.java | 2 ycl-server/src/main/java/com/ycl/task/VideoTask.java | 2 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java | 2 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 14 ++-- ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 5 - 10 files changed, 68 insertions(+), 67 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java index 3c48e69..b22f45d 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java @@ -108,31 +108,31 @@ public static MonitorQualifyResultVO getVO(MonitorQualifyResult result) { MonitorQualifyResultVO vo = new MonitorQualifyResultVO(); - vo.setCivilCode(result.getCivilCode().getShowValue()); - vo.setCivilCodeError(result.getCivilCode().getError()); - vo.setIp(result.getIp().getShowValue()); - vo.setIpError(result.getIp().getError()); - vo.setIntegratedDevice(result.getIntegrated_device().getShowValue()); - vo.setIntegratedDeviceError(result.getIntegrated_device().getError()); - vo.setJkdwlx(result.getJkdwlx().getShowValue()); - vo.setJkdwlxError(result.getJkdwlx().getError()); - vo.setLatitude(result.getLatitude().getShowValue()); - vo.setLatitudeError(result.getLatitude().getError()); - vo.setLongitude(result.getLongitude().getShowValue()); - vo.setLongitudeError(result.getLongitude().getError()); - vo.setMacdz(result.getMacdz().getShowValue()); - vo.setMacdzError(result.getMacdz().getError()); - vo.setName(result.getName().getShowValue()); - vo.setNameError(result.getName().getError()); - vo.setSbzt(result.getSbzt().getShowValue()); - vo.setSbztError(result.getSbzt().getError()); - vo.setSerialNumber(result.getSerialNumber().getShowValue()); - vo.setSerialNumberError(result.getSerialNumber().getError()); - vo.setSxjcjqy(result.getSxjcjqy().getShowValue()); - vo.setSxjcjqyError(result.getSxjcjqy().getError()); - vo.setSxjgnlx(result.getSxjgnlx().getShowValue()); - vo.setSxjgnlxError(result.getSxjgnlx().getError()); - if (result.getNewDevice()) { + vo.setCivilCode(result.getCivilCode()!=null?result.getCivilCode().getShowValue():""); + vo.setCivilCodeError(result.getCivilCode()!=null?result.getCivilCode().getError():Boolean.FALSE); + vo.setIp(result.getIp()!=null?result.getIp().getShowValue():""); + vo.setIpError(result.getIp()!=null?result.getIp().getError():Boolean.FALSE); + vo.setIntegratedDevice(result.getIntegrated_device()!=null?result.getIntegrated_device().getShowValue():""); + vo.setIntegratedDeviceError(result.getIntegrated_device()!=null?result.getIntegrated_device().getError():Boolean.FALSE); + vo.setJkdwlx(result.getJkdwlx()!=null?result.getJkdwlx().getShowValue():""); + vo.setJkdwlxError(result.getJkdwlx()!=null?result.getJkdwlx().getError():Boolean.FALSE); + vo.setLatitude(result.getLatitude()!=null?result.getLatitude().getShowValue():""); + vo.setLatitudeError(result.getLatitude()!=null?result.getLatitude().getError():Boolean.FALSE); + vo.setLongitude(result.getLongitude()!=null?result.getLongitude().getShowValue():""); + vo.setLongitudeError(result.getLongitude()!=null?result.getLongitude().getError():Boolean.FALSE); + vo.setMacdz(result.getMacdz()!=null?result.getMacdz().getShowValue():""); + vo.setMacdzError(result.getMacdz()!=null?result.getMacdz().getError():Boolean.FALSE); + vo.setName(result.getName()!=null?result.getName().getShowValue():""); + vo.setNameError(result.getName()!=null?result.getName().getError():Boolean.FALSE); + vo.setSbzt(result.getSbzt()!=null?result.getSbzt().getShowValue():""); + vo.setSbztError(result.getSbzt()!=null?result.getSbzt().getError():Boolean.FALSE); + vo.setSerialNumber(result.getSerialNumber()!=null?result.getSerialNumber().getShowValue():""); + vo.setSerialNumberError(result.getSerialNumber()!=null?result.getSerialNumber().getError():Boolean.FALSE); + vo.setSxjcjqy(result.getSxjcjqy()!=null?result.getSxjcjqy().getShowValue():""); + vo.setSxjcjqyError(result.getSxjcjqy()!=null?result.getSxjcjqy().getError():Boolean.FALSE); + vo.setSxjgnlx(result.getSxjgnlx()!=null?result.getSxjgnlx().getShowValue():""); + vo.setSxjgnlxError(result.getSxjgnlx()!=null?result.getSxjgnlx().getError():Boolean.FALSE); + if (result.getNewDevice()!=null && result.getNewDevice()) { vo.setNewDevice("鏄�"); } else { vo.setNewDevice("鍚�"); diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java index 3935371..ad8ecef 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java @@ -81,7 +81,7 @@ //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬у畬鏁� if (result.getImportantTag() != null && result.getImportantTag()) { stats.importantTotalSites++; - if (result.getNoIntegrityPercent() <= 0.1) { + if (result.getNoIntegrityPercent()!=null && result.getNoIntegrityPercent() <= 0.1) { stats.importantIntegritySites++; } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java index 5db992f..1a7ea32 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java @@ -553,7 +553,7 @@ } //濉厖鍚勪釜鍖哄幙鏁版嵁 for (CheckScore checkScore : dashboard) { - Map<String, Object> map = new HashMap<>(); + Map<String, Object> map = resultMap.get(checkScore.getDeptName()); if (CheckConstants.Rule_Category_Video.equals(checkScore.getExamineCategory())) { map.put("video", checkScore.getScore().setScale(1, RoundingMode.HALF_UP)); } else if (CheckConstants.Rule_Category_Car.equals(checkScore.getExamineCategory())) { 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 39f5366..755d7c4 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 @@ -780,7 +780,7 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); Integer examineTag = monitorQuery.getExamineTag(); - Document matchConditions = new Document("mongoCreateTime", new Document("$gte", startDate).append("$lte", endDate)); + Document matchConditions = new Document("statTime", new Document("$gte", startDate).append("$lte", endDate)); // 鏍规嵁examineTag鐨勫�煎姩鎬佹坊鍔犻澶栫殑鏉′欢 if (examineTag != null && examineTag.equals(1)) { matchConditions.append("provinceTag", true); @@ -790,7 +790,7 @@ // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", matchConditions), - new Document("$group", new Document("_id", "$mongoCreateTime") + new Document("$group", new Document("_id", "$statTime") .append("normalCount", new Document("$sum", new Document("$cond", Arrays.asList( new Document("$eq", Arrays.asList("$recordStatus", 1)), @@ -976,7 +976,6 @@ results.add(homecarVO); } - //TODO锛氬湪绾夸慨鏀癸紝闇�瑕佹妸妫�娴嬫捣搴蜂紭浜戞娴嬬殑缁撴灉瀛樺叆mongo锛宮ongo鏌ョ偣浣嶅湪绾� MongoCollection<Document> onlineCollection = database.getCollection("t_monitor_online"); // 鏋勫缓鍩烘湰鐨�$match鏉′欢 List<Document> onlineMatch = new ArrayList<>(); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java index 11481c5..2236f58 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java @@ -183,7 +183,7 @@ // } long checkTime = item.getCheckTime().getTime(); long osdTime = item.getSetTime().getTime(); - Long timeDiff = (checkTime - osdTime) / 1000; + Long timeDiff = Math.abs((checkTime - osdTime) / 1000); ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue()); return workOrder; }).collect(Collectors.toList()); diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java index d1fbf3d..2ee25fa 100644 --- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java +++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java @@ -160,7 +160,7 @@ if (osdResult.getCheckTime() != null && osdResult.getOsdTime() != null) { long checkTime = osdResult.getCheckTime().getTime(); long osdTime = osdResult.getOsdTime().getTime(); - long timeDiff = (checkTime - osdTime) / 1000; + long timeDiff = Math.abs((checkTime - osdTime) / 1000); if (timeDiff <= 60) { osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Correct); } else { diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java index a2596a9..dc3b8b8 100644 --- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java +++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java @@ -168,7 +168,7 @@ imageResourceSecurities.add(imageResourceSecurity); //鑾峰彇鏈�杩戜竴娆℃暟鎹墜鍔ㄦ墦鍒� ImageResourceSecurity latest = imageResourceSecurityMapper.getLatest(checkIndexVideo.getDeptId(),new Date()); - imageResourceSecurity.setBoundaryIntegrity(latest.getBoundaryIntegrity()); + imageResourceSecurity.setBoundaryIntegrity(latest ==null?BigDecimal.ONE:latest.getBoundaryIntegrity()); // 鏇存柊鎸囨爣鏁版嵁 checkIndexVideo.setImageResourceSecurity( imageResourceSecurity.getPlatformOnline() diff --git a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java index 71b2aee..28ec3f1 100644 --- a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java +++ b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java @@ -48,13 +48,13 @@ private final DeviceInfoMapper deviceInfoMapper; private final WorkOrderCheckImgMapper workOrderCheckImgMapper; -// private static final ExecutorService executorService = new ThreadPoolExecutor(8, -// 10, -// 5000, -// TimeUnit.SECONDS, -// new ArrayBlockingQueue<>(1024), -// new ThreadPoolExecutor.CallerRunsPolicy() -// ); + private static final ExecutorService executorService = new ThreadPoolExecutor(16, + 128, + 5000, + TimeUnit.SECONDS, + new ArrayBlockingQueue<>(1000), + new ThreadPoolExecutor.CallerRunsPolicy() + ); public void run() throws FFmpegFrameGrabber.Exception { // 鏌ュ嚭鏈�杩戜竴鍛ㄧ殑鏁呴殰鐨勮澶� @@ -76,22 +76,24 @@ return; } for (DeviceInfoVO deviceInfo : deviceList) { - // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id - String frameImg = null; - try { - frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo()); - } catch (Exception e) { - e.printStackTrace(); - continue; - } - if (StringUtils.hasText(frameImg)) { - WorkOrderCheckImg img = new WorkOrderCheckImg(); - img.setWorkOrderNo(deviceInfo.getWorkOrderNo()); - img.setImgUrl(frameImg); - img.setCreateTime(new Date()); - workOrderCheckImgMapper.insert(img); - } + executorService.submit(() -> { + // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id + String frameImg = null; + try { + frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo()); + } catch (Exception e) { + e.printStackTrace(); + } + if (StringUtils.hasText(frameImg)) { + WorkOrderCheckImg img = new WorkOrderCheckImg(); + img.setWorkOrderNo(deviceInfo.getWorkOrderNo()); + img.setImgUrl(frameImg); + img.setCreateTime(new Date()); + workOrderCheckImgMapper.insert(img); + } + }); } + 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 37b54c3..57197dc 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -111,7 +111,7 @@ left join ( WITH cte AS ( SELECT *,row_number() OVER(PARTITION BY serial_number ORDER BY create_time DESC) rn FROM t_work_order - WHERE deleted = 0 AND status = 'AUDITING_SUCCESS' + WHERE deleted = 0 AND status != 'AUDITING_SUCCESS' ) SELECT * FROM cte WHERE rn=1 ) 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 @@ -141,9 +141,9 @@ #{cameraCaptureArea} </if> <if test="time !=null and time !=''">and TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <![CDATA[<=]]> #{time}</if> - <if test="onState != null and onState = 1">and (p.online = #{onState} and p.ping_online = #{onState})</if> - <if test="onState != null and onState = -1">and (p.online = #{onState} or p.ping_online = #{onState})</if> - <if test="onState != null and onState = 0">and (p.online = #{onState} and p.ping_online = #{onState})</if> + <if test="onState != null and onState == 1">and (p.online = #{onState} and p.ping_online = #{onState})</if> + <if test="onState != null and onState == -1">and (p.online = #{onState} or p.ping_online = #{onState})</if> + <if test="onState != null and onState == 0">and (p.online = #{onState} and p.ping_online = #{onState})</if> <if test="civilCode != null and civilCode != ''">and civil_code = #{civilCode}</if> <if test="integratedDevice != null ">and integrated_device = #{integratedDevice}</if> <if test="cameraBrand != null ">and camera_brand = #{cameraBrand}</if> @@ -197,9 +197,9 @@ <if test="cameraFunType != null and cameraFunType != ''">and camera_fun_type like concat('%', #{cameraFunType}, '%') </if> - <if test="onState != null and onState = 1">and (p.online = #{onState} and p.ping_online = #{onState})</if> - <if test="onState != null and onState = -1">and (p.online = #{onState} or p.ping_online = #{onState})</if> - <if test="onState != null and onState = 0">and (p.online = #{onState} and p.ping_online = #{onState})</if> + <if test="onState != null and onState == 1">and (p.online = #{onState} and p.ping_online = #{onState})</if> + <if test="onState != null and onState == -1">and (p.online = #{onState} or p.ping_online = #{onState})</if> + <if test="onState != null and onState == 0">and (p.online = #{onState} and p.ping_online = #{onState})</if> <if test="civilCode != null and civilCode != ''">and civil_code = #{civilCode}</if> </where> </select> diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index 3a71794..783bf1f 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml @@ -211,10 +211,10 @@ </select> <select id="getOfflineWorkOrder" resultType="java.lang.String"> select tm.ip - FROM - t_work_order wo - INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number - where (EXISTS ( + FROM t_work_order wo + INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number + where wo.status != 'AUDITING_SUCCESS' and wo.deleted = 0 + AND (EXISTS( SELECT 1 FROM t_work_order_error_type twoet WHERE twoet.work_order_no = wo.work_order_no @@ -331,7 +331,7 @@ FROM t_work_order wo WHERE - wo.status = 'YW_HANDLE' + (wo.status = 'YW_HANDLE' or wo.status ='DISTRIBUTED' ) AND wo.deleted = 0 </select> -- Gitblit v1.8.0