[CLAUDE] Office: P11-D ItTicket auto-assign round-robin + SLA timer (Wave 2, Mig 46)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m17s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m17s
Mig 46 AddSlaFieldsToItTicket (SlaDueAt/SlaWarnedSent/SlaBreached). CreateItTicketHandler: round-robin least-loaded assign cho IT staff (dept Code=IT, tie-break Id) + SlaDueAt theo Priority (Urgent 4h/High 8h/Medium 24h/Low 72h). ItTicketSlaJob background (breach+warning notify, KHONG auto-transition). PUT /{id}/assign admin override. DbInitializer seed dept IT + 2 sample staff (nv.cao/nv.truong). FE ItTicketsPage +MaTicket+assignee+SLA badge (2 app SHA256 mirror). +9 test (191->200). Self-review PASS (seed<->query dept-code verified; em main solo review do session-limit kill reviewer-spawn).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -29,5 +29,15 @@ public class ItTicketsController(IMediator mediator) : ControllerBase
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
// P11-D: admin re-assign ticket cho IT staff (override round-robin auto-assign).
|
||||
[HttpPut("{id:guid}/assign")]
|
||||
[Authorize(Roles = "Admin")]
|
||||
public async Task<IActionResult> Assign(Guid id, [FromBody] AssignItTicketBody body)
|
||||
{
|
||||
await mediator.Send(new AssignItTicketCommand(id, body.AssignedToUserId));
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
public record UpdateItTicketStatusBody(int Status, string? Resolution);
|
||||
public record AssignItTicketBody(Guid AssignedToUserId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user