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/controller/WorkOrderController.java | 7 +++
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java | 36 ++++++++++++++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 41 +++++++++++++++++++-
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 7 +++
4 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
new file mode 100644
index 0000000..e4551a7
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
@@ -0,0 +1,36 @@
+package com.ycl.platform.domain.form;
+
+import enumeration.general.WorkOrderStatusEnum;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 宸ュ崟瀹℃牳琛ㄥ崟
+ *
+ * @author锛歺p
+ * @date锛�2024/3/6 8:59
+ */
+@Data
+public class WorkOrderBatchAuditingForm {
+
+ /**
+ * 瀹℃牳缁撴灉
+ */
+ @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+ private WorkOrderStatusEnum auditingResult;
+
+ /**
+ * 瀹℃牳璇存槑
+ */
+ private String auditingRemark;
+
+ /**
+ * 鎵归噺瀹℃牳ids
+ */
+ @NotEmpty(message = "瀹℃牳宸ュ崟涓嶈兘涓虹┖")
+ private List<Integer> ids;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 29b973e..e7037c6 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -56,6 +56,13 @@
return workOrderService.auditing(form);
}
+ @PutMapping("/batchAuditing")
+ @ApiOperation(value = "瀹℃牳", notes = "宸ュ崟鎵归噺瀹℃牳")
+ @PreAuthorize("@ss.hasPermi('work:order:audit')")
+ public Result batchAuditing(@RequestBody @Validated(Update.class) WorkOrderBatchAuditingForm form) {
+ return workOrderService.batchAuditing(form);
+ }
+
@PutMapping("/yw-condition")
@ApiOperation(value = "杩愮淮鎯呭喌", notes = "杩愮淮鎯呭喌")
public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWConditionForm form) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index 3a271d1..eead1af 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -73,6 +73,13 @@
Result auditing(WorkOrderAuditingForm form);
/**
+ * 鎵归噺瀹℃牳
+ * @param form 宸ュ崟
+ * @return 缁撴灉
+ */
+ Result batchAuditing(WorkOrderBatchAuditingForm form);
+
+ /**
* 杩愮淮鎯呭喌
* @param form
* @return
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 d50ec03..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
--
Gitblit v1.8.0