using Admin.NET.Plugin.AiDOP.Entity.S0.Manufacturing;
using Admin.NET.Plugin.AiDOP.Entity.S0.Warehouse;
using Admin.NET.Plugin.AiDOP.Infrastructure;
namespace Admin.NET.Plugin.AiDOP.Service.S8;
///
/// S8 主数据下拉:优先复用 S0 已落库主数据语义(部门等),无则返回空列表,不把「下拉查询」误建成独立业务表。
///
/// S8-P0-3-MASTERDATA-TRUSTED-SCOPE-1 作用域合同:三个入口的工厂边界
/// **一律由 从认证身份解析**,
/// 客户端传入的 factoryRefId 只被视为筛选意图,**当前实现直接忽略、不承担授权作用**。
///
/// 修复前(实测可被普通租户账号利用):GetEmployeesAsync 是
/// ClearFilter() + FactoryRefId == 客户端传入值,
/// 于是 GET /master-data/employees?factoryRefId=1000 会返回 500 条**其它租户**员工的
/// 工号与真实姓名。
///
public class S8MasterDataAdapter : ITransient
{
private readonly SqlSugarRepository _deptRep;
private readonly SqlSugarRepository _empRep;
private readonly SqlSugarRepository _lineRep;
private readonly SqlSugarRepository _sysUserRep;
public S8MasterDataAdapter(
SqlSugarRepository deptRep,
SqlSugarRepository empRep,
SqlSugarRepository lineRep,
SqlSugarRepository sysUserRep)
{
_deptRep = deptRep;
_empRep = empRep;
_lineRep = lineRep;
_sysUserRep = sysUserRep;
}
public async Task