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