From 1de0d92e2a630927f391ae080709ae678e5f5618 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 17 四月 2024 15:28:46 +0800 Subject: [PATCH] 工单事后报备:新增点位id --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 78 insertions(+), 8 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 b9deaa2..f136b80 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 @@ -13,6 +13,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -22,6 +27,7 @@ import enumeration.general.FastDistributeTypeEnum; import enumeration.general.NotifyTypeEnum; import enumeration.general.WorkOrderStatusEnum; +import org.apache.commons.lang3.ArrayUtils; import org.springframework.stereotype.Service; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; @@ -104,8 +110,12 @@ workOrderAuditingRecord.setRemark(form.getAuditingRemark()); workOrderAuditingRecordMapper.insert(workOrderAuditingRecord); // 娣诲姞鏂伴�氱煡 - Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId()); - notifyService.save(notify); + try { + Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId()); + notifyService.save(notify); + } catch (Exception e) { + return Result.error("瀹℃牳鎴愬姛锛岄�氱煡杩愮淮浜哄憳澶辫触"); + } return Result.ok("鎿嶄綔鎴愬姛"); } @@ -134,9 +144,27 @@ return Result.ok().data( new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper) .eq(WorkOrderYwConditionRecord::getWorkOrderId, id) - .orderByDesc(WorkOrderYwConditionRecord::getCreateTime) + .orderByAsc(WorkOrderYwConditionRecord::getCreateTime) .last("limit 1") .one()); + } + + @Override + public Result selectYwConditionListByYwId(String id) { + return Result.ok().data( + new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper) + .eq(WorkOrderYwConditionRecord::getWorkOrderId, id) + .orderByAsc(WorkOrderYwConditionRecord::getCreateTime) + .list()); + } + + @Override + public Result selectYwAuditingListByYwId(String id) { + return Result.ok().data( + new LambdaQueryChainWrapper<>(workOrderAuditingRecordMapper) + .eq(WorkOrderAuditingRecord::getWorkOrderId, id) + .orderByAsc(WorkOrderAuditingRecord::getCreateTime) + .list()); } @Override @@ -184,7 +212,7 @@ public Result page(WorkOrderQuery query) { IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo()) - .in(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED, WorkOrderStatusEnum.YW_HANDLE) + .eq(StringUtils.hasText(query.getStatus().getValue()), WorkOrder::getStatus, query.getStatus()) .eq(StringUtils.hasText(query.getErrorType()), WorkOrder::getErrorType, query.getErrorType()) .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()), WorkOrder::getYwHandleTime, @@ -240,16 +268,58 @@ @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(); } + return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�"); + } + @Override + 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(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId) .update(); - return Result.ok("鎿嶄綔鎴愬姛"); } -- Gitblit v1.8.0