From d22bbb827940050d4df2bf3fb16dae79eba91d4e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 18:45:15 +0800
Subject: [PATCH] 批量审核bug,离线时间点回显

---
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                       |   10 ++---
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java       |   22 ++++++-----
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java |    8 ++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java    |   16 ++++++-
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                   |   17 +++++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java   |   22 ++++++-----
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java      |    4 +
 7 files changed, 64 insertions(+), 35 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java
index f6188ce..7e7486d 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java
@@ -1,8 +1,10 @@
 package com.ycl.platform.domain.form;
 
 import com.ycl.platform.base.AbsForm;
+import com.ycl.system.domain.group.Update;
 import enumeration.general.WorkOrderStatusEnum;
 import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -17,7 +19,7 @@
     /**
      * 瀹℃牳缁撴灉
      */
-    @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+    @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖", groups = {Update.class})
     private WorkOrderStatusEnum auditingResult;
 
     /**
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 c1f61ae..4be2e99 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
@@ -1,8 +1,10 @@
 package com.ycl.platform.domain.form;
 
+import com.ycl.system.domain.group.Update;
 import enumeration.general.WorkOrderStatusEnum;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.util.List;
@@ -19,7 +21,7 @@
     /**
      * 瀹℃牳缁撴灉
      */
-    @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+    @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖", groups = {Update.class})
     private WorkOrderStatusEnum auditingResult;
 
     /**
@@ -30,7 +32,7 @@
     /**
      * 宸ュ崟缂栧彿
      */
-    @NotEmpty(message = "宸ュ崟涓嶈兘涓虹┖")
-    private List<String> workOrderNos;
+    @NotEmpty(message = "璇峰厛鍕鹃�夐渶瑕佸鏍哥殑宸ュ崟", groups = {Update.class})
+    private List<String> workOrderNumbers;
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 10b913d..3b1c71d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -82,19 +82,21 @@
 
     @PutMapping("/yw-condition")
     @ApiOperation(value = "杩愮淮鎯呭喌", notes = "杩愮淮鎯呭喌")
-    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWConditionForm form) {
+    public Result ywCondition(@RequestBody @Validated WorkOrderYWConditionForm form) {
         return workOrderService.ywCondition(form);
     }
 
+    //鐜板湪娌$敤
     @PutMapping("/yw-result")
     @ApiOperation(value = "杩愮淮缁撴灉", notes = "杩愮淮缁撴灉")
-    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWResultForm form) {
+    public Result ywResult(@RequestBody @Validated WorkOrderYWResultForm form) {
         return workOrderService.ywResult(form);
     }
 
+    //鐜板湪娌$敤
     @PutMapping("/check-result")
     @ApiOperation(value = "妫�娴嬬粨鏋�", notes = "妫�娴嬬粨鏋�")
-    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderCheckResultForm form) {
+    public Result ywCheckResult(@RequestBody @Validated WorkOrderCheckResultForm form) {
         return workOrderService.checkResult(form);
     }
 
@@ -105,12 +107,12 @@
         return workOrderService.removeById(id);
     }
 
-    @DeleteMapping("/batch")
-    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
-    @PreAuthorize("@ss.hasPermi('work:order:remove')")
-    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
-        return workOrderService.remove(ids);
-    }
+//    @DeleteMapping("/batch")
+//    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+//    @PreAuthorize("@ss.hasPermi('work:order:remove')")
+//    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+//        return workOrderService.remove(ids);
+//    }
 
     @PostMapping("/page")
     @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
@@ -241,7 +243,7 @@
      */
     @DeleteMapping("/batchDelete")
     @PreAuthorize("@ss.hasPermi('work:order:delete')")
-    @ApiOperation(value = "鎵归噺鍒犻櫎宸ュ崟鐧藉悕鍗�", notes = "鎵归噺鍒犻櫎宸ュ崟鐧藉悕鍗�")
+    @ApiOperation(value = "鎵归噺鍒犻櫎宸ュ崟", notes = "鎵归噺鍒犻櫎宸ュ崟")
     public Result batchDeleteWorkOrder(@RequestBody List<String> workOrderNos) {
         return workOrderService.batchDeleteWorkOrder(workOrderNos);
     }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
index b2acaff..9ea32fa 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -108,17 +108,19 @@
                 item.setOnlineStr("鏈煡");
             }
             List<Date> offLineTime = item.getOffLineTime();
