龚焕茏
2024-04-17 e9da452e510096673929d04169b92b5f4ebbde3c
工单下发:快捷下发
4个文件已修改
77 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DistributeWorkOrderVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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}")
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);
}
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("操作成功");
    }