From 82137fdbb4fc7d990b6f4d91f33ca80becad4545 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 01 八月 2024 17:06:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 59 ++++++++++++++++++++++++++++-------------------------------
1 files changed, 28 insertions(+), 31 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 8485cc6..39f6dff 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
@@ -17,6 +17,7 @@
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
+import com.ycl.platform.service.YwPointService;
import com.ycl.system.Result;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
@@ -24,24 +25,21 @@
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.redis.RedisCache;
import com.ycl.utils.uuid.IdUtils;
-import constant.PointConfigConstants;
-import enumeration.general.*;
+import enumeration.general.NotifyTypeEnum;
+import enumeration.general.UrgentLevelEnum;
+import enumeration.general.WorkOrderDistributeWayEnum;
+import enumeration.general.WorkOrderStatusEnum;
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;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
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;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -55,8 +53,7 @@
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
private final WorkOrderMapper workOrderMapper;
- private final YwUnitMapper ywUnitMapper;
- private final YwPeopleMapper ywPeopleMapper;
+ private final YwPointService ywPointService;
private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -126,6 +123,10 @@
UrgentLevelEnum.WARNING,
workOrder.getWorkOrderNo());
notifyService.save(notify);
+ // 鍚屾鐐逛綅鐘舵��
+ if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) {
+ ywPointService.updateRecovery(Collections.singletonList(workOrder.getPointId()), 0);
+ }
return Result.ok("鎿嶄綔鎴愬姛");
}
@@ -269,53 +270,49 @@
}
@Override
+ @Transactional
public Result distributeFast(DistributeWorkOrderVO data) {
// 鑾峰彇褰撳墠鏃堕棿
LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
+ data.setEnd(now);
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)
+ List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .select(WorkOrder::getId, WorkOrder::getPointId)
.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();
+ .list();
+ List<Integer> ids = list.stream().map(WorkOrder::getId).toList();
+ List<Integer> pointIds = list.stream().map(WorkOrder::getPointId).toList();
- if (ids.isEmpty()) {
- return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�");
- }
- if (!getDistributeLock()) {
- return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�");
- }
+ if (ids.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); }
+ if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); }
try {
new LambdaUpdateChainWrapper<>(baseMapper)
.set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
.in(WorkOrder::getId, ids)
.update();
addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE);
+ // 鍚屾鐐逛綅鐘舵��
+ ywPointService.updateRecovery(pointIds, 1);
return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
} catch (Exception e) {
return Result.error("鎿嶄綔澶辫触");
@@ -325,11 +322,10 @@
}
@Override
+ @Transactional
public Result selectedIdsDistribute(DistributeWorkOrderQuery query) {
WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE;
- if (!getDistributeLock()) {
- return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�");
- }
+ if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); }
try {
if (query.getIds().isEmpty()) {
query.setIds(new LambdaQueryChainWrapper<>(baseMapper)
@@ -342,14 +338,15 @@
.collect(Collectors.toList()));
distributeWayEnum = WorkOrderDistributeWayEnum.ALL_DISTRIBUTE;
}
- if (query.getIds().isEmpty()) {
- return Result.error("娌℃湁宸ュ崟寰呬笅鍙�");
- }
+ if (query.getIds().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); }
new LambdaUpdateChainWrapper<>(baseMapper)
.set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
.in(WorkOrder::getId, query.getIds())
.update();
addDistributeRecord(query.getIds(), distributeWayEnum);
+ // 鍚屾鐐逛綅鐘舵��
+ List<Integer> pointIds = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getPointId).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getPointId).toList();
+ ywPointService.updateRecovery(pointIds, 1);
return Result.ok("鎴愬姛涓嬪彂" + query.getIds().size() + "鏉″伐鍗�");
} catch (Exception e) {
return Result.error("鎿嶄綔澶辫触");
--
Gitblit v1.8.0