From 1de0d92e2a630927f391ae080709ae678e5f5618 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 17 四月 2024 15:28:46 +0800
Subject: [PATCH] 工单事后报备:新增点位id

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   66 ++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 14 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 992da03..f136b80 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
@@ -14,6 +14,9 @@
 import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.domain.query.WorkOrderQuery;
 
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
 import java.util.Arrays;
 import java.util.List;
 
@@ -107,8 +110,12 @@
         workOrderAuditingRecord.setRemark(form.getAuditingRemark());
         workOrderAuditingRecordMapper.insert(workOrderAuditingRecord);
         // 娣诲姞鏂伴�氱煡
-        Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId());
-        notifyService.save(notify);
+        try {
+            Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId());
+            notifyService.save(notify);
+        } catch (Exception e) {
+            return Result.error("瀹℃牳鎴愬姛锛岄�氱煡杩愮淮浜哄憳澶辫触");
+        }
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
@@ -156,7 +163,7 @@
         return Result.ok().data(
                 new LambdaQueryChainWrapper<>(workOrderAuditingRecordMapper)
                         .eq(WorkOrderAuditingRecord::getWorkOrderId, id)
-                        .orderByDesc(WorkOrderAuditingRecord::getCreateTime)
+                        .orderByAsc(WorkOrderAuditingRecord::getCreateTime)
                         .list());
     }
 
@@ -261,26 +268,57 @@
 
     @Override
     public Result distributeFast(DistributeWorkOrderVO data) {
-        List<WorkOrder> willDistributeList = new ArrayList<>(32);
-        // 濡傛灉鏄嚜瀹氫箟鏃堕棿鑼冨洿
-        if (FastDistributeTypeEnum.CUSTOM == data.getFastWay()) {
+        // 鑾峰彇褰撳墠鏃堕棿
+        LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
+        switch (data.getFastWay()) {
+            case LAST_HALF_HOUR:
+                data.setStart(now.minusMinutes(30));
+                data.setEnd(now);
+                break;
+            case LAST_HOUR:
+                data.setStart(now.minusHours(1));
+                data.setEnd(now);
+                break;
+            case LAST_TWO_HOUR:
+               data.setStart(now.minusHours(2));
+               data.setEnd(now);
+               break;
+            case LAST_DAY:
+                data.setStart(now.minusDays(1));
+                data.setEnd(now);
+                break;
+           }
 
+        List<Integer> ids = new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
+                .eq(Objects.nonNull(data.getUnitId()), WorkOrder::getUnitId, data.getUnitId())
+                .eq(WorkOrder::getErrorType, data.getErrorType())
+                .between(WorkOrder::getCreateTime, data.getStart(), data.getEnd())
+                .orderByDesc(WorkOrder::getCreateTime)
+                .last("limit " + data.getFastNumLimit())
+                .list()
+                .stream()
+                .map(WorkOrder::getId)
+                .toList();
+
+        if (ids.isEmpty()) {
+            return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�");
+        } else {
+            new LambdaUpdateChainWrapper<>(baseMapper)
+                    .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
+                    .in(WorkOrder::getId, ids)
+                    .update();
         }
-
-        new LambdaUpdateChainWrapper<>(baseMapper)
-                .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
-                .update();
-
-        return Result.ok("鎿嶄綔鎴愬姛");
+        return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
     }
 
     @Override
-    public Result selectedIdsDistribute(List<Integer> ids) {
+    public Result selectedIdsDistribute(List<Integer> ids, Integer unitId) {
         new LambdaUpdateChainWrapper<>(baseMapper)
                 .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
                 .in(ArrayUtils.isNotEmpty(ids.toArray()), WorkOrder::getId, ids)
                 .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
-                // .eq(WorkOrder::getDeleted, 0)
+                .eq(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId)
                 .update();
         return Result.ok("鎿嶄綔鎴愬姛");
     }

--
Gitblit v1.8.0