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 |   86 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 78 insertions(+), 8 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 b9deaa2..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
@@ -13,6 +13,11 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,6 +27,7 @@
 import enumeration.general.FastDistributeTypeEnum;
 import enumeration.general.NotifyTypeEnum;
 import enumeration.general.WorkOrderStatusEnum;
+import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
@@ -104,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("鎿嶄綔鎴愬姛");
     }
 
@@ -134,9 +144,27 @@
         return Result.ok().data(
                 new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
                         .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
-                        .orderByDesc(WorkOrderYwConditionRecord::getCreateTime)
+                        .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
                         .last("limit 1")
                         .one());
+    }
+
+    @Override
+    public Result selectYwConditionListByYwId(String id) {
+        return Result.ok().data(
+                new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
+                        .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
+                        .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
+                        .list());
+    }
+
+    @Override
+    public Result selectYwAuditingListByYwId(String id) {
+        return Result.ok().data(
+                new LambdaQueryChainWrapper<>(workOrderAuditingRecordMapper)
+                        .eq(WorkOrderAuditingRecord::getWorkOrderId, id)
+                        .orderByAsc(WorkOrderAuditingRecord::getCreateTime)
+                        .list());
     }
 
     @Override
@@ -184,7 +212,7 @@
     public Result page(WorkOrderQuery query) {
         IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper)
                 .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo())
-                .in(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED, WorkOrderStatusEnum.YW_HANDLE)
+                .eq(StringUtils.hasText(query.getStatus().getValue()), WorkOrder::getStatus, query.getStatus())
                 .eq(StringUtils.hasText(query.getErrorType()), WorkOrder::getErrorType, query.getErrorType())
                 .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()),
                         WorkOrder::getYwHandleTime,
@@ -240,16 +268,58 @@
 
     @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();
         }
+        return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
+    }
 
+    @Override
+    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(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId)
                 .update();
-
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 

--
Gitblit v1.8.0