| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using Admin.NET.Plugin.AiDOP.DataPlatform.S1Refresh;
- using Admin.NET.Plugin.AiDOP.SmartOps;
- namespace Admin.NET.Plugin.AiDOP.Controllers;
- /// <summary>S1 看板轻量刷新与异步重算。独立控制器以避免继承 AidopKanbanController 的 AllowAnonymous。</summary>
- [ApiController]
- [Route("api/AidopKanban")]
- [Authorize]
- [NonUnify]
- public class AidopKanbanS1RefreshController : ControllerBase
- {
- private readonly S1KpiTargetSnapshotRefreshService _snapshot;
- private readonly S1DashboardRebuildService _rebuild;
- private readonly UserManager _userManager;
- public AidopKanbanS1RefreshController(
- S1KpiTargetSnapshotRefreshService snapshot,
- S1DashboardRebuildService rebuild,
- UserManager userManager)
- {
- _snapshot = snapshot;
- _rebuild = rebuild;
- _userManager = userManager;
- }
- [HttpPost("s1/target-snapshot/refresh")]
- public async Task<IActionResult> RefreshTargetSnapshot([FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var result = await _snapshot.RefreshAsync(tenantId, factoryId, ct);
- return Ok(result);
- }
- [HttpPost("s1/rebuild-jobs")]
- public async Task<IActionResult> EnqueueRebuild([FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var (status, body) = await _rebuild.EnqueueAsync(tenantId, factoryId, _userManager.UserId, "MANUAL", ct);
- return StatusCode(status, body);
- }
- [HttpGet("s1/rebuild-jobs/latest")]
- public async Task<IActionResult> LatestRebuild([FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var dto = await _rebuild.LatestAsync(tenantId, factoryId, ct);
- return Ok(dto);
- }
- [HttpGet("s1/rebuild-jobs/{jobId:long}")]
- public async Task<IActionResult> GetRebuild(long jobId, [FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- return Ok(await _rebuild.GetAsync(jobId, tenantId, factoryId, ct));
- }
- }
|