-            //鍚庣画鍙互鏀规垚閰嶇疆鐨勭绾挎鏁�(鎻愬彇鍓峮娆★紝n涓洪厤缃殑绂荤嚎娆℃暟)
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            if(CollectionUtils.isNotEmpty(offLineTime) && offLineTime.size()>1){
-                offLineTime = offLineTime.subList(0,1);
+            if(!CollectionUtils.isEmpty(offLineTime)) {
+                //鍚庣画鍙互鏀规垚閰嶇疆鐨勭绾挎鏁�(鎻愬彇鍓峮娆★紝n涓洪厤缃殑绂荤嚎娆℃暟)
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                if (offLineTime.size() > 1) {
+                    offLineTime = offLineTime.subList(0, 2);
+                }
+                List<String> dateStr = new ArrayList<>();
+                for (Date date : offLineTime) {
+                    String formatDate = format.format(date);
+                    dateStr.add(formatDate);
+                }
+                item.setOffLineTimeStr(dateStr);
             }
-            List<String> dateStr = new ArrayList<>();
-            for (Date date : offLineTime) {
-                String formatDate = format.format(date);
-                dateStr.add(formatDate);
-            }
-            item.setOffLineTimeStr(dateStr);
         });
         params.setDeptTag(-1);
         params.setDeviceType(1);
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 cd93e96..292d416 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
@@ -425,9 +425,9 @@
     @Transactional(rollbackFor = Exception.class)
     public Result batchAuditing(WorkOrderBatchAuditingForm form) {
         //鏍规嵁宸ュ崟缂栧彿鑾峰彇宸ュ崟
-        List<WorkOrder> list = baseMapper.selectByNos(form.getWorkOrderNos());
+        List<WorkOrder> list = baseMapper.selectByNos(form.getWorkOrderNumbers());
         if (list.isEmpty()) {
-            return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳");
+            return Result.error("娌℃湁寰呭鏍稿伐鍗�");
         }
         List<String> workOrderNoList = list.stream().map(WorkOrder::getWorkOrderNo).collect(Collectors.toList());
         List<String> serialNumbers = list.stream().map(WorkOrder::getSerialNumber).toList();
@@ -572,7 +572,17 @@
     public Result removeById(String id) {
         WorkOrder workOrder = baseMapper.selectById(id);
         String workOrderNo = workOrder.getWorkOrderNo();
-        workOrderDistributeRecordMapper.deleteByWorkOrder(workOrderNo);
+        //鍒犻櫎宸ュ崟瀹℃牳璁板綍
+        workOrderAuditingRecordMapper.delete(new QueryWrapper<WorkOrderAuditingRecord>().eq("work_order_no", workOrderNo));
+        //鍒犻櫎宸ュ崟鍥剧墖璁板綍
+        workOrderCheckImgMapper.delete(new QueryWrapper<WorkOrderCheckImg>().eq("work_order_no", workOrderNo));
+        //鍒犻櫎宸ュ崟涓嬪彂璁板綍
+        workOrderDistributeRecordMapper.delete(new QueryWrapper<WorkOrderDistributeRecord>().eq("work_order_no", workOrderNo));
+        //鍒犻櫎宸ュ崟鏁呴殰绫诲瀷
+        workOrderErrorTypeMapper.delete(new QueryWrapper<WorkOrderErrorType>().eq("work_order_no", workOrderNo));
+        //鍒犻櫎宸ュ崟鎯呭喌璁板綍
+        workOrderYwConditionRecordMapper.delete(new QueryWrapper<WorkOrderYwConditionRecord>().eq("work_order_no", workOrderNo));
+
         if (baseMapper.deleteById(id) > 0) {
             return Result.ok("鍒犻櫎鎴愬姛");
         }
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 737fbae..0256642 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -189,6 +189,15 @@
         }
         // 鍏堟煡鍑鸿澶嘔P闆嗗悎,鍓旈櫎鎺夊湪绾挎儏鍐垫槸鏈煡鐨�,骞朵笖鍙娴嬫鍦ㄨ�冩牳鐨勮澶囬伩鍏嶅浣欏伐鍗�
         List<TMonitorResult> monitorList = monitorMapper.getDistinctIP();
+        //琛ュ厖閿欒鏃堕棿鐐�
+        Query onlineQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+        Map<String, TMonitorResult> mongoMap = mongoTemplate.find(onlineQuery, TMonitorResult.class).stream().collect(Collectors.toMap(TMonitorResult::getNo, Function.identity()));
+        for (TMonitorResult result : monitorList) {
+            TMonitorResult mongoData = mongoMap.get(result.getNo());
+            if(mongoData!=null){
+                result.setOffLineTime(mongoData.getOffLineTime());
+            }
+        }
         List<TMonitorResult> dataList = new ArrayList<>(48);
         Integer time = times;
         List<CompletableFuture<TMonitorResult>> futureList = monitorList.stream()
@@ -214,6 +223,10 @@
                             monitor.setPingOnline(Boolean.FALSE);
                             monitor.setCheckCount(checkTimes);
                             monitor.setOffLineCount(offLineTimes);
+                            List<Date> offLineTime = monitor.getOffLineTime();
+                            if(CollectionUtils.isEmpty(offLineTime)) offLineTime = new ArrayList<>();
+                            offLineTime.add(new Date());
+                            monitor.setOffLineTime(offLineTime);
                             if (monitor.getOffLineCount() >= time) {
                                 WorkOrder workOrder = new WorkOrder();
                                 workOrder.setSerialNumber(monitor.getNo());
@@ -321,13 +334,13 @@
                         }).collect(Collectors.toList());
                         monitorMapper.updateOnline(willUpdateList);
                         //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
-                        List<VideoOnlineResult> workOrders = (List<VideoOnlineResult>) records.stream()
+                        List<VideoOnlineResult> workOrders = new ArrayList<>(records.stream()
                                 .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus()))
                                 .collect(Collectors.toMap(
                                         VideoOnlineResult::getIpAddr,
                                         Function.identity(),
                                         (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
-                                )).values();
+                                )).values());
                         uyErrorTypeCheckService.videoOnlineCheck(workOrders);
                     } else {
                         log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index a3d5d5c..1b74f97 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -438,12 +438,10 @@
         from t_work_order wo
         <where>
             wo.deleted = 0 and wo.status = 'YW_HANDLE'
-            <if test="workOrderNos != null and workOrderNos.size() > 0">
-                wo.work_order_no in
-                <foreach collection="workOrderNos" open="(" separator="," close=")" item="workOrderNo">
-                    #{workOrderNo}
-                </foreach>
-            </if>
+            and wo.work_order_no in
+            <foreach collection="workOrderNos" open="(" separator="," close=")" item="workOrderNo">
+                #{workOrderNo}
+            </foreach>
         </where>
     </select>
 </mapper>

--
Gitblit v1.8.0