From 23fc1a4a8de125d8bee6fc602e767a5310b89f3e Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 07 四月 2025 17:34:08 +0800 Subject: [PATCH] 新设备品牌名,通道问题, --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 69 ++++++++++++++++++++++++++++++---- 1 files changed, 60 insertions(+), 9 deletions(-) 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 c8aaf89..e16d539 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 @@ -35,6 +35,7 @@ import com.ycl.utils.http.HttpUtils; import com.ycl.utils.redis.RedisCache; import com.ycl.utils.uuid.IdUtils; +import constant.ApiConstants; import constant.Constants; import constant.RedisConstant; import enumeration.ErrorType; @@ -471,18 +472,22 @@ UrgentLevelEnum.WARNING, workOrder.getWorkOrderNo()); notifyService.save(notify); - List<String> errorList = workOrderErrorTypeMapper.getErrorList(workOrder.getWorkOrderNo()) - .stream().map(SysDictData::getDictValue).collect(Collectors.toList()); + List<WorkOrderVO> workOrderVOS = workOrderErrorTypeMapper.getErrorListByNumbers(Arrays.asList(workOrder.getWorkOrderNo())); + // 鍚屾鐐逛綅鐘舵�� if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) { ywPointService.updateRecovery(Collections.singletonList(workOrder.getSerialNumber()), 0); //濡傛灉宸ュ崟涓虹绾垮伐鍗曢偅涔堜慨鏀圭偣浣峱ingOnline涓哄湪绾� - if(!CollectionUtils.isEmpty(errorList) && errorList.contains(ErrorType.DEVICE_OFFLINE.getValue())){ - new LambdaUpdateChainWrapper<>(ywPointMapper) - .eq(YwPoint::getSerialNumber, workOrder.getSerialNumber()) - .set(YwPoint::getUpdateTime, new Date()) - .set(YwPoint::getPingOnline, 1) - .update(); + if (!CollectionUtils.isEmpty(workOrderVOS)) { + List<String> ips = new ArrayList<>(); + for (WorkOrderVO workOrderVO : workOrderVOS) { + if(ErrorType.DEVICE_OFFLINE.getValue().equals(workOrderVO.getErrorType())){ + ips.add(workOrderVO.getIp()); + } + } + if(!CollectionUtils.isEmpty(ips)) { + monitorMapper.batchUpdateOnline(ips, new Date(), ApiConstants.UY_OnlineSite_Online); + } } } @@ -525,11 +530,30 @@ workOrder.getWorkOrderNo()); notifies.add(notify); } + notifyService.saveBatch(notifies); // 鍚屾鐐逛綅鐘舵�� if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) { ywPointService.updateRecovery(serialNumbers, 0); + //绛涢�夊嚭绂荤嚎宸ュ崟ip骞朵慨鏀瑰湪绾跨姸鎬� + if (!CollectionUtils.isEmpty(serialNumbers)) { + Map<String, List<String>> errorTypes = workOrderErrorTypeMapper.getErrorListByNumbers(workOrderNoList).stream().collect(Collectors.groupingBy( + WorkOrderVO::getIp, + Collectors.mapping( + WorkOrderVO::getErrorType, + Collectors.toList() + ) + )); + List<String> ips = new ArrayList<>(); + errorTypes.forEach((key, value) -> { + if (!CollectionUtils.isEmpty(value) && value.contains(ErrorType.DEVICE_OFFLINE.getValue())) { + ips.add(key); + } + }); + if(!CollectionUtils.isEmpty(ips)) { + monitorMapper.batchUpdateOnline(ips, new Date(), ApiConstants.UY_OnlineSite_Online); + } + } } - notifyService.saveBatch(notifies); return Result.ok("鎿嶄綔鎴愬姛"); } @@ -1142,6 +1166,9 @@ return Result.ok().data(workOrder); } + @Autowired + private WorkOrderMapper workOrderMapper; + /** * 宸ュ崟瀵煎嚭鐨勯�昏緫 * 鏍囩锛氬悓涓�涓猧p鏍囩鍚堝湪涓�璧凤紝閽堝绂荤嚎宸ュ崟锛坕p鐩稿悓灏变笉浼氱敓鎴愬伐鍗曪級锛屾柟渚胯繍缁村鐞� @@ -1171,6 +1198,30 @@ query.setErrorTypeList(errorTypeList); } List<WorkOrderVO> export = baseMapper.export(query); + + + List<String> workOrderNos = export.stream().map(WorkOrderVO::getWorkOrderNo).collect(Collectors.toList()); + List<WorkOrderVO> auditTimeList = workOrderMapper.getAuditTimeList(workOrderNos); + Map<String, List<Date>> auditTimeMap = auditTimeList.stream() + .collect(Collectors.groupingBy( + WorkOrderVO::getWorkOrderNo, // 鍒嗙粍鐨勯敭 + Collectors.mapping(WorkOrderVO::getAuditTime, Collectors.toList()))); + if (!CollectionUtils.isEmpty(workOrderNos)){ + export.forEach(workOrderVO -> { + List<Date> auditTimes = auditTimeMap.get(workOrderVO.getWorkOrderNo()); + if (!CollectionUtils.isEmpty(auditTimes)){ + //瀹℃牳閫氳繃鏃堕棿 + Date passTime = Collections.max(auditTimes); + ZoneId zoneId = ZoneId.systemDefault(); + workOrderVO.setPassTime(passTime.toInstant().atZone(zoneId).toLocalDateTime()); + } + }); + } + + + + + if (CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>(); List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList()); //鏌ュ嚭鐩稿悓ip鐨勮澶囥�佸苟鏌ュ嚭鏍囩 -- Gitblit v1.8.0