| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using Admin.NET.Plugin.AiDOP.DataPlatform.MdpRebuild;
- using Admin.NET.Plugin.AiDOP.SmartOps;
- namespace Admin.NET.Plugin.AiDOP.Controllers;
- /// <summary>S2–S7 异步重算与 S2–S7/S9 轻量快照刷新。独立控制器,避免继承 AidopKanbanController 的 AllowAnonymous。</summary>
- [ApiController]
- [Route("api/AidopKanban")]
- [Authorize]
- [NonUnify]
- public class AidopKanbanModuleRefreshController : ControllerBase
- {
- private readonly S1KpiTargetSnapshotRefreshService _snapshot;
- private readonly ModuleRebuildService _rebuild;
- private readonly UserManager _userManager;
- public AidopKanbanModuleRefreshController(
- S1KpiTargetSnapshotRefreshService snapshot,
- ModuleRebuildService rebuild,
- UserManager userManager)
- {
- _snapshot = snapshot;
- _rebuild = rebuild;
- _userManager = userManager;
- }
- [HttpPost("{moduleCode}/target-snapshot/refresh")]
- public async Task<IActionResult> RefreshTargetSnapshot(string moduleCode, [FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var mc = MdpRebuildScope.NormalizeModule(moduleCode);
- if (string.Equals(mc, "S1", StringComparison.OrdinalIgnoreCase))
- return NotFound();
- if (!MdpRebuildScope.SnapshotModules.Contains(mc))
- return NotFound();
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var result = await _snapshot.RefreshAsync(mc, tenantId, factoryId, ct);
- return Ok(result);
- }
- [HttpPost("{moduleCode}/rebuild-jobs")]
- public async Task<IActionResult> EnqueueRebuild(string moduleCode, [FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var mc = MdpRebuildScope.NormalizeModule(moduleCode);
- if (string.Equals(mc, "S1", StringComparison.OrdinalIgnoreCase) || string.Equals(mc, "S9", StringComparison.OrdinalIgnoreCase))
- return NotFound();
- if (!MdpRebuildScope.RebuildModules.Contains(mc))
- return NotFound();
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var (status, body) = await _rebuild.EnqueueAsync(mc, tenantId, factoryId, _userManager.UserId, "MANUAL", ct);
- return StatusCode(status, body);
- }
- [HttpGet("{moduleCode}/rebuild-jobs/latest")]
- public async Task<IActionResult> LatestRebuild(string moduleCode, [FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var mc = MdpRebuildScope.NormalizeModule(moduleCode);
- if (string.Equals(mc, "S1", StringComparison.OrdinalIgnoreCase) || !MdpRebuildScope.RebuildModules.Contains(mc))
- return NotFound();
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- var dto = await _rebuild.LatestAsync(mc, tenantId, factoryId, ct);
- return Ok(dto);
- }
- [HttpGet("{moduleCode}/rebuild-jobs/{jobId:long}")]
- public async Task<IActionResult> GetRebuild(string moduleCode, long jobId, [FromQuery] long factoryId = 1, CancellationToken ct = default)
- {
- var mc = MdpRebuildScope.NormalizeModule(moduleCode);
- if (string.Equals(mc, "S1", StringComparison.OrdinalIgnoreCase) || !MdpRebuildScope.RebuildModules.Contains(mc))
- return NotFound();
- var tenantId = AidopTenantScope.ResolveOrThrow(_userManager);
- if (factoryId <= 0) factoryId = 1;
- return Ok(await _rebuild.GetAsync(mc, jobId, tenantId, factoryId, ct));
- }
- }
|