From e9da452e510096673929d04169b92b5f4ebbde3c Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 17 四月 2024 14:06:52 +0800 Subject: [PATCH] 工单下发:快捷下发 --- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java | 13 ++++-- ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java | 4 +- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 58 +++++++++++++++++++++++------ ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 2 4 files changed, 57 insertions(+), 20 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java index 5aaf9f7..a9ccdd7 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java @@ -9,7 +9,7 @@ import lombok.Data; import lombok.experimental.Accessors; -import java.util.Date; +import java.time.LocalDateTime; /** * 涓嬪彂宸ュ崟鏌ヨ @@ -30,26 +30,29 @@ /** * 蹇�熶笅鍙戞柟寮� */ -// @NotNull(message = "璇烽�夋嫨蹇嵎涓嬪彂鏂瑰紡") + @NotNull(message = "璇烽�夋嫨蹇嵎涓嬪彂鏂瑰紡") private FastDistributeTypeEnum fastWay; /** * 蹇�熶笅鍙戝伐鍗曟暟閲� */ - @Min(value = 0, message = "涓嬪彂鏈�澶ф暟閲忓簲璇ュぇ浜�1") + @Min(value = 1, message = "涓嬪彂鏈�澶ф暟閲忓簲璇ュぇ浜�0") private Integer fastNumLimit; /** * 鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date start; + private LocalDateTime start; /** * 鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date end; + private LocalDateTime end; + + @NotNull(message = "璇烽�夋嫨鏁呴殰绫诲瀷") + private String errorType; } 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 ad73c5b..e2ca4c8 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 @@ -118,8 +118,8 @@ @PostMapping("/distribute/ids") @ApiOperation(value = "涓嬪彂閫夋嫨", notes = "涓嬪彂閫夋嫨") - public Result selectedIdsDistribute(@RequestBody List<Integer> ids) { - return workOrderService.selectedIdsDistribute(ids); + public Result selectedIdsDistribute(@RequestBody List<Integer> ids, @RequestParam("unitId") Integer unitId) { + return workOrderService.selectedIdsDistribute(ids, unitId); } @GetMapping("/{id}") 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 5fa0fbb..f9a76f0 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 @@ -133,6 +133,6 @@ * @param ids id * @return 缁撴灉 */ - Result selectedIdsDistribute(List<Integer> ids); + Result selectedIdsDistribute(List<Integer> ids, Integer unitId); } 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 992da03..e311724 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 @@ -14,6 +14,9 @@ import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.query.WorkOrderQuery; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.List; @@ -156,7 +159,7 @@ return Result.ok().data( new LambdaQueryChainWrapper<>(workOrderAuditingRecordMapper) .eq(WorkOrderAuditingRecord::getWorkOrderId, id) - .orderByDesc(WorkOrderAuditingRecord::getCreateTime) + .orderByAsc(WorkOrderAuditingRecord::getCreateTime) .list()); } @@ -261,26 +264,57 @@ @Override public Result distributeFast(DistributeWorkOrderVO data) { - List<WorkOrder> willDistributeList = new ArrayList<>(32); - // 濡傛灉鏄嚜瀹氫箟鏃堕棿鑼冨洿 - if (FastDistributeTypeEnum.CUSTOM == data.getFastWay()) { + // 鑾峰彇褰撳墠鏃堕棿 + LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault()); + 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) + .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(); + + if (ids.isEmpty()) { + return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); + } else { + new LambdaUpdateChainWrapper<>(baseMapper) + .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) + .in(WorkOrder::getId, ids) + .update(); } - - new LambdaUpdateChainWrapper<>(baseMapper) - .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) - .update(); - - return Result.ok("鎿嶄綔鎴愬姛"); + return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�"); } @Override - public Result selectedIdsDistribute(List<Integer> ids) { + public Result selectedIdsDistribute(List<Integer> ids, Integer unitId) { new LambdaUpdateChainWrapper<>(baseMapper) .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) .in(ArrayUtils.isNotEmpty(ids.toArray()), WorkOrder::getId, ids) .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) - // .eq(WorkOrder::getDeleted, 0) + .eq(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId) .update(); return Result.ok("鎿嶄綔鎴愬姛"); } -- Gitblit v1.8.0