From a56cbc8a929232b039f137fc51b5af27f40b2822 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 01 八月 2024 15:33:25 +0800
Subject: [PATCH] feat:异常恢复监控
---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 82 +++++++++++++++++++----------------------
1 files changed, 38 insertions(+), 44 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..6a4f2a8 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
@@ -12,6 +12,7 @@
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.mapper.*;
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderAuditingRecordService;
@@ -22,9 +23,12 @@
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.redis.RedisCache;
-import enumeration.general.*;
+import com.ycl.utils.uuid.IdUtils;
+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;
@@ -37,7 +41,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 +63,7 @@
private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
private final String DISTRIBUTE_LOCK_KEY = "distributeLock";
+ private final static String IMPORTANT = "important";
@Autowired
private RedisCache redisCache;
@@ -72,10 +76,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 +131,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 +158,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 +193,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 +259,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());
}
@@ -266,44 +271,37 @@
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)
@@ -321,9 +319,7 @@
@Override
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)
@@ -336,9 +332,7 @@
.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())
--
Gitblit v1.8.0