From fbc21cce86582464cc0f65e80862e54dbd034baa Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 01 八月 2024 18:22:11 +0800
Subject: [PATCH] 数据中心部分接口定义

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   54 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 32 insertions(+), 22 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 745e24a..7b6af3f 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
@@ -9,9 +9,12 @@
 import com.ycl.platform.domain.entity.*;
 import com.ycl.platform.domain.form.*;
 import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
+import com.ycl.platform.domain.query.ScreenQuery;
 import com.ycl.platform.domain.query.WorkOrderQuery;
 import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
 import com.ycl.platform.domain.vo.WorkOrderVO;
+import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
+import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
 import com.ycl.platform.mapper.*;
 import com.ycl.platform.service.NotifyService;
 import com.ycl.platform.service.WorkOrderAuditingRecordService;
@@ -22,9 +25,9 @@
 import com.ycl.utils.DateUtils;
 import com.ycl.utils.SecurityUtils;
 import com.ycl.utils.redis.RedisCache;
+import com.ycl.utils.uuid.IdUtils;
 import enumeration.general.*;
 import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -37,7 +40,6 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -60,6 +62,7 @@
     private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
 
     private final String DISTRIBUTE_LOCK_KEY = "distributeLock";
+    private final static String IMPORTANT = "important";
 
     @Autowired
     private RedisCache redisCache;
@@ -72,10 +75,9 @@
     @Override
     public Result add(WorkOrderForm form) {
         WorkOrder entity = WorkOrderForm.getEntityByForm(form, null);
-        entity.setWorkOrderNo(DateUtils.dateTimeNow());
+        entity.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
         entity.setCreateTime(DateUtils.getNowDate());
         entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
-        entity.setDeleted("0");
         if(baseMapper.insert(entity) > 0) {
             return Result.ok("娣诲姞鎴愬姛");
         }
@@ -128,14 +130,24 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Result batchAuditing(WorkOrderBatchAuditingForm form) {
+        // 鏍规嵁鏁呴殰绫诲瀷鑾峰彇鍒楄〃
+        List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
+                .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue())
+                .in(WorkOrder::getErrorType, form.getErrorTypes())
+                .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo)
+                .list();
+        if (list.isEmpty()) {
+            return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳");
+        }
+        List<Integer> ids = list.stream().map(WorkOrder::getId).collect(Collectors.toList());
         // 宸ュ崟鐘舵��
         LambdaUpdateWrapper<WorkOrder> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
-        lambdaUpdateWrapper.in(WorkOrder::getId, form.getIds());
+        lambdaUpdateWrapper.in(WorkOrder::getId, ids);
         lambdaUpdateWrapper.set(WorkOrder::getStatus, form.getAuditingResult());
         baseMapper.update(lambdaUpdateWrapper);
         // 娣诲姞澶氭潯瀹℃牳璁板綍
         List<WorkOrderAuditingRecord> workOrderAuditingRecords = new ArrayList<>();
-        for (Integer id : form.getIds()) {
+        for (Integer id : ids) {
             WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
             workOrderAuditingRecord.setWorkOrderId(id);
             workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
@@ -145,7 +157,6 @@
         }
         workOrderAuditingRecordService.saveBatch(workOrderAuditingRecords);
         // 娣诲姞鏂伴�氱煡
-        List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper).in(WorkOrder::getId, form.getIds()).select(WorkOrder::getUnitId, WorkOrder::getWorkOrderNo).list();
         List<Notify> notifies = new ArrayList<>();
         for (WorkOrder workOrder : list) {
             Notify notify = Notify.genEntityByUnit(NotifyTypeEnum.WORK_ORDER,
@@ -181,21 +192,9 @@
     }
 
     @Override
-    public Result selectYwConditionByYwId(String id) {
-        return Result.ok().data(
-                new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
-                        .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
-                        .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
-                        .list());
-    }
-
-    @Override
-    public Result selectYwConditionListByYwId(String id) {
-        return Result.ok().data(
-                new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
-                        .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
-                        .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
-                        .list());
+    public Result selectYwConditionByYwId(Integer id) {
+        List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(id);
+        return Result.ok().data(ywConditionList);
     }
 
     @Override
@@ -259,6 +258,11 @@
     public Result distributePage(DistributeWorkOrderQuery query) {
         IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
         baseMapper.distributePage(page, query);
+        page.getRecords().stream().forEach(workOrder -> {
+            if (StringUtils.hasText(workOrder.getPointTag()) && workOrder.getPointTag().contains(IMPORTANT)) {
+                workOrder.setImportant(Boolean.TRUE);
+            }
+        });
         return Result.ok().data(page).total(page.getTotal());
     }
 
@@ -413,4 +417,10 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    public Result screenWorkOrder(ScreenQuery query) {
+        ScreenWorkOrderVO screen = baseMapper.screenWorkOrder(query);
+        return Result.ok().data(screen);
+    }
 }

--
Gitblit v1.8.0