From 036af8cd158f5768c83cd98ad6dd6256a22feec6 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 23 八月 2024 16:33:37 +0800 Subject: [PATCH] fix:调整 --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 101 +++++++++++++++++++++++++++++++------------------- 1 files changed, 63 insertions(+), 38 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 b4aa6bb..f763df1 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 @@ -28,7 +28,10 @@ import com.ycl.platform.wvp.WVPResult; import com.ycl.system.Result; import com.ycl.system.domain.SysConfig; +import com.ycl.system.entity.SysDictData; import com.ycl.system.mapper.SysConfigMapper; +import com.ycl.system.mapper.SysDictDataMapper; +import com.ycl.system.mapper.SysDictTypeMapper; import com.ycl.system.model.LoginUser; import com.ycl.system.page.PageUtil; import com.ycl.utils.DateUtils; @@ -80,10 +83,11 @@ private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; private final NotifyService notifyService; private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; - private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; + private final WorkOrderErrorTypeServiceImpl workOrderErrorTypeService; private final SysConfigMapper configMapper; private final ServerConfig serverConfig; private final ReportMapper reportMapper; + private final SysDictDataMapper dictDataMapper; @Value("${rtsp.server:http://127.0.0.1:7788}") private String rtspServer; @@ -107,27 +111,36 @@ List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList()); // 鏌ュ嚭鏁版嵁搴撲腑鍥芥爣鐮佸搴旂殑鏈畬鎴愮殑宸ュ崟 List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper) - .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getErrorType) + .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getWorkOrderNo) .in(WorkOrder::getSerialNumber, serialNumberList) .ne(WorkOrder::getStatus, WorkOrderStatusEnum.AUDITING_SUCCESS) .list(); Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); List<WorkOrder> waitAddList = new ArrayList<>(48); + List<WorkOrderErrorType> waitAddErrorTypeList = new ArrayList<>(48); Integer updateNum = 0; - + Date now = new Date(); for (WorkOrder workOrder : workOrderList) { WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); if (Objects.nonNull(databaseWorkOrder)) { - String errorType = databaseWorkOrder.getErrorType(); - if (workOrder.getErrorType().equals(errorType)) { + List<String> errorNameList = workOrderErrorTypeService.getBaseMapper().getNotFinishWorkOrderErrors(workOrder.getWorkOrderNo()); + List<String> errorTypes = workOrder.getErrorTypeList(); + if (errorNameList.containsAll(errorTypes)) { // 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊 continue; } else { - // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨洿鏂伴敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� - errorType = errorType + "," + workOrder.getErrorType(); - databaseWorkOrder.setErrorType(errorType); + for (String errorType : errorTypes) { + if (! errorNameList.contains(errorType)) { + // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨柊澧炰竴涓敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� + WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); + workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo()); + workOrderErrorType.setCreateTime(now); + workOrderErrorType.setUpdateTime(now); + workOrderErrorType.setErrorName(errorType); + workOrderErrorTypeService.save(workOrderErrorType); + } + } databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); - Date now = new Date(); databaseWorkOrder.setUpdateTime(now); baseMapper.updateById(databaseWorkOrder); updateNum++; @@ -142,11 +155,11 @@ } else { workOrder.setCreateTime(new Date()); workOrder.setUpdateTime(new Date()); - // 濡傛灉鎶ュ杩囷紝浣跨敤鏈�鏂版姤澶囩殑閿欒绫诲瀷 - Report report = reportMapper.checkPointReported(workOrder.getSerialNumber()); - if (Objects.nonNull(report)) { - workOrder.setErrorType(report.getErrorType()); - } +// // 濡傛灉鎶ュ杩囷紝浣跨敤鏈�鏂版姤澶囩殑閿欒绫诲瀷 +// Report report = reportMapper.checkPointReported(workOrder.getSerialNumber()); +// if (Objects.nonNull(report)) { +// workOrder.setErrorType(report.getErrorType()); +// } waitAddList.add(workOrder); } } @@ -171,26 +184,40 @@ continue; } workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); - workOrder.setUnitId(Math.toIntExact(point.getUnitId())); + if (Objects.nonNull(point.getUnitId())) { + workOrder.setUnitId(Math.toIntExact(point.getUnitId())); + } if (point.getImportantTag() || point.getImportantCommandImageTag()) { workOrder.setProcessingPeriod(Integer.valueOf(important.getConfigValue())); } else { workOrder.setProcessingPeriod(Integer.valueOf(normal.getConfigValue())); + } + // 淇濆瓨閿欒绫诲瀷 + for (String errorType : workOrder.getErrorTypeList()) { + WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); + workOrderErrorType.setWorkOrderNo(workOrder.getWorkOrderNo()); + workOrderErrorType.setCreateTime(now); + workOrderErrorType.setUpdateTime(now); + workOrderErrorType.setErrorName(errorType); + waitAddErrorTypeList.add(workOrderErrorType); } } waitAddList.removeAll(notAddList); if (CollectionUtils.isEmpty(waitAddList)) { return Boolean.TRUE; } - this.saveBatch(waitAddList); + // 淇濆瓨宸ュ崟鍜屾晠闅滅被鍨� + baseMapper.addMany(waitAddList); + if (! CollectionUtils.isEmpty(waitAddErrorTypeList)) { + workOrderErrorTypeService.getBaseMapper().addMany(waitAddErrorTypeList); + } // 濡傛灉鏄洿鎺ヤ笅鍙戯紝娣诲姞涓嬪彂璁板綍 if (WorkOrderStatusEnum.DISTRIBUTED.equals(waitAddList.get(0).getStatus())) { List<WorkOrderDistributeRecord> distributedRecordList = waitAddList.stream().map(item -> { WorkOrderDistributeRecord workOrderDistributeRecord = new WorkOrderDistributeRecord(); - workOrderDistributeRecord.setWorkOrderId(item.getId()); + workOrderDistributeRecord.setWorkOrderNo(item.getWorkOrderNo()); workOrderDistributeRecord.setDistributeWay(WorkOrderDistributeWayEnum.DIRECT_DISTRIBUTE); workOrderDistributeRecord.setUserId(1L); - Date now = new Date(); workOrderDistributeRecord.setCreateTime(now); workOrderDistributeRecord.setUpdateTime(now); return workOrderDistributeRecord; @@ -217,7 +244,7 @@ entity.setUpdateTime(now); entity.setErrorType(String.join(",", form.getErrorType())); List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList(); - workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes); + workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -402,7 +429,6 @@ public Result page(WorkOrderQuery query) { IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); baseMapper.page(page, query); - page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -410,7 +436,6 @@ public Result distributePage(DistributeWorkOrderQuery query) { IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); baseMapper.distributePage(page, query); - page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); return Result.ok().data(page).total(page.getTotal()); } @@ -445,20 +470,20 @@ .orderByDesc(WorkOrder::getCreateTime) .last("limit " + data.getFastNumLimit()) .list(); - List<Integer> ids = list.stream().map(WorkOrder::getId).toList(); + List<String> workOrderNoList = list.stream().map(WorkOrder::getWorkOrderNo).toList(); List<String> serialNumberList = list.stream().map(WorkOrder::getSerialNumber).toList(); - if (ids.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); } + if (workOrderNoList.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); } if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); } try { new LambdaUpdateChainWrapper<>(baseMapper) .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) - .in(WorkOrder::getId, ids) + .in(WorkOrder::getWorkOrderNo, workOrderNoList) .update(); - addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE); + addDistributeRecord(workOrderNoList, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE); // 鍚屾鐐逛綅鐘舵�� ywPointService.updateRecovery(serialNumberList, 1); - return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�"); + return Result.ok("鎴愬姛涓嬪彂" + workOrderNoList.size() + "鏉″伐鍗�"); } catch (Exception e) { return Result.error("鎿嶄綔澶辫触"); } finally { @@ -472,27 +497,27 @@ WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE; if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); } try { - if (query.getIds().isEmpty()) { - query.setIds(new LambdaQueryChainWrapper<>(baseMapper) + if (query.getWorkOrderNOList().isEmpty()) { + query.setWorkOrderNOList(new LambdaQueryChainWrapper<>(baseMapper) .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) .eq(Objects.nonNull(query.getUnitId()), WorkOrder::getUnitId, query.getUnitId()) .select(WorkOrder::getId) .list() .stream() - .map(WorkOrder::getId) + .map(WorkOrder::getWorkOrderNo) .collect(Collectors.toList())); distributeWayEnum = WorkOrderDistributeWayEnum.ALL_DISTRIBUTE; } - if (query.getIds().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); } + if (query.getWorkOrderNOList().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); } new LambdaUpdateChainWrapper<>(baseMapper) .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) - .in(WorkOrder::getId, query.getIds()) + .in(WorkOrder::getWorkOrderNo, query.getWorkOrderNOList()) .update(); - addDistributeRecord(query.getIds(), distributeWayEnum); + addDistributeRecord(query.getWorkOrderNOList(), distributeWayEnum); // 鍚屾鐐逛綅鐘舵�� - List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getSerialNumber).toList(); + List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getWorkOrderNOList()).list().stream().map(WorkOrder::getSerialNumber).toList(); ywPointService.updateRecovery(serialNumberList, 1); - return Result.ok("鎴愬姛涓嬪彂" + query.getIds().size() + "鏉″伐鍗�"); + return Result.ok("鎴愬姛涓嬪彂" + query.getWorkOrderNOList().size() + "鏉″伐鍗�"); } catch (Exception e) { return Result.error("鎿嶄綔澶辫触"); } finally { @@ -522,13 +547,13 @@ /** * 娣诲姞宸ュ崟涓嬪彂璁板綍 - * @param ids 宸ュ崟id + * @param workOrderNoList 宸ュ崟id */ - private void addDistributeRecord(List<Integer> ids, WorkOrderDistributeWayEnum distributeWay) { + private void addDistributeRecord(List<String> workOrderNoList, WorkOrderDistributeWayEnum distributeWay) { LoginUser loginUser = SecurityUtils.getLoginUser(); workOrderDistributeRecordMapper.insertBatch( - ids.stream() - .map(id -> new WorkOrderDistributeRecord(id, loginUser.getUserId(), distributeWay)) + workOrderNoList.stream() + .map(no -> new WorkOrderDistributeRecord(no, loginUser.getUserId(), distributeWay)) .toList() ); } -- Gitblit v1.8.0