From 8af39d20413790b72658675f3182714cc59011b3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期六, 24 八月 2024 17:37:31 +0800
Subject: [PATCH] 工单检测生成优化、海康阈值校验优化

---
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderYwConditionRecordMapper.java      |    6 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java          |   81 +++++++++++++++-----
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                               |   10 ++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java       |    6 
 ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java |    4 
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderYwConditionRecordMapper.xml              |   10 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java            |   25 +++++-
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                           |   68 ++++++++--------
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java                       |    8 ++
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java              |    1 
 ycl-common/src/main/java/enumeration/ErrorType.java                                         |   10 ++
 11 files changed, 163 insertions(+), 66 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/ErrorType.java b/ycl-common/src/main/java/enumeration/ErrorType.java
index 91b3cf1..743fe1f 100644
--- a/ycl-common/src/main/java/enumeration/ErrorType.java
+++ b/ycl-common/src/main/java/enumeration/ErrorType.java
@@ -31,6 +31,16 @@
     MONITOR_UNQUALIFY("MONITORUNQUALIFY", "涓�鏈轰竴妗d笉鍚堟牸"),
     PIC_UNUSEFUL("PICUNUSEFUL", "澶у浘涓嶅彲鐢�"),
     VIDEO_ORPIC_UNNORMAL("VIDEOORPICUNNORMAL", "瑙嗛鎷夋祦銆佸浘鐗囪幏鍙栧紓甯�"),
+
+    // 闃堝��
+    CLOCK_RIGHT("CLOCK_RIGHT", "鏃堕挓鍑嗙‘鐜囧紓甯�"),
+    LONG_DAY_NO_DATA("LONG_DAY_NO_DATA", "闀挎椂闂存棤鏁版嵁"),
+    DATA_TIMELY_ERROR("DATA_TIMELY_ERROR", "鏁版嵁鍙婃椂鎬у紓甯�"),
+    NOT_UNIQUE_DATA_VOLUME("NOT_UNIQUE_DATA_VOLUME", "涓嶅敮涓�鏁版嵁閲忓紓甯�"),
+    UNRECOGNIZED_DAY_VOLUME("UNRECOGNIZED_DAY_VOLUME", "鐧藉ぉ鏈瘑鍒暟鎹噺寮傚父"),
+    CAR_SIX("CAR_SIX", "杞﹁締鍏」灞炴�т笉瀹屾暣"),
+    MODELING_FAIL("MODELING_FAIL", "寤烘ā澶辫触鐜囧紓甯�"),
+    FACE_LOW("FACE_LOW", "浜鸿劯浣庡垎鐜囧紓甯�"),
     ;
 
     private String value;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
index 71231ca..39bcbe4 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
@@ -22,9 +22,9 @@
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty("宸ュ崟ID")
-    @TableField("work_order_id")
-    private Integer workOrderId;
+    @ApiModelProperty("宸ュ崟鍙�")
+    @TableField("work_order_no")
+    private String workOrderNo;
 
     @ApiModelProperty("鎻愪氦浜�")
     @TableField("commit_user")
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
index 2141d74..cc7673d 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
@@ -120,7 +120,7 @@
     @Data
     public static class SnapClock {
         /**
-         * 鏃堕挓鍑嗙‘鐜�
+         * 鏃堕挓鍑嗙‘鐜囷細1 == 100%
          */
         private Float clockPercent;
 
@@ -178,7 +178,7 @@
     @Data
     public static class SnapTimely {
         /**
-         * 鍙婃椂鐜�
+         * 鍙婃椂鐜� 1 == 100%
          */
         private Float timelyPercent;
 
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 21fef3c..96603cc 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
@@ -86,4 +86,5 @@
      * @return
      */
     int addMany(@Param("errorTypeList") List<WorkOrderErrorType> errorTypeList);
+
 }
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 53c5113..c1632e9 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
@@ -75,4 +75,12 @@
     List<WorkOrderVO> selectPassOrder(@Param("startTime") LocalDateTime now, @Param("endTime")LocalDateTime thirtyDaysAgo, @Param("status") String status, @Param("auditStatus") String auditStatus);
 
     int addMany(@Param("workOrderList") List<WorkOrder> workOrderList);
+
+    /**
+     * 鎵归噺淇敼鐘舵��
+     *
+     * @param workOrderList
+     * @return
+     */
+    int updateMany(List<WorkOrder> workOrderList);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderYwConditionRecordMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderYwConditionRecordMapper.java
index ee44f10..fbad792 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderYwConditionRecordMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderYwConditionRecordMapper.java
@@ -25,4 +25,10 @@
      */
     List<WorkOrderYwConditionRecordVO> selectYwConditionByYwId(@Param("workOrderId") Integer workOrderId);
 
+    /**
+     * 鎵归噺鎻掑叆
+     *
+     * @param ywRecordList
+     */
+    Integer insertMany(@Param("ywRecordList") List<WorkOrderYwConditionRecord> ywRecordList);
 }
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 eddf0e5..00718ae 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
@@ -121,6 +121,12 @@
         List<WorkOrderErrorType> waitAddErrorTypeList = new ArrayList<>(48);
         Integer updateNum = 0;
         Date now = new Date();
