|
|
@@ -128,22 +128,24 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
[HttpGet("delivery/flow/{entryId}")]
|
|
|
public async Task<object> GetDeliveryFlow(long entryId)
|
|
|
{
|
|
|
+ var tenantId = _userManager.TenantId;
|
|
|
+
|
|
|
// 同一 ISqlSugarClient 底层共用一条连接,不能对 _db.Ado 并发执行多查询(MySqlConnector 会报 Cannot Open when State is Connecting)
|
|
|
- var basic = await QueryBasic(entryId);
|
|
|
- var orderInfo = await QueryOrderInfo(entryId);
|
|
|
- var review = await QueryReview(entryId);
|
|
|
- var changes = await QueryChanges(entryId);
|
|
|
- var schedule = await QuerySchedule(entryId);
|
|
|
- var material = await QueryMaterials(entryId);
|
|
|
- var po = await QueryPo(entryId);
|
|
|
- var pr = await QueryPr(entryId);
|
|
|
- var deliverySchedule = await QueryDeliverySchedule(entryId);
|
|
|
- var nbr = await QueryNbr(entryId);
|
|
|
- var prodReport = await QueryProdReport(entryId);
|
|
|
- var iqc = await QueryIqc(entryId);
|
|
|
- var fqc = await QueryFqc(entryId);
|
|
|
- var receipt = await QueryReceipt(entryId);
|
|
|
- var shipment = await QueryShipment(entryId);
|
|
|
+ var basic = await QueryBasic(entryId, tenantId);
|
|
|
+ var orderInfo = await QueryOrderInfo(entryId, tenantId);
|
|
|
+ var review = await QueryReview(entryId, tenantId);
|
|
|
+ var changes = await QueryChanges(entryId, tenantId);
|
|
|
+ var schedule = await QuerySchedule(entryId, tenantId);
|
|
|
+ var material = await QueryMaterials(entryId, tenantId);
|
|
|
+ var po = await QueryPo(entryId, tenantId);
|
|
|
+ var pr = await QueryPr(entryId, tenantId);
|
|
|
+ var deliverySchedule = await QueryDeliverySchedule(entryId, tenantId);
|
|
|
+ var nbr = await QueryNbr(entryId, tenantId);
|
|
|
+ var prodReport = await QueryProdReport(entryId, tenantId);
|
|
|
+ var iqc = await QueryIqc(entryId, tenantId);
|
|
|
+ var fqc = await QueryFqc(entryId, tenantId);
|
|
|
+ var receipt = await QueryReceipt(entryId, tenantId);
|
|
|
+ var shipment = await QueryShipment(entryId, tenantId);
|
|
|
|
|
|
return new
|
|
|
{
|
|
|
@@ -160,7 +162,7 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
}
|
|
|
|
|
|
// ── 基础信息 ──
|
|
|
- private async Task<FlowBasicRow?> QueryBasic(long entryId)
|
|
|
+ private async Task<FlowBasicRow?> QueryBasic(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -174,13 +176,13 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
entry.update_time AS Mrptime
|
|
|
FROM crm_seorderentry entry
|
|
|
LEFT JOIN crm_seorder sorder ON entry.seorder_id = sorder.Id
|
|
|
- WHERE entry.Id = @Id AND entry.IsDeleted = 0
|
|
|
+ WHERE entry.Id = @Id AND entry.IsDeleted = 0 AND entry.tenant_id = @TenantId
|
|
|
""";
|
|
|
- return (await _db.Ado.SqlQueryAsync<FlowBasicRow>(sql, new { Id = entryId })).FirstOrDefault();
|
|
|
+ return (await _db.Ado.SqlQueryAsync<FlowBasicRow>(sql, new { Id = entryId, TenantId = tenantId })).FirstOrDefault();
|
|
|
}
|
|
|
|
|
|
// ── Tab1 订单信息 ──
|
|
|
- private async Task<FlowOrderInfoRow?> QueryOrderInfo(long entryId)
|
|
|
+ private async Task<FlowOrderInfoRow?> QueryOrderInfo(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -198,16 +200,16 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
sorder.emp_no AS EmpNo
|
|
|
FROM crm_seorderentry entry
|
|
|
LEFT JOIN crm_seorder sorder ON entry.seorder_id = sorder.Id
|
|
|
- WHERE entry.Id = @Id AND entry.IsDeleted = 0
|
|
|
+ WHERE entry.Id = @Id AND entry.IsDeleted = 0 AND entry.tenant_id = @TenantId
|
|
|
""";
|
|
|
- return (await _db.Ado.SqlQueryAsync<FlowOrderInfoRow>(sql, new { Id = entryId })).FirstOrDefault();
|
|
|
+ return (await _db.Ado.SqlQueryAsync<FlowOrderInfoRow>(sql, new { Id = entryId, TenantId = tenantId })).FirstOrDefault();
|
|
|
}
|
|
|
|
|
|
// ── Tab2 订单评审 ──
|
|
|
/// <remarks>
|
|
|
/// 查询最新评审记录(num=1 的首行物料)的预计交期评估信息。
|
|
|
/// </remarks>
|
|
|
- private async Task<FlowReviewRow?> QueryReview(long entryId)
|
|
|
+ private async Task<FlowReviewRow?> QueryReview(long entryId, long tenantId)
|
|
|
{
|
|
|
//测试提交
|
|
|
const string sql = """
|
|
|
@@ -221,20 +223,20 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
FROM b_examine_result a
|
|
|
LEFT JOIN b_bom_child_examine b ON a.id = b.examine_id
|
|
|
LEFT JOIN mes_moentry c ON a.sentry_id = c.soentry_id
|
|
|
- LEFT JOIN mes_morder d ON c.moentry_mono = d.morder_no WHERE a.create_time = (
|
|
|
+ LEFT JOIN mes_morder d ON c.moentry_mono = d.morder_no WHERE a.tenant_id = @TenantId AND a.create_time = (
|
|
|
SELECT MAX(create_time)
|
|
|
FROM b_examine_result
|
|
|
- WHERE sentry_id = @EntryId
|
|
|
+ WHERE sentry_id = @EntryId AND tenant_id = @TenantId
|
|
|
)
|
|
|
AND b.num = 1
|
|
|
AND a.sentry_id = @EntryId
|
|
|
LIMIT 1
|
|
|
""";
|
|
|
- return (await _db.Ado.SqlQueryAsync<FlowReviewRow>(sql, new { EntryId = entryId })).FirstOrDefault();
|
|
|
+ return (await _db.Ado.SqlQueryAsync<FlowReviewRow>(sql, new { EntryId = entryId, TenantId = tenantId })).FirstOrDefault();
|
|
|
}
|
|
|
|
|
|
// ── Tab2 变更记录(MySQL:按订单行关联变更单)──
|
|
|
- private async Task<List<FlowChangeRow>> QueryChanges(long entryId)
|
|
|
+ private async Task<List<FlowChangeRow>> QueryChanges(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -245,14 +247,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
a.change_content AS ChangeContent,
|
|
|
a.update_time AS UpdateTime
|
|
|
FROM crm_seorder_change a
|
|
|
- LEFT JOIN crm_seorderentry b ON a.bill_no = b.bill_no WHERE a.bill_no IS NOT NULL AND b.id = @Id
|
|
|
+ LEFT JOIN crm_seorderentry b ON a.bill_no = b.bill_no WHERE a.bill_no IS NOT NULL AND b.id = @Id AND b.tenant_id = @TenantId
|
|
|
ORDER BY a.id
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowChangeRow>(sql, new { Id = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowChangeRow>(sql, new { Id = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab3 计划排程1(MySQL:按分录 Id 关联工单排程 + 物料主档)──
|
|
|
- private async Task<List<FlowScheduleRow>> QuerySchedule(long entryId)
|
|
|
+ private async Task<List<FlowScheduleRow>> QuerySchedule(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -269,14 +271,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
FROM PeriodSequenceDet sch
|
|
|
LEFT JOIN ItemMaster im ON sch.ItemNum = im.ItemNum LEFT JOIN mes_morder mo ON mo.morder_no = sch.WorkOrds INNER JOIN mes_moentry me ON mo.Id = me.moentry_moid
|
|
|
LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id
|
|
|
- WHERE se.id = @EntryId AND mo.IsDeleted = 0
|
|
|
+ WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND mo.IsDeleted = 0
|
|
|
ORDER BY sch.PlanDate
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowScheduleRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowScheduleRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab4 物料需求(MySQL:最新评审结果 + BOM 子件明细,同需求明细核验口径)──
|
|
|
- private async Task<List<FlowMaterialRow>> QueryMaterials(long entryId)
|
|
|
+ private async Task<List<FlowMaterialRow>> QueryMaterials(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -316,19 +318,19 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
LEFT JOIN b_examine_result ber ON ber.Id = (
|
|
|
SELECT br.Id
|
|
|
FROM b_examine_result br
|
|
|
- WHERE br.sorderid = se.id AND br.sentry_id = sen.id
|
|
|
+ WHERE br.sorderid = se.id AND br.sentry_id = sen.id AND br.tenant_id = @TenantId
|
|
|
ORDER BY br.create_time DESC
|
|
|
LIMIT 1
|
|
|
)
|
|
|
INNER JOIN b_bom_child_examine bce ON ber.Id = bce.examine_id AND bce.is_use = 1
|
|
|
- WHERE sen.id = @EntryId
|
|
|
+ WHERE sen.id = @EntryId AND sen.tenant_id = @TenantId
|
|
|
ORDER BY bce.id ASC
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowMaterialRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowMaterialRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab5 采购订单(MySQL:经占用/工单关联到订单分录)──
|
|
|
- private async Task<List<FlowPoRow>> QueryPo(long entryId)
|
|
|
+ private async Task<List<FlowPoRow>> QueryPo(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -361,15 +363,15 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
LEFT JOIN srm_po_occupy occ ON pl.Id = occ.polist_id AND CAST(pm.factory_id AS CHAR(64)) = CAST(occ.factory_id AS CHAR(64)) LEFT JOIN mes_morder mo ON mo.id = occ.morder_id
|
|
|
LEFT JOIN mes_moentry me ON mo.id = me.moentry_moid
|
|
|
LEFT JOIN crm_seorderentry se ON me.soentry_id = se.id
|
|
|
- WHERE se.id = @EntryId AND pm.IsDeleted = 0
|
|
|
+ WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND pm.IsDeleted = 0
|
|
|
) AS t
|
|
|
ORDER BY t.PoBillNo
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowPoRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowPoRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab5 采购申请(MySQL)──
|
|
|
- private async Task<List<FlowPrRow>> QueryPr(long entryId)
|
|
|
+ private async Task<List<FlowPrRow>> QueryPr(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -390,14 +392,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
LEFT JOIN mes_morder mo ON mo.id = occ.morder_id
|
|
|
LEFT JOIN mes_moentry me ON mo.id = me.moentry_moid
|
|
|
LEFT JOIN crm_seorderentry se ON me.soentry_id = se.id
|
|
|
- WHERE se.id = @EntryId AND pm.state <> 0 AND pm.IsDeleted = 0
|
|
|
+ WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND pm.state <> 0 AND pm.IsDeleted = 0
|
|
|
ORDER BY pm.pr_billno
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowPrRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowPrRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab5 物料交货单(MySQL:srm_polist_ds)──
|
|
|
- private async Task<List<FlowDeliveryScheduleRow>> QueryDeliverySchedule(long entryId)
|
|
|
+ private async Task<List<FlowDeliveryScheduleRow>> QueryDeliverySchedule(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -431,15 +433,15 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
LEFT JOIN srm_po_occupy occ ON pl.Id = occ.polist_id AND CAST(pm.factory_id AS CHAR(64)) = CAST(occ.factory_id AS CHAR(64)) LEFT JOIN mes_morder mo ON mo.id = occ.morder_id
|
|
|
LEFT JOIN mes_moentry me ON mo.id = me.moentry_moid
|
|
|
LEFT JOIN crm_seorderentry se ON me.soentry_id = se.id
|
|
|
- LEFT JOIN srm_polist_ds ds ON pl.po_billno = ds.ponumber AND pl.ItemNum = ds.itemnum LEFT JOIN ItemMaster im ON ds.itemnum = im.ItemNum WHERE se.id = @EntryId AND pm.IsDeleted = 0
|
|
|
+ LEFT JOIN srm_polist_ds ds ON pl.po_billno = ds.ponumber AND pl.ItemNum = ds.itemnum LEFT JOIN ItemMaster im ON ds.itemnum = im.ItemNum WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND pm.IsDeleted = 0
|
|
|
) AS t
|
|
|
ORDER BY t.DsNum
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowDeliveryScheduleRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowDeliveryScheduleRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab6 生产备料(MySQL:备料明细经工单关联分录)──
|
|
|
- private async Task<List<FlowNbrRow>> QueryNbr(long entryId)
|
|
|
+ private async Task<List<FlowNbrRow>> QueryNbr(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -459,14 +461,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
nd.WorkOrd AS WorkOrd
|
|
|
FROM NbrDetail nd
|
|
|
LEFT JOIN NbrMaster nm ON nd.nbr = nm.nbr LEFT JOIN mes_morder mo ON mo.morder_no = nm.WorkOrd INNER JOIN mes_moentry me ON mo.Id = me.moentry_moid
|
|
|
- LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id AND mo.product_code = se.item_number LEFT JOIN ItemMaster im ON nd.ItemNum = im.ItemNum WHERE se.id = @EntryId AND mo.IsDeleted = 0 AND nm.Type = 'SM'
|
|
|
+ LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id AND mo.product_code = se.item_number LEFT JOIN ItemMaster im ON nd.ItemNum = im.ItemNum WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND mo.IsDeleted = 0 AND nm.Type = 'SM'
|
|
|
ORDER BY nm.Nbr
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowNbrRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowNbrRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab7 生产报工(OpTransEmployee + 销售订单行)──
|
|
|
- private async Task<List<FlowProdReportRow>> QueryProdReport(long entryId)
|
|
|
+ private async Task<List<FlowProdReportRow>> QueryProdReport(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -485,14 +487,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
FROM OpTransEmployee ote
|
|
|
LEFT JOIN mes_morder mo ON mo.morder_no = ote.WorkOrd INNER JOIN mes_moentry me ON mo.Id = me.moentry_moid
|
|
|
LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id
|
|
|
- LEFT JOIN ItemMaster im ON ote.ItemNum = im.ItemNum WHERE se.id = @EntryId AND mo.IsDeleted = 0
|
|
|
+ LEFT JOIN ItemMaster im ON ote.ItemNum = im.ItemNum WHERE se.id = @EntryId AND se.tenant_id = @TenantId AND mo.IsDeleted = 0
|
|
|
ORDER BY ote.ProdDate DESC
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowProdReportRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowProdReportRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab7 IQC信息(请购/采购/检验链路)──
|
|
|
- private async Task<List<FlowIqcRow>> QueryIqc(long entryId)
|
|
|
+ private async Task<List<FlowIqcRow>> QueryIqc(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -526,13 +528,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
) iqcjy ON pod.PurOrd = iqcjy.po_bill AND CAST(pod.Line AS CHAR(32)) = CAST(iqcjy.po_billline AS CHAR(32)) WHERE jq.flag = '1'
|
|
|
AND pr.sentry_id IS NOT NULL
|
|
|
AND pr.sentry_id = @EntryId
|
|
|
+ AND pr.tenant_id = @TenantId
|
|
|
ORDER BY iqcjy.FAPPLYTIME DESC
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowIqcRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowIqcRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab8 FQC信息 ──
|
|
|
- private async Task<List<FlowFqcRow>> QueryFqc(long entryId)
|
|
|
+ private async Task<List<FlowFqcRow>> QueryFqc(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -547,14 +550,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
CAST(a.FRINSQTY AS DECIMAL(18,2)) AS FRinsQty,
|
|
|
a.FINSPEENDDATE AS FInspeEndDate
|
|
|
FROM qms_qcpp_inspbill a
|
|
|
- LEFT JOIN WorkOrdMaster b ON a.sczld = b.Batch LEFT JOIN mes_moentry c ON b.WorkOrd = c.moentry_mono WHERE c.soentry_id = @EntryId
|
|
|
+ LEFT JOIN WorkOrdMaster b ON a.sczld = b.Batch LEFT JOIN mes_moentry c ON b.WorkOrd = c.moentry_mono WHERE c.soentry_id = @EntryId AND c.TenantId = @TenantId
|
|
|
ORDER BY a.FBILLNO
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowFqcRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowFqcRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab8 生产入库 ──
|
|
|
- private async Task<List<FlowReceiptRow>> QueryReceipt(long entryId)
|
|
|
+ private async Task<List<FlowReceiptRow>> QueryReceipt(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -587,14 +590,14 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
GROUP BY WorkOrds
|
|
|
) compp ON c.WorkOrd = compp.WorkOrds LEFT JOIN mes_morder mo ON mo.morder_no = c.WorkOrd AND mo.IsDeleted = 0
|
|
|
LEFT JOIN mes_moentry motry ON motry.moentry_moid = mo.Id AND motry.IsDeleted = 0
|
|
|
- WHERE motry.soentry_id = @EntryId
|
|
|
+ WHERE motry.soentry_id = @EntryId AND motry.TenantId = @TenantId
|
|
|
ORDER BY mo.morder_no
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowReceiptRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowReceiptRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
|
|
|
// ── Tab8 成品发运(与订单行 OrdNbr + 行物料一致)──
|
|
|
- private async Task<List<FlowShipmentRow>> QueryShipment(long entryId)
|
|
|
+ private async Task<List<FlowShipmentRow>> QueryShipment(long entryId, long tenantId)
|
|
|
{
|
|
|
const string sql = """
|
|
|
SELECT
|
|
|
@@ -610,8 +613,9 @@ public class OrderDeliveryService : IDynamicApiController, ITransient
|
|
|
LEFT JOIN LocationMaster lm ON ad.location = lm.Location INNER JOIN crm_seorderentry se ON se.id = @EntryId
|
|
|
AND ad.ContainerItem = se.item_number INNER JOIN crm_seorder so ON so.Id = se.seorder_id AND ad.OrdNbr = so.bill_no WHERE am.shtype = 'SH'
|
|
|
AND am.typed <> 'S'
|
|
|
+ AND am.tenant_id = @TenantId
|
|
|
ORDER BY ad.Id
|
|
|
""";
|
|
|
- return await _db.Ado.SqlQueryAsync<FlowShipmentRow>(sql, new { EntryId = entryId });
|
|
|
+ return await _db.Ado.SqlQueryAsync<FlowShipmentRow>(sql, new { EntryId = entryId, TenantId = tenantId });
|
|
|
}
|
|
|
}
|