EmployeePositionRulesTests.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Admin.NET.Plugin.AiDOP.DataPlatform;
  2. using Xunit;
  3. namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
  4. public class EmployeePositionRulesTests
  5. {
  6. [Theory]
  7. [InlineData("计划", "PLANNER")]
  8. [InlineData("仓管", "WAREHOUSE")]
  9. [InlineData("生产", "PRODUCTION")]
  10. [InlineData("成品仓", "WAREHOUSE")]
  11. [InlineData("库管员", "WAREHOUSE")]
  12. [InlineData("物料员", "WAREHOUSE")]
  13. [InlineData("WMS专员", "WAREHOUSE")]
  14. [InlineData("装配工", "PRODUCTION")]
  15. [InlineData("车间班长", "PRODUCTION")]
  16. [InlineData("PMC", "PLANNER")]
  17. [InlineData("调度员", "PLANNER")]
  18. [InlineData("财务", "UNKNOWN")]
  19. [InlineData("", "UNKNOWN")]
  20. [InlineData(null, "UNKNOWN")]
  21. // 165 的 EmployeeMaster.JobTitle 填的是小写英文,中文关键字一个都匹配不上。
  22. [InlineData("warehouse", "WAREHOUSE")]
  23. [InlineData("warehouse1", "WAREHOUSE")]
  24. [InlineData("Warehouse Clerk", "WAREHOUSE")]
  25. [InlineData("wms专员", "WAREHOUSE")]
  26. [InlineData("production", "PRODUCTION")]
  27. [InlineData("Assembly Operator", "PRODUCTION")]
  28. [InlineData("planner", "PLANNER")]
  29. // 已人工确认不属于三类业务岗,归 OTHER 而非 UNKNOWN,不再记 POSITION_UNMAPPED。
  30. [InlineData("quality", "OTHER")]
  31. [InlineData("QC检验员", "OTHER")]
  32. [InlineData("数据员", "OTHER")]
  33. [InlineData("研发工程师", "OTHER")]
  34. // OTHER 判定在三类业务岗之后,含「仓」仍归 WAREHOUSE。
  35. [InlineData("质量仓管", "WAREHOUSE")]
  36. public void Classify_ExactBeforeKeyword(string? raw, string expected)
  37. {
  38. Assert.Equal(expected, EmployeePositionRules.Classify(raw));
  39. }
  40. }