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 | 116 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 99 insertions(+), 17 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 73d58cf..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 @@ -7,18 +7,27 @@ import com.ycl.platform.domain.query.DistributeWorkOrderQuery; import com.ycl.platform.domain.vo.DistributeWorkOrderVO; import com.ycl.platform.mapper.*; +import com.ycl.platform.service.NotifyService; import com.ycl.platform.service.WorkOrderService; import com.ycl.system.Result; 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; import com.ycl.system.page.PageUtil; import com.ycl.utils.DateUtils; +import com.ycl.utils.SecurityUtils; 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; @@ -46,6 +55,7 @@ private final YwPeopleMapper ywPeopleMapper; private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper; private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; + private final NotifyService notifyService; /** @@ -89,23 +99,23 @@ @Transactional(rollbackFor = Exception.class) public Result auditing(WorkOrderAuditingForm form) { WorkOrder workOrder = baseMapper.selectById(form.getId()); - if (Objects.isNull(workOrder)) { - throw new ServiceException("宸ュ崟涓嶅瓨鍦�"); - } // 宸ュ崟鐘舵�� - if ("pass".equals(form.getAuditingResult())) { - workOrder.setStatus(WorkOrderStatusEnum.FINISH); - } else { - workOrder.setStatus(WorkOrderStatusEnum.AUDITING); - } + workOrder.setStatus(form.getAuditingResult()); baseMapper.updateById(workOrder); // 娣诲姞涓�鏉″鏍歌褰� WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord(); workOrderAuditingRecord.setWorkOrderId(workOrder.getId()); - workOrderAuditingRecord.setAuditingUser(1); - workOrderAuditingRecord.setResult(form.getAuditingResult()); + workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue()); + workOrderAuditingRecord.setResult(form.getAuditingResult().getDesc()); workOrderAuditingRecord.setRemark(form.getAuditingRemark()); workOrderAuditingRecordMapper.insert(workOrderAuditingRecord); + // 娣诲姞鏂伴�氱煡 + 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("鎿嶄綔鎴愬姛"); } @@ -117,15 +127,44 @@ throw new ServiceException("宸ュ崟涓嶅瓨鍦�"); } // 宸ュ崟鐘舵�� -// workOrder.setStatus("commit-condition"); + workOrder.setStatus(WorkOrderStatusEnum.YW_HANDLE); baseMapper.updateById(workOrder); // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰� WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord(); workOrderYwConditionRecord.setWorkOrderId(workOrder.getId()); - workOrderYwConditionRecord.setCommitUser(1); + workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue()); workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); + workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials()); workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); return Result.ok("鎿嶄綔鎴愬姛"); + } + + @Override + public Result selectYwConditionByYwId(String id) { + return Result.ok().data( + new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper) + .eq(WorkOrderYwConditionRecord::getWorkOrderId, id) + .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 @@ -173,7 +212,8 @@ public Result page(WorkOrderQuery query) { IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo()) - .ne(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) + .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, DateUtils.getDayStart(query.getStart()), @@ -228,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