fix(aihr): require assignee for practice assignments

This commit is contained in:
2026-07-09 11:02:11 +08:00
parent 82f861542f
commit 2f5fb853a2
2 changed files with 32 additions and 2 deletions
@@ -593,7 +593,7 @@ public class AihrPracticeSeedService {
ReviewDetailResponse detail = reviewDetail(id);
String extPartyId = reviewExtPartyId(id);
createAssignment(new PracticeAssignmentRequest(
firstNonBlank(extPartyId, detail == null ? "mobile-user" : detail.trainee()),
firstNonBlank(extPartyId, ""),
detail == null ? "待复盘员工" : detail.trainee(),
request.nextScenarioId(),
null,
@@ -876,11 +876,14 @@ public class AihrPracticeSeedService {
}
public PracticeAssignmentResponse createAssignment(PracticeAssignmentRequest request) {
String extPartyId = request == null ? "" : firstNonBlank(request.extPartyId(), "");
if (isBlank(extPartyId)) {
throw new ServiceException("缺少员工ID,无法派发专项训练");
}
ensureAssignmentTable();
LocalDateTime now = LocalDateTime.now();
String scenarioId = firstNonBlank(request == null ? null : request.scenarioId(), "fee-parking");
ScenarioSeed scenario = resolveScenario(scenarioId, null);
String extPartyId = firstNonBlank(request == null ? null : request.extPartyId(), "mobile-user");
String traineeName = firstNonBlank(request == null ? null : request.traineeName(), extPartyId);
String source = firstNonBlank(request == null ? null : request.source(), "manual");
String reason = firstNonBlank(request == null ? null : request.reason(), "主管派发专项训练");
@@ -0,0 +1,27 @@
package org.dromara.aihr.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.dromara.aihr.domain.AihrPracticeDto.PracticeAssignmentRequest;
import org.dromara.common.core.exception.ServiceException;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class AihrPracticeSeedServiceTest {
@Test
public void createAssignmentRequiresExtPartyId() {
AihrPracticeSeedService service = new AihrPracticeSeedService(new ObjectMapper(), null, null, null);
ServiceException error = assertThrows(ServiceException.class, () -> service.createAssignment(new PracticeAssignmentRequest(
"",
"测试员工",
"fee-parking",
null,
"manual",
"主管派发专项训练"
)));
assertEquals("缺少员工ID,无法派发专项训练", error.getMessage());
}
}