refactor(ops): 服务层调整,统一使用设备ID
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

- CleanOrderService: 将所有 cleanerId 参数改为 deviceId
- CleanOrderAutoCreateReqDTO: 新增 triggerData 字段
- EventPublishHandler: 添加 assigneeId/urgentOrderId 到 payload
- OrderQueueService: 修正注释说明 userId 实际为 deviceId
- EventDomain: 新增 AUDIT 域
- 更新测试用例适配接口变更

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-01-25 18:23:37 +08:00
parent 373f379b01
commit a8d3fc84d2
7 changed files with 108 additions and 77 deletions

View File

@@ -18,6 +18,7 @@ import com.viewsh.framework.common.pojo.CommonResult;
import com.viewsh.module.ops.environment.integration.listener.CleanOrderEventListener;
import com.viewsh.module.ops.environment.service.cleanorder.CleanOrderServiceImpl;
import com.viewsh.module.ops.environment.service.voice.VoiceBroadcastService;
import com.viewsh.module.ops.environment.service.badge.BadgeDeviceStatusService;
import com.viewsh.module.ops.infrastructure.code.OrderCodeGenerator;
import com.viewsh.module.ops.infrastructure.id.OrderIdGenerator;
import com.viewsh.module.ops.infrastructure.log.recorder.EventLogRecorder;
@@ -89,6 +90,10 @@ public class CleanOrderEndToEndTest {
private ValueOperations<String, String> valueOperations;
@Mock
private VoiceBroadcastService voiceBroadcastService;
@Mock
private BadgeDeviceStatusService badgeDeviceStatusService;
@Mock
private EventLogRecorder eventLogRecorder;
@@ -245,7 +250,8 @@ public class CleanOrderEndToEndTest {
@Test
void testAV01_BeaconAutoArrive() throws Exception {
injectField(arriveEventHandler, "orderLifecycleManager", orderLifecycleManager);
injectField(arriveEventHandler, "badgeDeviceStatusService", badgeDeviceStatusService);
// 准备工单:状态 DISPATCHED
Long orderId = 1001L;
OpsOrderDO order = OpsOrderDO.builder()
@@ -283,9 +289,10 @@ public class CleanOrderEndToEndTest {
assertEquals(orderId, req.getOrderId());
assertEquals(WorkOrderStatusEnum.ARRIVED, req.getTargetStatus());
assertTrue(req.getReason().contains("自动到岗确认"));
// 3. 验证 Redis 缓存更新
verify(valueOperations).set(contains("ops:clean:device:order:5001"), anyString(), anyLong(), any(TimeUnit.class));
// 3. 验证设备状态服务更新工单信息
verify(badgeDeviceStatusService).setCurrentOrderInfo(eq(5001L), eq(1001L),
eq(WorkOrderStatusEnum.ARRIVED.getStatus()), eq(101L), eq("F0:C8:60:1D:10:BB"));
}
@Test
@@ -315,6 +322,7 @@ public class CleanOrderEndToEndTest {
void testCP01_SignalLossAutoComplete() throws Exception {
injectField(completeEventHandler, "orderLifecycleManager", orderLifecycleManager);
injectField(completeEventHandler, "cleanOrderService", cleanOrderService);
injectField(completeEventHandler, "badgeDeviceStatusService", badgeDeviceStatusService);
injectField(cleanOrderService, "dispatchEngine", dispatchEngine);
// 准备工单:状态 ARRIVED
@@ -333,7 +341,7 @@ public class CleanOrderEndToEndTest {
"\"triggerSource\":\"IOT_SIGNAL_LOSS\"," +
"\"triggerData\":{\"durationMs\":1800000}" +
"}";
// 模拟 autoDispatchNext 调用成功
when(dispatchEngine.autoDispatchNext(eq(orderId), eq(2001L)))
.thenReturn(DispatchResult.success("Success", 2001L));
@@ -345,8 +353,8 @@ public class CleanOrderEndToEndTest {
// 1. 验证调用了 completeOrder
verify(orderLifecycleManager).completeOrder(eq(orderId), eq(null), contains("信号丢失超时"));
// 2. 验证清理了 Redis 缓存
verify(stringRedisTemplate).delete(contains("ops:clean:device:order:5001"));
// 2. 验证清理了设备工单缓存
verify(badgeDeviceStatusService).clearCurrentOrder(5001L);
// 3. 验证触发了自动调度下一单
verify(dispatchEngine).autoDispatchNext(eq(orderId), eq(2001L));