From 1ffc844e3483cd3ac7cc73b5fb17c62e09d1ff2f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 30 八月 2024 10:54:34 +0800
Subject: [PATCH] 工单取图像查询工单范围调整、分页图片查询

---
 ycl-server/src/main/java/com/ycl/task/HKTask.java                                |    2 +-
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                    |    8 ++++++--
 ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java                      |   11 ++++++++---
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java               |    9 +++++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   14 ++++++++++++--
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                |    4 ++++
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java            |    3 ++-
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java          |    5 ++++-
 8 files changed, 46 insertions(+), 10 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
index adde7d2..6cb4ec5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
@@ -55,10 +55,18 @@
 
     /** 鏁呴殰绫诲瀷 */
     private List<String> errorTypeList;
+
     /** 鏁呴殰绫诲瀷 */
     private String errorType;
+
+    /** 宸ュ崟妫�娴嬪浘鐗� */
+    private String imgListStr;
+
+    private List<String> imgList;
+
     /** 杩愮淮浜哄憳 */
     private Integer ywPeopleId;
+
     private String ywPeopleName;
 
     /** 杩愮淮澶勭悊鏃堕棿 */
@@ -89,6 +97,7 @@
      * 鏄惁鎵h繃绉垎
      */
     private Boolean deduct;
+
     public static WorkOrderVO getVoByEntity(@NonNull WorkOrder entity, WorkOrderVO vo) {
         if(vo == null) {
             vo = new WorkOrderVO();
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 c1632e9..517232c 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
@@ -14,6 +14,7 @@
 import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -70,7 +71,7 @@
      * 鏌ヨ宸ュ崟璁惧淇℃伅
      * @return
      */
-    List<DeviceInfoVO> hasErrorWorkOrderList();
+    List<DeviceInfoVO> hasErrorWorkOrderList(@Param("start") Date start, @Param("end") Date end);
 
     List<WorkOrderVO> selectPassOrder(@Param("startTime") LocalDateTime now, @Param("endTime")LocalDateTime thirtyDaysAgo, @Param("status") String status, @Param("auditStatus") String auditStatus);
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index bd272b2..0f3bf8b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -13,6 +13,7 @@
 import com.ycl.system.Result;
 import org.bytedeco.javacv.FFmpegFrameGrabber;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -193,9 +194,11 @@
     /**
      * 鏌ヨ宸ュ崟锛氬凡涓嬪彂銆佸凡澶勭悊銆佸凡瀹屾垚鐨勫伐鍗�
      *
+     * @param start 寮�濮嬫椂闂�
+     * @param end 缁撴潫鏃堕棿
      * @return 鏁版嵁
      */
-    List<DeviceInfoVO> hasErrorWorkOrderList();
+    List<DeviceInfoVO> hasErrorWorkOrderList(Date start, Date end);
 
     /**
      * 鏇存柊宸ュ崟鍥剧墖
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 a8f2c12..3702630 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
@@ -109,6 +109,13 @@
         if (CollectionUtils.isEmpty(workOrderList)) {
             return Boolean.TRUE;
         }
+        // 鏍规嵁鍥芥爣鐮佸幓閲�
+        workOrderList = workOrderList.stream()
+                .collect(Collectors.toMap(
+                        WorkOrder::getSerialNumber,
+                        p -> p,
+                        (existing, replacement) -> existing // 鍐茬獊鏃朵繚鐣欑涓�涓�
+                )).values().stream().collect(Collectors.toList());
         List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList());
         // 鏌ュ嚭鏁版嵁搴撲腑鍥芥爣鐮佸搴旂殑鏈畬鎴愮殑宸ュ崟
         List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper)
@@ -460,6 +467,9 @@
                 if (StringUtils.hasText(item.getErrorType())) {
                     item.setErrorTypeList(List.of(item.getErrorType().split(",")));
                 }
+                if (StringUtils.hasText(item.getImgListStr())) {
+                    item.setImgList(List.of(item.getImgListStr().split(",")));
+                }
             });
         }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
@@ -714,8 +724,8 @@
     }
 
     @Override
-    public List<DeviceInfoVO> hasErrorWorkOrderList() {
-        List<DeviceInfoVO> list = baseMapper.hasErrorWorkOrderList();
+    public List<DeviceInfoVO> hasErrorWorkOrderList(Date start, Date end) {
+        List<DeviceInfoVO> list = baseMapper.hasErrorWorkOrderList(start, end);
         return list;
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 0c9eea1..34ac13b 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -65,6 +65,7 @@
             //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
             ywThresholdService.carCheck(list);
         }
+        // 鏈湴娴嬭瘯
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
 //        ywThresholdService.carCheck(mongoTemplate.find(query, VehicleDeviceInspectionResult.class));
         log.info("缁撴潫杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
@@ -85,7 +86,6 @@
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(list);
             //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
-            //TODO:鍙兘鏈夐噸澶嶅伐鍗�
             ywThresholdService.faceCheck(list);
         }
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
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 2f8297a..ab8a75b 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -95,6 +95,7 @@
         } else {
             log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖");
         }
+        // 鏈湴娴嬭瘯
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
 //        uyErrorTypeCheckService.imageDetectionCheck(mongoTemplate.find(query, ImageDetectionResult.class));
         log.info("缁撴潫鎵ц鍥惧儚鐩戞祴鏁版嵁鍚屾");
@@ -135,6 +136,7 @@
         } else {
             log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖");
         }
+        // 鏈湴娴嬭瘯
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
 //        uyErrorTypeCheckService.monitorQualifyCheck(mongoTemplate.find(query, MonitorQualifyResult.class));
         log.info("缁撴潫涓�鏈轰竴妗e悎鏍肩巼鏁版嵁鍚屾");
@@ -178,6 +180,7 @@
         } else {
             log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖");
         }
+        // 鏈湴娴嬭瘯
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
 //        uyErrorTypeCheckService.videoOnlineCheck(mongoTemplate.find(query, VideoOnlineResult.class));
         log.info("缁撴潫鎵ц鐐逛綅鍦ㄧ嚎鏁版嵁鍚屾");
@@ -213,6 +216,7 @@
                 log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
             }
         }
+        // 鏈湴娴嬭瘯
 //        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
 //        uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class));
         log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾");
diff --git a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
index fe4d779..018a2b0 100644
--- a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
@@ -15,6 +15,7 @@
 import org.springframework.util.StringUtils;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ArrayBlockingQueue;
@@ -41,13 +42,17 @@
             24,
             5000,
             TimeUnit.SECONDS,
-            new ArrayBlockingQueue<>(10),
+            new ArrayBlockingQueue<>(600),
             new ThreadPoolExecutor.CallerRunsPolicy()
     );
 
     public void run() {
-        // 鏌ュ嚭鏁呴殰鐨勮澶�
-        List<DeviceInfoVO> deviceList = workOrderService.hasErrorWorkOrderList();
+        // 鏌ュ嚭鏈�杩戜竴鍛ㄧ殑鏁呴殰鐨勮澶�
+        Date now = new Date();
+        Calendar ca = Calendar.getInstance();
+        ca.setTime(now);
+        ca.add(Calendar.DATE, -6);
+        List<DeviceInfoVO> deviceList = workOrderService.hasErrorWorkOrderList(now, ca.getTime());
         if (CollectionUtils.isEmpty(deviceList)) {
             return;
         }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index a8b4dc1..da73d27 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -17,6 +17,7 @@
         <result column="errorType" property="errorType"/>
         <result column="status" property="status"/>
         <result column="source" property="source"/>
+        <result column="imgListStr" property="imgListStr"/>
 <!--        <collection property="errorTypeList" select="getErrorType" column="{workOrderNo=work_order_no,errList=errList}" ofType="string"/>-->
     </resultMap>
 
@@ -35,11 +36,13 @@
         u.unit_name,
         p.yw_person_name,
         tm.name as source,
-        GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR ',') AS errorType
+        GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR ',') AS errorType,
+        GROUP_CONCAT(DISTINCT ci.img_url ORDER BY ci.create_time DESC SEPARATOR ',') AS imgListStr
         FROM
         t_work_order wo
         INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number
         INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no
+        INNER JOIN t_work_order_check_img ci ON ci.work_order_no = wo.work_order_no
         INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">AND da.dict_value in <foreach
             collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> </if>
         LEFT JOIN t_yw_unit u ON wo.unit_id = u.id AND u.deleted = 0
@@ -222,7 +225,8 @@
         FROM
              t_work_order wo
         WHERE
-            deleted = 0
+            wo.create_time BETWEEN #{start} AND #{end}
+            AND deleted = 0
     </select>
 
     <insert id="addMany">

--
Gitblit v1.8.0