check_cross_pkg.ps1 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # 找出不同包名的冲突
  2. $saasRoot = "d:\ylrz\ylrz_saas_his_scrm\fs-admin-saas\src\main\java\com\fs"
  3. $companyRoot = "d:\ylrz\ylrz_saas_his_scrm\fs-company\src\main\java\com\fs"
  4. $excludedPatterns = @(
  5. "com\.fs\.framework\.web\.service\.UserDetailsServiceImpl",
  6. "com\.fs\.api\.controller\..*",
  7. "com\.fs\.web\.controller\..*",
  8. "com\.fs\.his\.controller\.FsFollowController",
  9. "com\.fs\.his\.controller\.FsFollowReportController",
  10. "com\.fs\.his\.controller\.FsUserOnlineStateController",
  11. "com\.fs\.his\.controller\.FsMaterialGroupController",
  12. "com\.fs\.his\.controller\.FsMaterialController",
  13. "com\.fs\.his\.controller\.FsUserOperationLogController",
  14. "com\.fs\.his\.controller\.FsDoctorController",
  15. "com\.fs\.his\.controller\.FsStoreOrderBillLogController",
  16. "com\.fs\.admin\.controller\..*",
  17. "com\.fs\.admin\.helper\..*",
  18. "com\.fs\.company\.controller\.chat\..*",
  19. "com\.fs\.chat\.controller\.FastGptRoleController",
  20. "com\.fs\.crm\.controller\..*",
  21. "com\.fs\.course\.controller\..*",
  22. "com\.fs\.qw\.controller\..*",
  23. "com\.fs\.live\.controller\..*",
  24. "com\.fs\.newAdv\.controller\..*",
  25. "com\.fs\.company\.controller\.hisStore\..*",
  26. "com\.fs\.user\.controller\..*",
  27. "com\.fs\.proxy\.controller\..*",
  28. "com\.fs\.fastGpt\.[^.]+",
  29. "com\.fs\.fastgptApi\.[^.]+",
  30. "com\.fs\.company\.controller\.transfer\..*",
  31. "com\.fs\.task\.[^.]+",
  32. "com\.fs\.ad\.controller\..*",
  33. "com\.fs\.third\.controller\..*",
  34. "com\.fs\.quartz\.saas\.QuartzSaaSConfig"
  35. )
  36. $companyMaps = @{}
  37. Get-ChildItem $companyRoot -Recurse -Filter "*Controller.java" | ForEach-Object {
  38. $content = Get-Content $_.FullName -Raw
  39. if ($content -match '@RequestMapping\("([^"]+)"\)') {
  40. $path = $Matches[1]
  41. $className = $_.BaseName
  42. $content -match '(?s)^package\s+([^;]+)' | Out-Null; $pkg = $Matches[1]
  43. $fqn = "$pkg.$className"
  44. $companyMaps[$path] = $fqn
  45. }
  46. }
  47. $crossPackageConflicts = @()
  48. Get-ChildItem $saasRoot -Recurse -Filter "*Controller.java" | ForEach-Object {
  49. $content = Get-Content $_.FullName -Raw
  50. if ($content -match '@Profile\("admin"\)') { return }
  51. if ($content -match '@RequestMapping\("([^"]+)"\)') {
  52. $path = $Matches[1]
  53. $className = $_.BaseName
  54. $content -match '(?s)^package\s+([^;]+)' | Out-Null; $pkg = $Matches[1]
  55. $fqn = "$pkg.$className"
  56. $excluded = $false
  57. foreach ($pattern in $excludedPatterns) {
  58. if ($fqn -match $pattern) { $excluded = $true; break }
  59. }
  60. if (-not $excluded -and $companyMaps.ContainsKey($path)) {
  61. $otherFqn = $companyMaps[$path]
  62. # 检查是否不同包
  63. if ($fqn -ne $otherFqn) {
  64. $crossPackageConflicts += "DIFF_PKG: $fqn vs $otherFqn = $path"
  65. }
  66. }
  67. }
  68. }
  69. "Found $($crossPackageConflicts.Count) cross-package conflicts:"
  70. $crossPackageConflicts | ForEach-Object { $_ }