|
|
@@ -41,6 +41,20 @@ export function useS0MfgOrgScope() {
|
|
|
export const S0_DEFAULT_COMPANY_CODE = 'S0-C001';
|
|
|
export const S0_DEFAULT_FACTORY_CODE = 'S0-F001';
|
|
|
|
|
|
+/**
|
|
|
+ * 兜底工厂域编码(当前版本临时口径)。
|
|
|
+ *
|
|
|
+ * 未铺 S0-C001 / S0-F001 种子组织的租户取不到工厂,domainCode 便无来源;而部分后端
|
|
|
+ * DTO(AdoS0LineMasterUpsertDto / AdoS0StdOpMasterUpsertDto 的 Domain)为 [Required]
|
|
|
+ * 非空,域编码为空会被直接拒绝,页面无法保存。
|
|
|
+ *
|
|
|
+ * ⚠️ 已知不一致:这类租户的历史数据域编码并不统一(实测 UATTEST_CHL:
|
|
|
+ * LineMaster / StdOpMaster 为 '8010',CustMaster 为 '2410'),前端无可靠依据按页面区分,
|
|
|
+ * 故当前版本统一取 '2410'。新记录与部分历史记录的域编码会不同,属已知取舍。
|
|
|
+ * 后续若为租户补齐真实工厂组织,本兜底会自动让位于工厂 code(见 getDefaultS0OrgScope)。
|
|
|
+ */
|
|
|
+export const S0_FALLBACK_DOMAIN_CODE = '2410';
|
|
|
+
|
|
|
/** 组织归属三件套(string 语义;未定为 undefined)。 */
|
|
|
export interface S0OrgScope {
|
|
|
companyRefId?: string;
|
|
|
@@ -83,13 +97,15 @@ function getCurrentTenantOrgId(): string | undefined {
|
|
|
/**
|
|
|
* 从已加载组织列表按 code 求默认归属;取不到种子组织时回落到当前租户自身组织。
|
|
|
* 两者都取不到才返回空对象(不脑补 id/domainCode)。
|
|
|
- * domainCode 口径沿用页面既有约定:新记录取工厂 code;兜底路径下不臆造,留空。
|
|
|
+ * domainCode 口径:正常路径取工厂 code;兜底路径无工厂可取,用 S0_FALLBACK_DOMAIN_CODE。
|
|
|
*/
|
|
|
export function getDefaultS0OrgScope(companyOptions: OrgOption[], factoryOptions: OrgOption[]): S0OrgScope {
|
|
|
const company = companyOptions.find((item) => item.code === S0_DEFAULT_COMPANY_CODE);
|
|
|
if (!company) {
|
|
|
const tenantOrgId = getCurrentTenantOrgId();
|
|
|
- return tenantOrgId ? { companyRefId: tenantOrgId, factoryRefId: tenantOrgId } : {};
|
|
|
+ return tenantOrgId
|
|
|
+ ? { companyRefId: tenantOrgId, factoryRefId: tenantOrgId, domainCode: S0_FALLBACK_DOMAIN_CODE }
|
|
|
+ : {};
|
|
|
}
|
|
|
const factory = factoryOptions.find((item) => item.code === S0_DEFAULT_FACTORY_CODE && item.pid === company.id);
|
|
|
return {
|