From 3dc714284a95fe9677a964ec039b2b547547e30d Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 05 十一月 2024 11:20:37 +0800 Subject: [PATCH] 工单异步获取图片、工单导出时间参数bug --- ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java | 2 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 16 ++++++- ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java | 3 + ycl-server/src/main/java/com/ycl/PlatformApplication.java | 2 + ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 38 ++++++++++++++++++ ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 1 6 files changed, 56 insertions(+), 6 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java index 4f3c3ac..f2cde76 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java @@ -26,7 +26,7 @@ private String deviceNo; /** - * 鎽勫儚鏈哄搧鐗� + * 鎽勫儚鏈哄搧鐗�0/1/2 娴峰悍/澶у崕/瀹囪 */ private Integer deviceBrand; diff --git a/ycl-server/src/main/java/com/ycl/PlatformApplication.java b/ycl-server/src/main/java/com/ycl/PlatformApplication.java index bc1cb05..a1dabae 100644 --- a/ycl-server/src/main/java/com/ycl/PlatformApplication.java +++ b/ycl-server/src/main/java/com/ycl/PlatformApplication.java @@ -8,6 +8,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.FeignAutoConfiguration; import org.springframework.data.mongodb.config.EnableMongoAuditing; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -18,6 +19,7 @@ @ImportAutoConfiguration({FeignAutoConfiguration.class}) @SpringBootApplication @EnableMongoAuditing +@EnableAsync //@EnableScheduling public class PlatformApplication { public static void main(String[] args) { 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 9c589ad..6abc566 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 @@ -270,4 +270,5 @@ * @author */ void batchImportWhite(List<PointExport> dataList); + } 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 5859cbc..fe5aea3 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 @@ -54,7 +54,9 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -100,6 +102,8 @@ private final ReportMapper reportMapper; private final WorkOrderCheckImgMapper workOrderCheckImgMapper; private final WorkOrderWhiteMapper workOrderWhiteMapper; + private final DeviceInfoMapper deviceInfoMapper; + private final ApplicationContext applicationContext; @Value("${rtsp.server:http://127.0.0.1:7788}") private String rtspServer; @@ -459,6 +463,7 @@ @Override @Transactional(rollbackFor = Exception.class) public Result ywCondition(WorkOrderYWConditionForm form) { + WorkOrder workOrder = baseMapper.selectById(form.getId()); if (Objects.isNull(workOrder)) { throw new ServiceException("宸ュ崟涓嶅瓨鍦�"); @@ -475,9 +480,37 @@ workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials()); workOrderYwConditionRecord.setSysMsg(Boolean.FALSE); workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); + //寮傛鑾峰彇鍥剧墖 + WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class); + self.getImage(workOrder); return Result.ok("鎿嶄綔鎴愬姛"); } + @Async("threadPoolTaskExecutor") + public void getImage(WorkOrder workOrder) { + List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper) + .orderByDesc(DeviceInfo::getUpdateTime) + .last("limit 1") + .list(); + if (CollectionUtils.isEmpty(gbDevices)) { + return; + } + // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id + String frameImg = null; + try { + log.info("鍥芥爣骞冲彴:{},璁惧缂栫爜:{},宸ュ崟鍙�:{}",gbDevices.get(0).getDeviceId(), workOrder.getSerialNumber(), workOrder.getWorkOrderNo()); + frameImg = this.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), workOrder.getSerialNumber(), workOrder.getWorkOrderNo()); + } catch (Exception e) { + e.printStackTrace(); + } + if (StringUtils.hasText(frameImg)) { + WorkOrderCheckImg img = new WorkOrderCheckImg(); + img.setWorkOrderNo(workOrder.getWorkOrderNo()); + img.setImgUrl(frameImg); + img.setCreateTime(new Date()); + workOrderCheckImgMapper.insert(img); + } + } @Override public List<WorkOrderYwConditionRecordVO> selectYwConditionByYwId(String workOrderNo) { List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(workOrderNo); @@ -791,6 +824,7 @@ @Override public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception { String url = String.format(this.rtspServer + "/api/play/start/img/%s/%s", deviceId, channelId); + log.info("璁块棶璺緞{}",url); String result = HttpUtils.sendGet(url); log.info("鎷垮埌鍙栨祦鍥剧墖鍝嶅簲缁撴灉锛�" + result); WVPResult wvpResult = JSON.parseObject(result, WVPResult.class); @@ -998,7 +1032,7 @@ query.setStart(query.getStart() + " 00:00:00"); } if (query.getEnd() == null) { - query.setStart(format.format(DateUtils.getDayEnd(new Date()))); + query.setEnd(format.format(DateUtils.getDayEnd(new Date()))); } else { query.setEnd(query.getEnd() + " 23:59:59"); } @@ -1083,4 +1117,6 @@ updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white)); insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white)); } + + } 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 7fae6d6..71b2aee 100644 --- a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java +++ b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java @@ -91,6 +91,7 @@ img.setCreateTime(new Date()); workOrderCheckImgMapper.insert(img); } - } } + } + } } diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index 859b1a5..fe9006f 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml @@ -105,6 +105,8 @@ wo.overtime, wo.deduct, u.unit_name, + u.unit_contact, + u.unit_contact_phone, p.yw_person_name, tm.name as source, GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR ',') AS errorType, @@ -114,12 +116,11 @@ 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_yw_unit u ON wo.unit_id = u.id AND u.deleted = 0 - 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> + INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' LEFT JOIN t_work_order_check_img ci ON ci.work_order_no = wo.work_order_no LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id AND p.deleted = 0 WHERE - wo.deleted = 0 + wo.deleted = 0 and wo.status != 'WAIT_DISTRIBUTE' <if test="query.unitId != null"> AND wo.unit_id = #{query.unitId} </if> @@ -132,6 +133,15 @@ <if test="query.start != null and query.end != null"> AND wo.create_time BETWEEN #{query.start} AND #{query.end} </if> + <if test="query.errorTypeList != null and query.errorTypeList.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="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> + )) + </if> GROUP BY wo.id, wo.status, wo.work_order_no, wo.serial_number,wo.create_time, wo.unit_id, wo.yw_people_id,tm.name, wo.yw_handle_time, wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct, u.unit_name, -- Gitblit v1.8.0