ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java
@@ -34,9 +34,9 @@ @TableField("error_type") private String errorType; @ApiModelProperty("点位") @TableField("point_id") private Integer pointId; @ApiModelProperty("设备编号") @TableField("serial_number") private String serialNumber; @ApiModelProperty("工单来源") @TableField("source") ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java
@@ -39,8 +39,8 @@ private String source; @NotNull(message = "点位不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("点位") private Integer pointId; @ApiModelProperty("设备编号") private Integer serialNumber; @NotNull(message = "故障类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("故障类型") ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
@@ -34,13 +34,13 @@ private Integer unitId; private String unitName; /** 工单来源 */ /** 工单来源/设备名称 */ private String source; /** * 点位 * 设备编号 */ private Integer pointId; private String serialNumber; private String pointTag; ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -21,6 +21,14 @@ public interface WorkOrderService extends IService<WorkOrder> { /** * 系统内部的添加 * * @param workOrder * @return */ Result innerAdd(WorkOrder workOrder); /** * 添加 * @param form * @return ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
@@ -90,11 +90,11 @@ /** * 批量同步状态 * * @param pointIds 点位id * @param serialNumberList 设备编号 * @param recovery 状态 * @return 数量 */ boolean updateRecovery(List<Integer> pointIds, int recovery); boolean updateRecovery(List<String> serialNumberList, int recovery); /** * 首页到期预警 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -73,6 +73,12 @@ @Autowired private RedisCache redisCache; @Override public Result innerAdd(WorkOrder workOrder) { return null; } /** * 添加 * @param form @@ -132,7 +138,7 @@ notifyService.save(notify); // 同步点位状态 if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) { ywPointService.updateRecovery(Collections.singletonList(workOrder.getPointId()), 0); ywPointService.updateRecovery(Arrays.asList(workOrder.getSerialNumber()), 0); } return Result.ok("操作成功"); } @@ -299,7 +305,7 @@ // 查询符合条件的工单 List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper) .select(WorkOrder::getId, WorkOrder::getPointId) .select(WorkOrder::getSerialNumber, WorkOrder::getSerialNumber) .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) .eq(Objects.nonNull(data.getUnitId()), WorkOrder::getUnitId, data.getUnitId()) .eq(WorkOrder::getErrorType, data.getErrorType()) @@ -308,7 +314,7 @@ .last("limit " + data.getFastNumLimit()) .list(); List<Integer> ids = list.stream().map(WorkOrder::getId).toList(); List<Integer> pointIds = list.stream().map(WorkOrder::getPointId).toList(); List<String> serialNumberList = list.stream().map(WorkOrder::getSerialNumber).toList(); if (ids.isEmpty()) { return Result.error("没有符合条件的工单"); } if (!getDistributeLock()) { return Result.error("此刻有人下发中,为避免冲突,请稍后重试"); } @@ -319,7 +325,7 @@ .update(); addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE); // 同步点位状态 ywPointService.updateRecovery(pointIds, 1); ywPointService.updateRecovery(serialNumberList, 1); return Result.ok("成功下发" + ids.size() + "条工单"); } catch (Exception e) { return Result.error("操作失败"); @@ -352,8 +358,8 @@ .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); List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getSerialNumber).toList(); ywPointService.updateRecovery(serialNumberList, 1); return Result.ok("成功下发" + query.getIds().size() + "条工单"); } catch (Exception e) { return Result.error("操作失败"); ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -209,9 +209,9 @@ } @Override public boolean updateRecovery(List<Integer> pointIds, int recovery) { public boolean updateRecovery(List<String> serialNumberList, int recovery) { return new LambdaUpdateChainWrapper<>(baseMapper) .in(YwPoint::getId, pointIds) .in(YwPoint::getSerialNumber, serialNumberList) .set(YwPoint::getRecovery, recovery) .set(recovery == 0, YwPoint::getRecoveryTime, DateUtils.getNowDate()) .update(); ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -54,7 +54,7 @@ t_work_order wo LEFT JOIN t_yw_unit u ON wo.unit_id = u.id and u.deleted = 0 LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id and p.deleted = 0 INNER JOIN t_yw_point yp ON yp.id = wo.point_id AND yp.deleted = 0 INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 LEFT JOIN t_work_order_distribute_record odr ON odr.work_order_id = wo.id AND odr.deleted = 0 LEFT JOIN sys_user su ON su.user_id = odr.user_id WHERE @@ -75,7 +75,7 @@ yp.point_tag FROM t_work_order wo INNER JOIN t_yw_point yp ON yp.id = wo.point_id AND yp.deleted = 0 INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 INNER JOIN t_work_order_distribute_record wod ON wod.work_order_id = wo.id WHERE wo.status = 'DISTRIBUTED' AND wo.deleted = 0