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