From fa074e6bfce456256a4f9aa42c89e69a0582f6e7 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 25 九月 2024 15:05:16 +0800
Subject: [PATCH] 大屏考核分数保留一位数

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 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 c156006..6f47e90 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
@@ -93,7 +93,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    //TODO锛歊edis鍔犻攣锛屼粠Redis璇诲彇褰撴棩宸ュ崟鏁版嵁閲�
+    //TODO锛氭竻绌篟edis瀹氭椂浠诲姟
     public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) {
         int total = workOrderList.size();
         workOrderList.stream().filter(item -> {
@@ -199,7 +199,7 @@
         // 濡傛灉鍗冲皢鐢熸垚宸ュ崟锛屼絾鏄澶囧浗鏍囩爜鏌ヤ笉鍒扮偣浣嶏紝鍒欎笉娣诲姞锛�
         List<WorkOrder> notAddList = new ArrayList<>();
         //鏌edis浠婃棩宸ュ崟鏁伴噺
-        int workOrderNum = 1;
+        int workOrderNum = 0;
         //UUID浣滀负value锛屼繚璇佷笂閿佺殑绾跨▼鑷繁瑙i攣
         String requestId = IdUtils.fastSimpleUUID();
         try {
@@ -208,7 +208,7 @@
                 if (result) {
                     //鏌ヤ粖鏃ュ伐鍗曢噺
                     Object redisNum = redisCache.getCacheObject(RedisConstant.WORKORDER_NUM);
-                    workOrderNum = redisNum == null ? 1 : (Integer) redisNum;
+                    workOrderNum = redisNum == null ? 0 : (Integer) redisNum;
                     break;
                 } else {
                     if (i == 2) {
@@ -216,16 +216,13 @@
                         return Boolean.FALSE;
                     }
                     //绛夊緟涓�娈垫椂闂村悗缁х画
-                    Thread.sleep(3000);
+                    Thread.sleep(5000);
                 }
             }
         } catch (InterruptedException e) {
             log.error("鑾峰彇閿佸紓甯�");
             return Boolean.FALSE;
-        } finally {
-            redisCache.releaseLock(RedisConstant.WORKORDER_NUM_LOCK, requestId);
         }
-
         for (WorkOrder workOrder : waitAddList) {
             YwPoint point = pointMapping.get(workOrder.getSerialNumber());
             if (Objects.isNull(point)) {
@@ -233,8 +230,8 @@
                 continue;
             }
             //鏁板瓧鍓嶉潰琛�0
-            workOrder.setWorkOrderNo(IdUtils.randomNO(now, String.format("%05d", workOrderNum)));
             workOrderNum++;
+            workOrder.setWorkOrderNo(IdUtils.workOrderNO(now, String.format("%05d", workOrderNum)));
             if (Objects.nonNull(point.getUnitId())) {
                 workOrder.setUnitId(Math.toIntExact(point.getUnitId()));
             }
@@ -259,6 +256,7 @@
         }
         //璁板綍宸ュ崟鏁�
         redisCache.setCacheObject(RedisConstant.WORKORDER_NUM, workOrderNum);
+        redisCache.releaseLock(RedisConstant.WORKORDER_NUM_LOCK, requestId);
         // 淇濆瓨宸ュ崟鍜屾晠闅滅被鍨�
         baseMapper.addMany(waitAddList);
         if (!CollectionUtils.isEmpty(waitAddErrorTypeList)) {
@@ -302,6 +300,8 @@
             //鏌ヤ粖鏃ュ伐鍗曢噺
             Object redisNum = redisCache.getCacheObject(RedisConstant.WORKORDER_NUM);
             workOrderNum = redisNum == null ? 1 : (Integer) redisNum;
+            workOrderNum++;
+            redisCache.setCacheObject(RedisConstant.WORKORDER_NUM, workOrderNum);
             redisCache.releaseLock(RedisConstant.WORKORDER_NUM_LOCK, requestId);
         } else {
             return Result.error("宸ュ崟姝e湪娣诲姞锛岃绋嶅悗鍐嶈瘯");
@@ -312,9 +312,7 @@
         Date now = new Date();
         entity.setCreateTime(now);
         entity.setUpdateTime(now);
-        entity.setWorkOrderNo(IdUtils.randomNO(now, String.format("%05d", workOrderNum)));
-        workOrderNum++;
-        redisCache.setCacheObject(RedisConstant.WORKORDER_NUM, workOrderNum);
+        entity.setWorkOrderNo(IdUtils.workOrderNO(now, String.format("%05d", workOrderNum)));
         entity.setErrorType(String.join(",", form.getErrorType()));
         List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList();
         workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes);

--
Gitblit v1.8.0