fix(aihr): keep assignment sources server-owned
This commit is contained in:
+3
-1
@@ -1906,7 +1906,9 @@ public class AihrPracticeSeedService {
|
||||
String scenarioId = firstNonBlank(request == null ? null : request.scenarioId(), "fee-parking");
|
||||
ScenarioSeed scenario = resolveScenario(scenarioId, null);
|
||||
String traineeName = firstNonBlank(request == null ? null : request.traineeName(), extPartyId);
|
||||
String source = firstNonBlank(request == null ? null : request.source(), "manual");
|
||||
// Assignment source is a server-owned classification. Client supplied values
|
||||
// must not turn a manual supervisor assignment into a daily/retry/camp record.
|
||||
String source = "manual";
|
||||
String reason = firstNonBlank(request == null ? null : request.reason(), "主管派发专项训练");
|
||||
Timestamp createdAt = Timestamp.valueOf(now);
|
||||
jdbcTemplate.update("""
|
||||
|
||||
+11
@@ -109,6 +109,17 @@ public class AihrPracticeSeedServiceTest {
|
||||
assertEquals("缺少员工ID,无法派发专项训练", error.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supervisorAssignmentSourceIsServerOwned() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java"));
|
||||
int methodStart = source.indexOf("public PracticeAssignmentResponse createAssignment(PracticeAssignmentRequest request)");
|
||||
int methodEnd = source.indexOf("public PracticeAssignmentResponse createAssignment(PracticeAssignmentRequest request, String supervisorExtPartyId)", methodStart);
|
||||
String method = source.substring(methodStart, methodEnd);
|
||||
|
||||
assertTrue(method.contains("String source = \"manual\""));
|
||||
assertFalse(method.contains("request.source()"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void newHireWindowUsesInclusiveThreeMonthBoundary() {
|
||||
LocalDate asOf = LocalDate.of(2026, 7, 14);
|
||||
|
||||
Reference in New Issue
Block a user