From ecc7b295a495014621de2cd9601659f5cdf26fbe Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 22 八月 2024 18:26:21 +0800 Subject: [PATCH] 点位导入优化 --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 35 insertions(+), 12 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 13a982c..1231123 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; @@ -59,6 +62,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -79,10 +83,11 @@ private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; private final NotifyService notifyService; private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; - private final TMonitorMapper monitorMapper; + private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; 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; @@ -117,16 +122,31 @@ for (WorkOrder workOrder : workOrderList) { WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); if (Objects.nonNull(databaseWorkOrder)) { + List<WorkOrderErrorType> workOrderErrorTypeList = new LambdaQueryChainWrapper<>(workOrderErrorTypeMapper) + .select(WorkOrderErrorType::getErrorName) + .eq(WorkOrderErrorType::getWorkOrderNo, workOrder.getWorkOrderNo()) + .list(); + List<String> errorNameList = workOrderErrorTypeList.stream().map(WorkOrderErrorType::getErrorName).collect(Collectors.toList()); String errorType = databaseWorkOrder.getErrorType(); - if (workOrder.getErrorType().equals(errorType)) { + if (errorNameList.contains(errorType)) { // 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊 continue; } else { - // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨洿鏂伴敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� - errorType = errorType + "," + workOrder.getErrorType(); - databaseWorkOrder.setErrorType(errorType); - databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); + // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨柊澧炰竴涓敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� + List<SysDictData> errorTypeDictList = dictDataMapper.selectDictDataByType("error_type"); + String finalErrorType = errorType; + List<SysDictData> targetErrorTypes = errorTypeDictList.stream().filter(item -> finalErrorType.equals(item.getDictValue())).collect(Collectors.toList()); + if (! CollectionUtils.isEmpty(targetErrorTypes)) { + errorType = targetErrorTypes.get(0).getDictValue(); + } + WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); + workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo()); Date now = new Date(); + workOrderErrorType.setCreateTime(now); + workOrderErrorType.setUpdateTime(now); + workOrderErrorTypeMapper.insert(workOrderErrorType); + + databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); databaseWorkOrder.setUpdateTime(now); baseMapper.updateById(databaseWorkOrder); updateNum++; @@ -141,11 +161,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); } } @@ -214,6 +234,9 @@ Date now = new Date(); entity.setCreateTime(now); entity.setUpdateTime(now); + entity.setErrorType(form.getErrorType().stream().map(ErrorTypeEnum::getValue).collect(Collectors.joining(","))); + List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType.getValue())).toList(); + workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -500,7 +523,7 @@ */ public synchronized Boolean getDistributeLock() { if (Objects.isNull(redisCache.getCacheObject(DISTRIBUTE_LOCK_KEY))) { - redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1"); + redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1", 30, TimeUnit.SECONDS); return true; } else { return false; -- Gitblit v1.8.0