From 397eda7e04fd23016ba55b1b12af63bfeb00e482 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 12 十一月 2024 11:16:55 +0800 Subject: [PATCH] bug+检测按钮+新的故障下拉框+工单删除+记录检测离线具体时间点等等 --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 133 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 125 insertions(+), 8 deletions(-) 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 86f83a0..8c1f764 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 @@ -44,6 +44,7 @@ import constant.CheckConstants; import constant.Constants; import constant.RedisConstant; +import enumeration.ErrorType; import enumeration.general.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -62,6 +63,7 @@ import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import pojo.CascadeOption; import javax.imageio.ImageIO; import javax.swing.*; @@ -98,6 +100,7 @@ private final NotifyService notifyService; private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; private final WorkOrderErrorTypeServiceImpl workOrderErrorTypeService; + private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; private final SysConfigMapper configMapper; private final ReportMapper reportMapper; private final WorkOrderCheckImgMapper workOrderCheckImgMapper; @@ -422,11 +425,12 @@ @Transactional(rollbackFor = Exception.class) public Result batchAuditing(WorkOrderBatchAuditingForm form) { // 鏍规嵁鏁呴殰绫诲瀷鑾峰彇鍒楄〃 - List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper) - .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue()) - .in(WorkOrder::getErrorType, form.getErrorTypes()) - .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo, WorkOrder::getSerialNumber) - .list(); + List<WorkOrder> list = baseMapper.batchGetByError(form); +// List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper) +// .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue()) +// .in(WorkOrder::getErrorType, form.getErrorTypes()) +// .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo, WorkOrder::getSerialNumber) +// .list(); if (list.isEmpty()) { return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳"); } @@ -521,6 +525,9 @@ public List<WorkOrderYwConditionRecordVO> selectYwConditionByYwId(String workOrderNo) { List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(workOrderNo); ywConditionList.stream().forEach(item -> { + if(item.getUserId().equals(1)){ + item.setUnitName("绠$悊鍛�"); + } if (Objects.nonNull(item.getSysMsg()) && item.getSysMsg()) { item.setUnitName("绯荤粺娑堟伅"); } @@ -595,7 +602,18 @@ if (!CollectionUtils.isEmpty(page.getRecords())) { page.getRecords().stream().forEach(item -> { if (StringUtils.hasText(item.getErrorType())) { - item.setErrorTypeList(List.of(item.getErrorType().split(","))); + List<String> errorTypeList = new ArrayList<>(List.of(item.getErrorType().split(","))); + int index = errorTypeList.indexOf(query.getErrorTypeLabel()); + if (index != -1) { + // 淇濆瓨瑕佺Щ鍔ㄧ殑鍏冪礌 + String firstOccurrence = errorTypeList.get(index); + // 浠庡垪琛ㄤ腑绉婚櫎璇ュ厓绱狅紙绗竴娆″嚭鐜扮殑浣嶇疆锛� + errorTypeList.remove(index); + // 灏嗚鍏冪礌娣诲姞鍒板垪琛ㄧ殑棣栦綅 + errorTypeList.add(0, firstOccurrence); + } + // 璁剧疆鏇存柊鍚庣殑鍒楄〃 + item.setErrorTypeList(errorTypeList); } if (StringUtils.hasText(item.getImgListStr())) { item.setImgList(List.of(item.getImgListStr().split(","))); @@ -835,7 +853,7 @@ @Override - public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception { + public 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); @@ -1037,7 +1055,9 @@ @Override public List<WorkOrderVO> export (WorkOrderExportQuery query){ - query.setUnitId(SecurityUtils.getUnitId()); + if(query.getUnitId()==null) { + query.setUnitId(SecurityUtils.getUnitId()); + } if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00"); if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59"); @@ -1119,5 +1139,102 @@ insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white)); } + /** + * 妫�娴嬪伐鍗曟寜閽� + * @param workOrderNo + * @return + */ + @Override + public Result checkImage(String workOrderNo,String serialNumber) { + // 鏌ュ嚭鍥芥爣璁惧锛屽氨涓�鏉℃暟鎹� + List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper) + .orderByDesc(DeviceInfo::getUpdateTime) + .last("limit 1") + .list(); + if (!CollectionUtils.isEmpty(gbDevices)) { + try { + String imgUrl = this.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), serialNumber,workOrderNo); + if (StringUtils.hasText(imgUrl)) { + WorkOrderCheckImg img = new WorkOrderCheckImg(); + img.setWorkOrderNo(workOrderNo); + img.setImgUrl(imgUrl); + img.setCreateTime(new Date()); + workOrderCheckImgMapper.insert(img); + } + return Result.ok().data(imgUrl); + } catch (Exception e) { + e.printStackTrace(); + } + } + return Result.ok(); + } + @Override + @Transactional(rollbackFor = Exception.class) + public Result batchDeleteWorkOrder(List<String> workOrderNos) { + if(!CollectionUtils.isEmpty(workOrderNos)) { + //鍒犻櫎宸ュ崟瀹℃牳璁板綍 + workOrderAuditingRecordMapper.delete(new QueryWrapper<WorkOrderAuditingRecord>().in("work_order_no", workOrderNos)); + //鍒犻櫎宸ュ崟鍥剧墖璁板綍 + workOrderCheckImgMapper.delete(new QueryWrapper<WorkOrderCheckImg>().in("work_order_no", workOrderNos)); + //鍒犻櫎宸ュ崟涓嬪彂璁板綍 + workOrderDistributeRecordMapper.delete(new QueryWrapper<WorkOrderDistributeRecord>().in("work_order_no", workOrderNos)); + //鍒犻櫎宸ュ崟鏁呴殰绫诲瀷 + workOrderErrorTypeMapper.delete(new QueryWrapper<WorkOrderErrorType>().in("work_order_no", workOrderNos)); + //鍒犻櫎宸ュ崟鎯呭喌璁板綍 + workOrderYwConditionRecordMapper.delete(new QueryWrapper<WorkOrderYwConditionRecord>().in("work_order_no", workOrderNos)); + //鍒犻櫎宸ュ崟 + this.baseMapper.delete(new QueryWrapper<WorkOrder>().in("work_order_no", workOrderNos)); + } + return Result.ok(); + } + + @Override + public Result errorAll() { + List<CascadeOption> results = new ArrayList<>(); + CascadeOption video = new CascadeOption(); + video.setLabel("瑙嗛"); + video.setValue("VIDEO"); + List<ErrorType> videoErr = ErrorType.getErrorTypesByCategory("VIDEO"); + List<ErrorType> videoErr1 = ErrorType.getErrorTypesByCategory("COMMON"); + videoErr.addAll(videoErr1); + List<CascadeOption> videoChildren = videoErr.stream().map(item -> CascadeOption.builder() + .value(item.getValue()) + .label(item.getDesc()) + .build()).collect(Collectors.toList()); + video.setChildren(videoChildren); + + CascadeOption car = new CascadeOption(); + car.setLabel("杞﹁締"); + car.setValue("CAR"); + List<ErrorType> carErr = ErrorType.getErrorTypesByCategory("CAR"); + List<ErrorType> carErr1 = ErrorType.getErrorTypesByCategory("COMMON"); + List<ErrorType> carErr2 = ErrorType.getErrorTypesByCategory("CARORFACE"); + carErr.addAll(carErr1); + carErr.addAll(carErr2); + List<CascadeOption> carChildren = carErr.stream().map(item -> CascadeOption.builder() + .value(item.getValue()) + .label(item.getDesc()) + .build()).collect(Collectors.toList()); + car.setChildren(carChildren); + + CascadeOption face = new CascadeOption(); + face.setLabel("浜鸿劯"); + face.setValue("FACE"); + List<ErrorType> faceErr = ErrorType.getErrorTypesByCategory("FACE"); + List<ErrorType> faceErr1 = ErrorType.getErrorTypesByCategory("COMMON"); + List<ErrorType> faceErr2 = ErrorType.getErrorTypesByCategory("CARORFACE"); + faceErr.addAll(faceErr1); + faceErr.addAll(faceErr2); + List<CascadeOption> faceChildren = faceErr.stream().map(item -> CascadeOption.builder() + .value(item.getValue()) + .label(item.getDesc()) + .build()).collect(Collectors.toList()); + face.setChildren(faceChildren); + + results.add(video); + results.add(car); + results.add(face); + return Result.ok().data(results); + } } -- Gitblit v1.8.0