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