+        // 鍥犳晠闅滅被鍨嬩笉涓�鑷磋�岃鏇存柊鐘舵�佺殑宸ュ崟
+        List<WorkOrder> willUpdateStatusWorkOrderList = new ArrayList<>(48);
+        // 鏇存敼宸ュ崟绫诲瀷鑰岃澧炲姞鐨勭郴缁熻繍缁村鐞嗕俊鎭�
+        List<WorkOrderYwConditionRecord> willAddMsg = new ArrayList<>(48);
+        // 鍗冲皢瑕佹坊鍔犵殑閿欒绫诲瀷
+        List<WorkOrderErrorType> willAddErrorType = new ArrayList<>(96);
         for (WorkOrder workOrder : workOrderList) {
             WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
             if (Objects.nonNull(databaseWorkOrder)) {
@@ -138,20 +144,20 @@
                             workOrderErrorType.setCreateTime(now);
                             workOrderErrorType.setUpdateTime(now);
                             workOrderErrorType.setErrorName(errorType);
-                            workOrderErrorTypeService.save(workOrderErrorType);
+                            willAddErrorType.add(workOrderErrorType);
                         }
                     }
                     databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                     databaseWorkOrder.setUpdateTime(now);
-                    baseMapper.updateById(databaseWorkOrder);
+                    willUpdateStatusWorkOrderList.add(databaseWorkOrder);
                     updateNum++;
                     // 鍚屾椂鏂板涓�涓繍缁村鐞嗕俊鎭紝琛ㄦ槑姝ゅ伐鍗曡璋冩暣
                     WorkOrderYwConditionRecord ywRecord = new WorkOrderYwConditionRecord();
-                    ywRecord.setWorkOrderId(databaseWorkOrder.getId());
+                    ywRecord.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo());
                     ywRecord.setCommitUser(1);
                     ywRecord.setYwCondition("鏁呴殰绫诲瀷鏇存柊锛屽伐鍗曠姸鎬佽皟鏁翠负寰呭鐞�");
                     ywRecord.setCreateTime(new Date());
-                    workOrderYwConditionRecordMapper.insert(ywRecord);
+                    willAddMsg.add(ywRecord);
                 }
             } else {
                 workOrder.setCreateTime(new Date());
@@ -163,6 +169,15 @@
 //                }
                 waitAddList.add(workOrder);
             }
+        }
+        if (willAddErrorType.size() > 0) {
+            workOrderErrorTypeService.getBaseMapper().addMany(willAddErrorType);
+        }
+        if (willAddMsg.size() > 0) {
+            workOrderYwConditionRecordMapper.insertMany(willAddMsg);
+        }
+        if (willUpdateStatusWorkOrderList.size() > 0) {
+            this.baseMapper.updateMany(willUpdateStatusWorkOrderList);
         }
         if (CollectionUtils.isEmpty(waitAddList)) {
             return Boolean.TRUE;
@@ -360,7 +375,7 @@
         baseMapper.updateById(workOrder);
         // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰�
         WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord();
-        workOrderYwConditionRecord.setWorkOrderId(workOrder.getId());
+        workOrderYwConditionRecord.setWorkOrderNo(workOrder.getWorkOrderNo());
         workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue());
         workOrderYwConditionRecord.setYwCondition(form.getYwCondition());
         workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials());
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index 34df3f5..c04c859 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ycl.utils.ip.PingUtil;
 import constant.YwThreadConstants;
 import enumeration.CompareType;
