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