From ad4c2b5de789439e25eedc68e2d7f0beda1fdb4c Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 27 六月 2024 15:13:53 +0800
Subject: [PATCH] feat:批量审核

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 42 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 abc41bd..745e24a 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
@@ -1,5 +1,6 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
@@ -13,6 +14,7 @@
 import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.mapper.*;
 import com.ycl.platform.service.NotifyService;
+import com.ycl.platform.service.WorkOrderAuditingRecordService;
 import com.ycl.platform.service.WorkOrderService;
 import com.ycl.system.Result;
 import com.ycl.system.model.LoginUser;
@@ -32,6 +34,7 @@
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
@@ -51,6 +54,7 @@
     private final YwUnitMapper ywUnitMapper;
     private final YwPeopleMapper ywPeopleMapper;
     private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
+    private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
     private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
     private final NotifyService notifyService;
     private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
@@ -123,6 +127,40 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public Result batchAuditing(WorkOrderBatchAuditingForm form) {
+        // 宸ュ崟鐘舵��
+        LambdaUpdateWrapper<WorkOrder> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+        lambdaUpdateWrapper.in(WorkOrder::getId, form.getIds());
+        lambdaUpdateWrapper.set(WorkOrder::getStatus, form.getAuditingResult());
+        baseMapper.update(lambdaUpdateWrapper);
+        // 娣诲姞澶氭潯瀹℃牳璁板綍
+        List<WorkOrderAuditingRecord> workOrderAuditingRecords = new ArrayList<>();
+        for (Integer id : form.getIds()) {
+            WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
+            workOrderAuditingRecord.setWorkOrderId(id);
+            workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
+            workOrderAuditingRecord.setResult(form.getAuditingResult().getDesc());
+            workOrderAuditingRecord.setRemark(form.getAuditingRemark());
+            workOrderAuditingRecords.add(workOrderAuditingRecord);
+        }
+        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,
+                    form.getAuditingResult().getDesc(),
+                    workOrder.getUnitId(),
+                    UrgentLevelEnum.WARNING,
+                    workOrder.getWorkOrderNo());
+            notifies.add(notify);
+        }
+        notifyService.saveBatch(notifies);
+        return Result.ok("鎿嶄綔鎴愬姛");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result ywCondition(WorkOrderYWConditionForm form) {
         WorkOrder workOrder = baseMapper.selectById(form.getId());
         if (Objects.isNull(workOrder)) {
@@ -148,8 +186,7 @@
                 new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
                         .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
                         .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
-                        .last("limit 1")
-                        .one());
+                        .list());
     }
 
     @Override
@@ -220,8 +257,9 @@
 
     @Override
     public Result distributePage(DistributeWorkOrderQuery query) {
-        List<WorkOrderVO> page = baseMapper.distributePage(query);
-        return Result.ok().data(page).total(page.size());
+        IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
+        baseMapper.distributePage(page, query);
+        return Result.ok().data(page).total(page.getTotal());
     }
 
     @Override

--
Gitblit v1.8.0