+import enumeration.ErrorType;
 import enumeration.general.BusinessTypeEnum;
 import enumeration.general.WorkOrderStatusEnum;
 import lombok.extern.slf4j.Slf4j;
@@ -163,24 +164,41 @@
                 log.error("浜鸿劯瀵硅薄鏁版嵁涓虹┖");
                 continue;
             }
+            WorkOrder workOrder = new WorkOrder();
             //妫�鏌ユ椂閽熷噯纭巼
             Float clockPercent = result.getSnapClock().getClockPercent();
-            check(YwThreadConstants.Face_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Face_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
             //妫�鏌ユ暟鎹強鏃剁巼
             Float timelyPercent = result.getSnapTimely().getTimelyPercent();
-            check(YwThreadConstants.Face_TimelyPercent, timelyPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Face_TimelyPercent, timelyPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
             //妫�鏌ユ寔缁棤鏁版嵁澶╂暟
             Integer continueNoDataCount = result.getContinueNoDataCount();
-            check(YwThreadConstants.Face_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Face_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.LONG_DAY_NO_DATA.getValue());
             //妫�鏌ヤ笉鍞竴鏁版嵁閲�
             Integer nouniqueCount = result.getSnapUnique().getNouniqueCount();
-            check(YwThreadConstants.Face_NouniqueCount, nouniqueCount, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Face_NouniqueCount, nouniqueCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
             //妫�鏌ヤ汉鑴镐綆璇勫垎鐜�
             Float lowScorePercent = result.getSnapValidity().getLowScorePercent();
-            check(YwThreadConstants.Face_LowScorePercent, lowScorePercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Face_LowScorePercent, lowScorePercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.FACE_LOW.getValue());
             //妫�鏌ュ缓妯″け璐ョ巼
             Float failPercent = result.getSnapValidity().getFailPercent();
-            check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
+            // 鐐逛綅鍦ㄧ嚎鐜�
+            if (2 == result.getSnapResult()) {
+                workOrder.setSerialNumber(result.getExternalIndexCode());
+                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+                    workOrder.setErrorTypeList(new ArrayList<>());
+                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+                } else {
+                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+                }
+            }
+            if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
+                workOrderList.add(workOrder);
+            } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
+                distributeList.add(workOrder);
+            }
         }
         /** 娣诲姞宸ュ崟 */
         workOrderService.innerAddWorkOrder(workOrderList);
@@ -205,24 +223,41 @@
                 log.error("杞﹁締瀵硅薄鏁版嵁涓虹┖");
                 continue;
             }
+            WorkOrder workOrder = new WorkOrder();
             //妫�鏌ユ寔缁棤鏁版嵁澶╂暟
             Integer continueNoDataCount = result.getContinueNoDataCount();
-            check(YwThreadConstants.Car_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Car_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.LONG_DAY_NO_DATA.getValue());
             //妫�鏌ユ椂閽熷噯纭巼
             Float clockPercent = result.getSnapClock().getClockPercent();
