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