From 9d69a278fcb5c159ec62eec3ce78ae15eb5d5ece Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 16:24:59 +0800
Subject: [PATCH] 离线工单ip去重只生成一个工单
---
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 15 +++++----------
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java | 6 +++---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 9 ++-------
ycl-server/src/main/java/com/ycl/task/UYTask.java | 20 +++++++++++++++++---
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 2 +-
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 2 +-
6 files changed, 29 insertions(+), 25 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
index 2bf9e6f..c1f61ae 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
@@ -28,9 +28,9 @@
private String auditingRemark;
/**
- * 鏁呴殰绫诲瀷
+ * 宸ュ崟缂栧彿
*/
- @NotEmpty(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖")
- private List<String> errorTypes;
+ @NotEmpty(message = "宸ュ崟涓嶈兘涓虹┖")
+ private List<String> workOrderNos;
}
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 7583ad6..917c371 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
@@ -111,6 +111,6 @@
*/
List<WorkOrderVO> getRecoveryInfo(List<String> orders);
- List<WorkOrder> batchGetByError(@Param("form") WorkOrderBatchAuditingForm form);
+ List<WorkOrder> selectByNos(@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 8c1f764..cd93e96 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
@@ -424,13 +424,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Result batchAuditing(WorkOrderBatchAuditingForm form) {
- // 鏍规嵁鏁呴殰绫诲瀷鑾峰彇鍒楄〃
- List<WorkOrder> list = baseMapper.batchGetByError(form);
-// List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
-// .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue())
-// .in(WorkOrder::getErrorType, form.getErrorTypes())
-// .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo, WorkOrder::getSerialNumber)
-// .list();
+ //鏍规嵁宸ュ崟缂栧彿鑾峰彇宸ュ崟
+ List<WorkOrder> list = baseMapper.selectByNos(form.getWorkOrderNos());
if (list.isEmpty()) {
return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳");
}
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index 2f92fa3..737fbae 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -40,6 +40,7 @@
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
//浼樹簯瀵规帴鏁版嵁浠诲姟
@@ -260,9 +261,16 @@
//瀛樻斁鍦╩ongo涓�
mongoTemplate.insertAll(dataList);
}
- //宸ュ崟
+ //宸ュ崟锛堝悓涓�IP鍙敓鎴愪竴涓伐鍗曪級
List<WorkOrder> workOrderList = dataList.stream()
.filter(item -> Objects.nonNull(item.getWorkOrder()))
+ .collect(Collectors.toMap(
+ TMonitorResult::getIp,
+ Function.identity(),
+ (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓� TMonitorResult 瀵硅薄
+ ))
+ .values()
+ .stream()
.map(TMonitorResult::getWorkOrder)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderList)) {
@@ -312,8 +320,14 @@
return vo;
}).collect(Collectors.toList());
monitorMapper.updateOnline(willUpdateList);
- //绂荤嚎鐢熸垚宸ュ崟
- List<VideoOnlineResult> workOrders = records.stream().filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())).collect(Collectors.toList());
+ //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
+ List<VideoOnlineResult> workOrders = (List<VideoOnlineResult>) records.stream()
+ .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus()))
+ .collect(Collectors.toMap(
+ VideoOnlineResult::getIpAddr,
+ Function.identity(),
+ (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
+ )).values();
uyErrorTypeCheckService.videoOnlineCheck(workOrders);
} else {
log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 5e6b7dd..fb72b26 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -683,7 +683,7 @@
from t_monitor m
left join t_yw_point p on m.serial_number = p.serial_number
left join sys_dept d on p.dept_id = d.dept_id
- where p.online != 0 and p.examine_status = 1
+ where p.online != 0 and p.examine_status = 1
</select>
<update id="updateOnline">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 12caa67..a3d5d5c 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -433,21 +433,16 @@
p.yw_person_name
</select>
- <select id="batchGetByError" resultType="com.ycl.platform.domain.entity.WorkOrder">
+ <select id="selectByNos" resultType="com.ycl.platform.domain.entity.WorkOrder">
select wo.id,wo.unit_id,wo.work_order_no,wo.serial_number
from t_work_order wo
<where>
wo.deleted = 0 and wo.status = 'YW_HANDLE'
- <if test="form.errorTypes != null and form.errorTypes.size() > 0">
- AND (EXISTS (
- SELECT 1
- FROM t_work_order_error_type twoet
- WHERE twoet.work_order_no = wo.work_order_no
- AND twoet.error_name in
- <foreach collection="form.errorTypes" open="(" separator="," close=")" item="errorType">
- #{errorType}
+ <if test="workOrderNos != null and workOrderNos.size() > 0">
+ wo.work_order_no in
+ <foreach collection="workOrderNos" open="(" separator="," close=")" item="workOrderNo">
+ #{workOrderNo}
</foreach>
- ))
</if>
</where>
</select>
--
Gitblit v1.8.0