-            check(YwThreadConstants.Car_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Car_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
             //妫�鏌ユ暟鎹強鏃剁巼
             Float timelyPercentResult = result.getSnapTimely().getTimelyPercent();
-            check(YwThreadConstants.Car_TimelyPercent, timelyPercentResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
+            check(YwThreadConstants.Car_TimelyPercent, timelyPercentResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
             //妫�鏌ヤ笉鍞竴鏁版嵁閲�
             Integer nouniqueCountResult = result.getSnapUnique().getNouniqueCount();
-            check(YwThreadConstants.Car_NouniqueCount, nouniqueCountResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Car_NouniqueCount, nouniqueCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
             //妫�鏌ョ櫧澶╂湭璇嗗埆閲�
             Integer dayNoNumberCountResult = result.getSnapPlate().getDayNoNumberCount();
-            check(YwThreadConstants.Car_DayNoNumberCount, dayNoNumberCountResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Car_DayNoNumberCount, dayNoNumberCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.UNRECOGNIZED_DAY_VOLUME.getValue());
             //杞﹁締鍏」灞炴�т笉瀹屾暣閲�
             Integer noIntegrityCountResult = result.getIntegrity().getNoIntegrityCount();
-            check(YwThreadConstants.Car_NoIntegrityCount, noIntegrityCountResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
+            check(YwThreadConstants.Car_NoIntegrityCount, noIntegrityCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CAR_SIX.getValue());
+            // 鐐逛綅鍦ㄧ嚎鐜�
+            if (2 == result.getSnapResult()) {
+                workOrder.setSerialNumber(result.getExternalIndexCode());
+                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+                    workOrder.setErrorTypeList(new ArrayList<>());
+                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+                } else {
+                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+                }
+            }
+            if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
+                workOrderList.add(workOrder);
+            } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
+                distributeList.add(workOrder);
+            }
         }
         /** 娣诲姞宸ュ崟 */
         workOrderService.innerAddWorkOrder(workOrderList);
@@ -251,13 +286,11 @@
      * @param value 鎺ュ彛鑾峰彇鍒扮殑鍊�
      * @param serialNumber 鍥芥爣鐮�
      * @param thresholds 闃堝�兼潯浠秏ap
-     * @param distributeList 瑕佷笅鍙戠殑宸ュ崟瀹瑰櫒
-     * @param workOrderList 寰呬笅鍙戠殑宸ュ崟瀹瑰櫒
      * @param compareType 姣旇緝鏂瑰紡锛�>=    <=
      * @param errorType 鏁呴殰绫诲瀷
      * @param <T>
      */
-    private <T extends Comparable<T>> void check(String key, T value, String serialNumber, Map<String, YwThreshold> thresholds, List distributeList, List workOrderList, CompareType compareType,String errorType) {
+    private <T extends Comparable<T>> void check(String key, T value, String serialNumber, Map<String, YwThreshold> thresholds, WorkOrder workOrder, CompareType compareType,String errorType) {
         Optional.ofNullable(value).ifPresentOrElse(
                 v -> {
                     YwThreshold ywThreshold = thresholds.get(key);
@@ -267,18 +300,24 @@
                     //姣旇緝澶у皬锛屽姞鍏ュ埌瀵瑰簲寰呭鐞嗛泦鍚�
                     if (compareType.compare(v, thresholdAutoValue)) {
                         //鑷姩涓嬪彂宸ュ崟
-                        WorkOrder workOrder = new WorkOrder();
                         workOrder.setSerialNumber(serialNumber);
                         workOrder.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
-                        workOrder.setErrorType(errorType);
-                        workOrderList.add(workOrder);
+                        if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+                            workOrder.setErrorTypeList(new ArrayList<>());
+                            workOrder.getErrorTypeList().add(errorType);
+                        } else {
+                            workOrder.getErrorTypeList().add(errorType);
+                        }
                     } else if (compareType.compare(v, thresholdValue)) {
                         //杩涘叆宸ュ崟浠d笅鍙�
-                        WorkOrder workOrder = new WorkOrder();
                         workOrder.setSerialNumber(serialNumber);
                         workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
-                        workOrder.setErrorType(errorType);
-                        distributeList.add(workOrder);
+                        if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+                            workOrder.setErrorTypeList(new ArrayList<>());
+                            workOrder.getErrorTypeList().add(errorType);
+                        } else {
+                            workOrder.getErrorTypeList().add(errorType);
+                        }
                     }
                 },
                 () -> log.error("{} 涓虹┖: {}", thresholds.get(key).getName(), serialNumber)
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 1313214..3241096 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -144,40 +144,40 @@
     public void videoOnlineTask() {
         //瑙嗛鍥惧儚璐ㄩ噺
         log.info("寮�濮嬫墽琛岀偣浣嶅湪绾挎暟鎹悓姝�");
-        VideoOnlineParam param = new VideoOnlineParam();
-        param.setPageNum(ApiConstants.PageNo);
-        param.setPageSize(ApiConstants.PageSize);
-        param.setArealayerno(ApiConstants.AreaNo);
-        param.setStatus(ApiConstants.UY_OnlineStatus_All);
-        param.setIcmpStatus(ApiConstants.UY_OnlineStatus_All);
-        JSONObject jsonObject = uyClient.videoOnline(param);
-        if (jsonObject != null) {
-            Integer statusCode = jsonObject.getInteger("statusCode");
-            if (ApiConstants.UYSuccessCode.equals(statusCode)) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                if (data != null) {
-                    List<VideoOnlineResult> records = data.getList("records", VideoOnlineResult.class);
-                    if (!CollectionUtils.isEmpty(records)) {
-                        //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
-                        Query query = new Query(Criteria
-                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
-                        DeleteResult result = mongoTemplate.remove(query, VideoOnlineResult.class);
-                        //瀛樻斁鍦╩ongo涓�
-                        mongoTemplate.insertAll(records);
-                        // 宸ュ崟鐢熸垚
-                        uyErrorTypeCheckService.videoOnlineCheck(records);
-                    } else {
-                        log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);
-                    }
-                } else {
-                    log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", jsonObject);
-                }
-            } else {
-                log.error("鐐逛綅鍦ㄧ嚎缁撴灉璇锋眰澶辫触{}", jsonObject);
-            }
-        } else {
-            log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖");
-        }
+//        VideoOnlineParam param = new VideoOnlineParam();
+//        param.setPageNum(ApiConstants.PageNo);
+//        param.setPageSize(ApiConstants.PageSize);
+//        param.setArealayerno(ApiConstants.AreaNo);
+//        param.setStatus(ApiConstants.UY_OnlineStatus_All);
+//        param.setIcmpStatus(ApiConstants.UY_OnlineStatus_All);
+//        JSONObject jsonObject = uyClient.videoOnline(param);
+//        if (jsonObject != null) {
+//            Integer statusCode = jsonObject.getInteger("statusCode");
+//            if (ApiConstants.UYSuccessCode.equals(statusCode)) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                if (data != null) {
+//                    List<VideoOnlineResult> records = data.getList("records", VideoOnlineResult.class);
+//                    if (!CollectionUtils.isEmpty(records)) {
+//                        //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+//                        Query query = new Query(Criteria
+//                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+//                        DeleteResult result = mongoTemplate.remove(query, VideoOnlineResult.class);
+//                        //瀛樻斁鍦╩ongo涓�
+//                        mongoTemplate.insertAll(records);
+//                        // 宸ュ崟鐢熸垚
+//                        uyErrorTypeCheckService.videoOnlineCheck(records);
+//                    } else {
+//                        log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);
+//                    }
+//                } else {
+//                    log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", jsonObject);
+//                }
+//            } else {
+//                log.error("鐐逛綅鍦ㄧ嚎缁撴灉璇锋眰澶辫触{}", jsonObject);
+//            }
+//        } else {
+//            log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖");
+//        }
         Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
         uyErrorTypeCheckService.videoOnlineCheck(mongoTemplate.find(query, VideoOnlineResult.class));
         log.info("缁撴潫鎵ц鐐逛綅鍦ㄧ嚎鏁版嵁鍚屾");
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 5d2a153..87b67e7 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -219,4 +219,14 @@
         WHERE wo.deleted = 0 AND wo.status = #{status}  AND woar.result = #{auditStatus}
         AND wo.deduct = 0 AND woar.create_time between #{startTime} and #{endTime}
     </select>
+
+    <update id="updateMany">
+        <foreach collection="workOrderList" separator=";" item="item">
+            UPDATE t_work_order
+            SET
+            update_time = #{item.updateTime},
+            status = #{item.status}
+            WHERE id = #{item.id}
+        </foreach>
+    </update>
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderYwConditionRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderYwConditionRecordMapper.xml
index 24fc1cd..940786c 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderYwConditionRecordMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderYwConditionRecordMapper.xml
@@ -15,8 +15,16 @@
     <select id="selectYwConditionByYwId" resultMap="BaseResultMap">
         SELECT yw.id, yw.commit_user, yw.yw_condition, yw.yw_proofMaterials, yw.create_time, yw.sys_msg, su.nick_name
         FROM t_work_order_yw_condition_record yw
-                 INNER JOIN sys_user su ON yw.commit_user = su.user_id AND yw.deleted = 0 AND yw.work_order_id = #{workOrderId}
+                 INNER JOIN sys_user su ON yw.commit_user = su.user_id AND yw.deleted = 0 AND yw.work_order_no = #{workOrderId}
         ORDER BY yw.create_time DESC
     </select>
 
+    <insert id="insertMany">
+        insert into t_work_order_yw_condition_record (work_order_no, commit_user, yw_condition, deleted, create_time)
+        values
+        <foreach collection="ywRecordList" item="item" separator=",">
+            (#{item.workOrderNo}, #{item.commitUser}, #{item.ywCondition}, 0, now())
+        </foreach>
+    </insert>
+
 </mapper>

--
Gitblit v1.8.0