|
|
@@ -52,6 +52,10 @@ public class FqcInspectionService : IDynamicApiController, ITransient
|
|
|
new SugarParameter("@id", inspBillId), new SugarParameter("@t", tenantId))).FirstOrDefault();
|
|
|
if (head == null) return null;
|
|
|
|
|
|
+ // 检验负责人门:仅本人(jyfzr==当前账号)可进入录入检验(查看走 FQC检验结果列表的只读详情,不受此限)
|
|
|
+ if (!string.Equals((head.OwnerId ?? "").Trim(), _userManager.UserId.ToString(), StringComparison.Ordinal))
|
|
|
+ throw Oops.Oh("检验负责人与当前账号不一致,无法进入录入检验");
|
|
|
+
|
|
|
// 检验负责人 jyfzr 双语义:认领/调配写 SysUser id(数字,可能跨租户),检验流程提交写姓名字符串。
|
|
|
// 数字 → ClearFilter 反解姓名(解不到回落原值);非数字 → 本就是姓名,直接展示。
|
|
|
if (!string.IsNullOrWhiteSpace(head.OwnerId))
|
|
|
@@ -107,6 +111,15 @@ public class FqcInspectionService : IDynamicApiController, ITransient
|
|
|
new SugarParameter("@id", input.InspBillId), new SugarParameter("@t", tenantId));
|
|
|
if (owns == 0) throw Oops.Oh("检验单不存在或不属于当前租户");
|
|
|
|
|
|
+ // 检验负责人门:仅本人(jyfzr==当前账号)可保存录入(防绕过 UI 直接调接口)
|
|
|
+ var saveOwner = await _db.Ado.SqlQuerySingleAsync<string>(
|
|
|
+ @"SELECT q.jyfzr FROM qms_qcpp_inspbill i
|
|
|
+ JOIN qms_fqcbj q ON q.FBILLNO=i.lydjbh AND q.id=i.hid AND q.tenant_id=i.tenant_id
|
|
|
+ WHERE i.id=@id AND i.tenant_id=@t LIMIT 1",
|
|
|
+ new SugarParameter("@id", input.InspBillId), new SugarParameter("@t", tenantId));
|
|
|
+ if (!string.Equals((saveOwner ?? "").Trim(), _userManager.UserId.ToString(), StringComparison.Ordinal))
|
|
|
+ throw Oops.Oh("检验负责人与当前账号不一致,无法录入");
|
|
|
+
|
|
|
var tran = await _db.Ado.UseTranAsync(async () =>
|
|
|
{
|
|
|
foreach (var ln in input.Lines)
|