From 1901a22a3b2d7a2a076b69ecd78d24ec55d5a3e8 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 22 八月 2024 18:26:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 61 ++++++++++++++++++++++++++---- 1 files changed, 52 insertions(+), 9 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 ddf6987..c298405 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,9 +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; @@ -112,28 +118,54 @@ Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); List<WorkOrder> waitAddList = new ArrayList<>(48); Integer updateNum = 0; - // TODO 鏌ヨ鏄惁鎶ュ杩囷紝鏇存柊鏁呴殰绫诲瀷 + 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++; - // 鍚屾椂鏂板涓�涓繍缁村鐞嗕俊鎭紝琛ㄦ槑姝ゅ伐鍗曡璋冩暣 TODO + // 鍚屾椂鏂板涓�涓繍缁村鐞嗕俊鎭紝琛ㄦ槑姝ゅ伐鍗曡璋冩暣 + WorkOrderYwConditionRecord ywRecord = new WorkOrderYwConditionRecord(); + ywRecord.setWorkOrderId(databaseWorkOrder.getId()); + ywRecord.setCommitUser(1); + ywRecord.setYwCondition("鏁呴殰绫诲瀷鏇存柊锛屽伐鍗曠姸鎬佽皟鏁翠负寰呭鐞�"); + ywRecord.setCreateTime(new Date()); + workOrderYwConditionRecordMapper.insert(ywRecord); } } else { workOrder.setCreateTime(new Date()); workOrder.setUpdateTime(new Date()); +// // 濡傛灉鎶ュ杩囷紝浣跨敤鏈�鏂版姤澶囩殑閿欒绫诲瀷 +// Report report = reportMapper.checkPointReported(workOrder.getSerialNumber()); +// if (Objects.nonNull(report)) { +// workOrder.setErrorType(report.getErrorType()); +// } waitAddList.add(workOrder); } } @@ -202,6 +234,9 @@ Date now = new Date(); entity.setCreateTime(now); 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); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -316,6 +351,7 @@ workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue()); workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials()); + workOrderYwConditionRecord.setSysMsg(Boolean.FALSE); workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); return Result.ok("鎿嶄綔鎴愬姛"); } @@ -323,6 +359,11 @@ @Override public Result selectYwConditionByYwId(Integer id) { List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(id); + ywConditionList.stream().forEach(item -> { + if (Objects.nonNull(item.getSysMsg()) && item.getSysMsg()) { + item.setCommitUserName("绯荤粺娑堟伅"); + } + }); return Result.ok().data(ywConditionList); } @@ -380,6 +421,7 @@ 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()); } @@ -387,6 +429,7 @@ 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()); } @@ -482,7 +525,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