|
@@ -24,10 +24,10 @@ public class AdoS0MfgSopDocumentsController : ControllerBase
|
|
|
var pageSize = q.PageSize;
|
|
var pageSize = q.PageSize;
|
|
|
(page, pageSize) = PagingGuard.Normalize(page, pageSize);
|
|
(page, pageSize) = PagingGuard.Normalize(page, pageSize);
|
|
|
|
|
|
|
|
- var domain = q.Domain.Trim();
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // 去 domain 化(S0-SOP-DOMAIN-DECOUPLING-FIX):列表可见性只由 tenant_id 决定。
|
|
|
|
|
+ // 原先 `x.Domain == q.Domain` 会把本租户数据挡在外面——前端在无 Type=501 工厂时
|
|
|
|
|
+ // 会把公司雪花 Id 当 Domain 传入,与业务表的 legacy Domain(8010) 永不相等。
|
|
|
var baseQuery = _rep.ScopedTo(tenantId)
|
|
var baseQuery = _rep.ScopedTo(tenantId)
|
|
|
- .Where(x => x.Domain == domain)
|
|
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(q.Keyword),
|
|
.WhereIF(!string.IsNullOrWhiteSpace(q.Keyword),
|
|
|
x => (x.Line != null && x.Line.Contains(q.Keyword!))
|
|
x => (x.Line != null && x.Line.Contains(q.Keyword!))
|
|
|
|| (x.ItemNum != null && x.ItemNum.Contains(q.Keyword!))
|
|
|| (x.ItemNum != null && x.ItemNum.Contains(q.Keyword!))
|
|
@@ -38,11 +38,14 @@ public class AdoS0MfgSopDocumentsController : ControllerBase
|
|
|
|
|
|
|
|
var total = await baseQuery.CountAsync();
|
|
var total = await baseQuery.CountAsync();
|
|
|
|
|
|
|
|
- // 左联仅用于展示字段(Line/Op/imgType),主表字段仍可 CRUD
|
|
|
|
|
|
|
+ // 左联仅用于展示字段(Line/Op/imgType),主表字段仍可 CRUD。
|
|
|
|
|
+ // 关联口径一律 tenant_id + 业务键:Domain 是 legacy 兼容字段,同租户内不同表的 Domain
|
|
|
|
|
+ // 取值可能不一致(如 SOP 用组织 Id、LineMaster 用 8010),用它做关联会导致展示列解析不出来;
|
|
|
|
|
+ // 用 tenant_id 兜住跨租户,业务键保证语义正确。
|
|
|
var list = await baseQuery
|
|
var list = await baseQuery
|
|
|
- .LeftJoin<AdoS0ImageType>((qsi, it) => qsi.ImageTypeID == it.ImageTypeID && qsi.Domain == it.Domain)
|
|
|
|
|
- .LeftJoin<AdoS0LineMaster>((qsi, it, lm) => qsi.Line == lm.Line && qsi.Domain == lm.Domain)
|
|
|
|
|
- .LeftJoin<AdoS0MfgRoutingOpDetail>((qsi, it, lm, rd) => qsi.ItemNum == rd.MaterialCode && qsi.Op == rd.OperationCode)
|
|
|
|
|
|
|
+ .LeftJoin<AdoS0ImageType>((qsi, it) => qsi.TenantId == it.TenantId && qsi.ImageTypeID == it.ImageTypeID)
|
|
|
|
|
+ .LeftJoin<AdoS0LineMaster>((qsi, it, lm) => qsi.TenantId == lm.TenantId && qsi.Line == lm.Line)
|
|
|
|
|
+ .LeftJoin<AdoS0MfgRoutingOpDetail>((qsi, it, lm, rd) => qsi.TenantId == rd.TenantId && qsi.ItemNum == rd.MaterialCode && qsi.Op == rd.OperationCode)
|
|
|
.OrderByDescending((qsi, it, lm, rd) => qsi.Id)
|
|
.OrderByDescending((qsi, it, lm, rd) => qsi.Id)
|
|
|
.Select((qsi, it, lm, rd) => new
|
|
.Select((qsi, it, lm, rd) => new
|
|
|
{
|
|
{
|