From f59d7f75a997872935d55288d37cd80b3acb6dff Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 21 一月 2025 10:33:05 +0800 Subject: [PATCH] 批量审核离线工单修改pingonline --- ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml | 13 ++++-- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 42 ++++++++++++++++---- ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java | 9 ++-- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java index 16efe99..01b10e5 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.WorkOrderErrorType; +import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.system.entity.SysDictData; import org.apache.ibatis.annotations.Param; import org.springframework.security.core.parameters.P; @@ -87,12 +88,12 @@ * @return */ int addMany(@Param("errorTypeList") List<WorkOrderErrorType> errorTypeList); - + List<SysDictData> getErrorList(@Param("workOrderNo") String workOrderNo); /** - * 鑾峰彇鏁呴殰绫诲瀷锛岃繛琛ㄥ瓧鍏� + * 鑾峰彇澶氫釜宸ュ崟鏁呴殰绫诲瀷 * - * @param workOrderNo + * @param workOrderNos * @return */ - List<SysDictData> getErrorList(@Param("workOrderNo") String workOrderNo); + List<WorkOrderVO> getErrorListByNumbers(@Param("workOrderNos") List<String> workOrderNos); } 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..45b302c 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(serialNumbers).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("鎿嶄綔鎴愬姛"); } diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml index d2bf388..78a1e49 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml @@ -97,12 +97,15 @@ </foreach> </insert> - <select id="getErrorList" resultType="com.ycl.system.entity.SysDictData"> - SELECT da.dict_value, da.dict_label + + <select id="getErrorListByNumbers" resultMap="com.ycl.platform.domain.vo.WorkOrderVO"> + SELECT oer.serial_number,oer.ip,da.dict_value as errorType FROM t_work_order_error_type oer - INNER JOIN sys_dict_data da ON oer.error_name = da.dict_value - WHERE oer.work_order_no = #{workOrderNo} + INNER JOIN sys_dict_data da ON oer.error_name = da.dict_value + WHERE oer.work_order_no in + <foreach collection="workOrderNos" separator="," open="(" close=")" item="workOrderNo"> + #{workOrderNo} + </foreach> ORDER BY oer.create_time </select> - </mapper> -- Gitblit v1.8.0