refactor: преобразование организаций сотрудника в компании вынесено в shared/dictionary
employeeCompanies() нужен теперь не только подбору, но и заявке на рабочее место — одна реализация вместо копий в каждой форме. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ import { AadHttpClient, HttpClientResponse } from '@microsoft/sp-http';
|
||||
import { WebPartContext } from '@microsoft/sp-webpart-base';
|
||||
import { APPROVAL_API_CLIENT_ID, DICTIONARY_API_BASE_URL } from '../config';
|
||||
import { IEmployeeOrganization } from './models/IEmployeeOrganization';
|
||||
import { ICompany } from './models/ICompany';
|
||||
|
||||
// GET /Employee/ByEmail?Email=... — организации сотрудника (см. IEmployeeOrganization:
|
||||
// один email может вернуть несколько записей). 404 (email не найден в системе
|
||||
@@ -57,3 +58,12 @@ export function getEmployeeOrganizations(context: WebPartContext, email: string)
|
||||
export function formatEmployeeOrganizations(records: IEmployeeOrganization[]): string {
|
||||
return records.map((r) => (r.position ? `${r.company} — ${r.position}` : r.company)).join('\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* Организации сотрудника → значение для CompanyPickerMulti. companyId из
|
||||
* Employee/ByEmail совпадает с Id в Dictionary/Companies (тот же источник),
|
||||
* поэтому доп. запрос в справочник не нужен. Записи без компании пропускаем.
|
||||
*/
|
||||
export function employeeCompanies(records: IEmployeeOrganization[]): ICompany[] {
|
||||
return records.filter((r) => r.companyId && r.company).map((r) => ({ Id: r.companyId, Name: r.company }));
|
||||
}
|
||||
|
||||
@@ -10,7 +10,11 @@ export { getCompanies } from './companies.service';
|
||||
export type { ICompany } from './models/ICompany';
|
||||
export { CompanyPickerMulti } from './ui/CompanyPickerMulti';
|
||||
export type { ICompanyPickerMultiProps } from './ui/CompanyPickerMulti';
|
||||
export { getEmployeeOrganizations, formatEmployeeOrganizations } from './employeeOrganizations.service';
|
||||
export {
|
||||
getEmployeeOrganizations,
|
||||
formatEmployeeOrganizations,
|
||||
employeeCompanies
|
||||
} from './employeeOrganizations.service';
|
||||
export type { IEmployeeOrganization } from './models/IEmployeeOrganization';
|
||||
export { getNomenclature } from './nomenclature.service';
|
||||
export type { INomenclatureRow } from './models/INomenclatureRow';
|
||||
|
||||
Reference in New Issue
Block a user