fix(ops): 修复工牌设备状态残留 BUSY 导致下一工单无法派发的问题
- 新增 repairDeviceOrderConsistency 方法,检测设备关联的工单是否已终态,
若是则清除 currentOpsOrderId 并将设备状态恢复为 IDLE
- 定时对账 Job 增加工单一致性检查,自动修复历史残留
- 新增管理员手动修复 API:POST /ops/clean/order/repair-device-status
- 修复预存 bug:valueOf("busy") 改为 fromCode("busy") 避免 IllegalArgumentException
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import com.viewsh.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.viewsh.module.ops.api.clean.OrderTimelineRespDTO;
|
||||
import com.viewsh.module.ops.environment.dal.dataobject.ManualCompleteOrderReqDTO;
|
||||
import com.viewsh.module.ops.environment.dal.dataobject.UpgradePriorityReqDTO;
|
||||
import com.viewsh.module.ops.environment.service.badge.BadgeDeviceStatusService;
|
||||
import com.viewsh.module.ops.environment.service.cleanorder.CleanWorkOrderService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@@ -33,6 +34,9 @@ public class CleanWorkOrderController {
|
||||
@Resource
|
||||
private CleanWorkOrderService cleanWorkOrderService;
|
||||
|
||||
@Resource
|
||||
private BadgeDeviceStatusService badgeDeviceStatusService;
|
||||
|
||||
@GetMapping("/timeline/{orderId}")
|
||||
@Operation(summary = "工单时间轴")
|
||||
@Parameter(name = "orderId", description = "工单ID", required = true)
|
||||
@@ -65,4 +69,13 @@ public class CleanWorkOrderController {
|
||||
cleanWorkOrderService.upgradePriority(req);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/repair-device-status")
|
||||
@Operation(summary = "修复工牌设备状态", description = "当设备状态残留为BUSY但关联工单已完成/取消时,修复设备状态为IDLE")
|
||||
@Parameter(name = "deviceId", description = "设备ID", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('ops:clean:order:complete')")
|
||||
public CommonResult<Boolean> repairDeviceStatus(@RequestParam("deviceId") Long deviceId) {
|
||||
boolean repaired = badgeDeviceStatusService.repairDeviceOrderConsistency(deviceId);
|
||||
return success(repaired);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user