From 1b299b7a0ff1186efc9c62a52a3822d07b07deab Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 22 八月 2024 18:01:50 +0800
Subject: [PATCH] fix:解决大屏报错、故障类型存储枚举值

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 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..b4aa6bb 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
@@ -59,6 +59,7 @@
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -79,9 +80,10 @@
     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;
 
     @Value("${rtsp.server:http://127.0.0.1:7788}")
     private String rtspServer;
@@ -112,7 +114,7 @@
         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)) {
@@ -129,11 +131,22 @@
                     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 +215,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 +332,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 +340,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 +402,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 +410,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 +506,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