fix(aihr): bind review evidence to operator

This commit is contained in:
2026-07-14 14:21:29 +08:00
parent 2f29c62280
commit 77ef3c90f6
6 changed files with 47 additions and 4 deletions
@@ -173,7 +173,7 @@ public class AihrMobileController {
@PostMapping("/practice/reviews/{id}/reviewed")
public R<Void> markReviewed(@PathVariable Long id, @RequestBody(required = false) ReviewAdviceRequest request) {
return mobileSeedService.markReviewed(id, request, supervisorScopeExtPartyId()) ? R.ok() : R.fail("复盘记录不存在");
return mobileSeedService.markReviewed(id, bindReviewOperator(request), supervisorScopeExtPartyId()) ? R.ok() : R.fail("复盘记录不存在");
}
@GetMapping("/profile")
@@ -254,6 +254,24 @@ public class AihrMobileController {
return username == null ? "" : username.trim();
}
private static ReviewAdviceRequest bindReviewOperator(ReviewAdviceRequest request) {
return new ReviewAdviceRequest(
currentOperatorUsername(),
request == null ? null : request.advice(),
request == null ? null : request.incentivePoint(),
request == null ? null : request.nextScenarioId(),
request == null ? null : request.nextReason()
);
}
private static String currentOperatorUsername() {
LoginUser loginUser = LoginHelper.getLoginUser();
if (loginUser == null || loginUser.getUsername() == null) {
return "";
}
return loginUser.getUsername().trim();
}
private static boolean supervisorRoleRequested(String role) {
if (role == null) {
return false;
@@ -149,10 +149,22 @@ public class AihrPracticeController {
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY, HR_OPERATOR_ROLE}, mode = SaMode.OR)
@PostMapping("/sessions/{sessionId}/calibration")
public R<CalibrationResponse> calibration(@PathVariable String sessionId, @RequestBody(required = false) CalibrationRequest request) {
CalibrationResponse response = practiceSeedService.calibrate(sessionId, request);
CalibrationResponse response = practiceSeedService.calibrate(sessionId, bindCalibrationReviewer(request));
return response == null ? R.fail("训练会话不存在") : R.ok(response);
}
private static CalibrationRequest bindCalibrationReviewer(CalibrationRequest request) {
return new CalibrationRequest(
currentOperatorUsername(),
request == null ? null : request.correctedTotal(),
request == null ? null : request.correctedCompliance(),
request == null ? null : request.correctedEmotion(),
request == null ? null : request.correctedCommunication(),
request == null ? null : request.correctedMarketing(),
request == null ? null : request.reason()
);
}
private static StartRequest bindMobileStartIdentity(StartRequest request) {
if (request == null || !"mobile".equalsIgnoreCase(request.mode())) {
return request;
@@ -172,4 +184,12 @@ public class AihrPracticeController {
String username = loginUser.getUsername();
return username == null ? "" : username.trim();
}
private static String currentOperatorUsername() {
LoginUser loginUser = LoginHelper.getLoginUser();
if (loginUser == null || loginUser.getUsername() == null) {
return "";
}
return loginUser.getUsername().trim();
}
}
@@ -552,7 +552,7 @@ public class AihrPracticeSeedServiceTest {
assertTrue(controllerSource.contains("mobileSeedService.practiceReviews(supervisorScopeExtPartyId(),"));
assertTrue(controllerSource.contains("mobileSeedService.practiceTeam(supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("mobileSeedService.practiceReview(id, supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("mobileSeedService.markReviewed(id, request, supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("mobileSeedService.markReviewed(id, bindReviewOperator(request), supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("mobileSeedService.practiceAlerts(supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("mobileSeedService.createPracticeAssignment(request, supervisorScopeExtPartyId())"));
assertTrue(controllerSource.contains("orgSyncService.snapshot(phone, null, null, \"active\", 1, 500, 500)"));
@@ -602,6 +602,8 @@ public class AihrPracticeSeedServiceTest {
assertTrue(controllerSource.contains("import cn.dev33.satoken.annotation.SaCheckLogin;"));
assertTrue(controllerSource.contains("@SaCheckLogin\npublic class AihrPracticeController"));
assertTrue(controllerSource.contains("bindCalibrationReviewer(request)"));
assertTrue(controllerSource.contains("private static String currentOperatorUsername()"));
}
@Test