feat(ops): 手动派单遵循执行人忙碌状态,忙碌时入队等待
ManualOrderActionFacade.dispatch: - 新增 strategy.isAssigneeIdle() 判断,空闲→DISPATCHED,忙碌→QUEUED - 不再无条件直接派发 OrderBusinessStrategy: - 新增 isAssigneeIdle() 默认方法,默认返回 true CleanOrderBusinessStrategy: - isAssigneeIdle 通过 BadgeDeviceStatusService.isBusy() 判断设备忙碌 SecurityOrderBusinessStrategy: - isAssigneeIdle 通过 UserDispatchStatusService.isIdle() 判断人员忙碌 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,12 @@ public class CleanOrderBusinessStrategy implements OrderBusinessStrategy {
|
||||
return WorkOrderTypeEnum.CLEAN.getType().equals(businessType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAssigneeIdle(DispatchOrderCommand cmd, OpsOrderDO order) {
|
||||
BadgeDeviceStatusDTO badge = badgeDeviceStatusService.getBadgeStatus(cmd.getAssigneeId());
|
||||
return badge != null && !badge.isBusy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateDispatch(DispatchOrderCommand cmd, OpsOrderDO order) {
|
||||
if (cmd.getAssigneeId() == null) {
|
||||
|
||||
Reference in New Issue
Block a user