From 7707455a2418386e318b5ba30f8f7feaff7698f0 Mon Sep 17 00:00:00 2001 From: lzh Date: Mon, 13 Apr 2026 23:18:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=89=8B=E5=8A=A8=E6=B4=BE?= =?UTF-8?q?=E5=8D=95=E6=94=BE=E5=AE=BD=E6=A0=A1=E9=AA=8C=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=B7=A8=E5=8C=BA=E5=9F=9F=E5=92=8C=E5=90=91=E5=BF=99?= =?UTF-8?q?=E7=A2=8C=E8=AE=BE=E5=A4=87=E6=B4=BE=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除 canAcceptNewOrder、区域绑定和区域匹配校验,仅保留在线检查。 手动派单由调度员人工判断合理性,自动派单的校验仍在 BadgeDeviceAreaAssignStrategy 中完成。 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../manual/CleanOrderBusinessStrategy.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/manual/CleanOrderBusinessStrategy.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/manual/CleanOrderBusinessStrategy.java index 74e5aa3b..95d9b611 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/manual/CleanOrderBusinessStrategy.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/service/manual/CleanOrderBusinessStrategy.java @@ -55,15 +55,9 @@ public class CleanOrderBusinessStrategy implements OrderBusinessStrategy { if (!badge.isOnline()) { throw new IllegalStateException("目标保洁设备当前离线,不能手动派单"); } - if (!badge.canAcceptNewOrder()) { - throw new IllegalStateException("目标保洁设备当前不可接单"); - } - if (order.getAreaId() != null && badge.getCurrentAreaId() == null) { - throw new IllegalStateException("目标保洁设备当前未绑定区域,不能手动派单"); - } - if (order.getAreaId() != null && !order.getAreaId().equals(badge.getCurrentAreaId())) { - throw new IllegalStateException("目标保洁设备不在当前工单所属区域"); - } + // 注意:以下校验已按产品需求移除,由调度员人工判断合理性: + // 1. canAcceptNewOrder() — 允许向 BUSY/PAUSED 工牌手动派单,工单进入 QUEUED 排队 + // 2. 区域一致性校验 — 允许跨区域分配,支持灵活调度场景 } @Override @@ -87,4 +81,11 @@ public class CleanOrderBusinessStrategy implements OrderBusinessStrategy { log.info("[CleanStrategy] 升级优先级后置完成: orderId={}, newPriority={}, queueId={}", cmd.getOrderId(), newPriority, queueDTO.getId()); } + + @Override + public void afterDispatch(DispatchOrderCommand cmd, OpsOrderDO order) { + // TODO: 转派场景下(order.getAssigneeId() != null && !order.getAssigneeId().equals(cmd.getAssigneeId())), + // 应向旧工牌发送震动/语音通知告知任务已转移,避免旧工牌持有者继续前往已无效的区域。 + // 实现参考:cleanOrderNotificationService.sendReassignNotification(oldBadgeId, order.getOrderCode()) + } }