啊鑫
2025-01-22 eb744ecfecc0f1b6d9c0999c65bc740d93e30eda
StandardPda/MES.Service/service/BasicData/MesSupplierManager.cs
@@ -65,19 +65,40 @@
    private bool DeleteSupplier(List<MesSupplier> supplierId)
    {
        var ids = supplierId.Select(it => it.Id).ToArray();
        // 提取所有需要的 MesId 组合
        var ids = supplierId.Select(customer => customer.Id.ToString())
            .ToList();
        var executeCommand = Db.Deleteable<MesSupplier>()
            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
        // 使用这些 MesId 去查询 MesLinkU9 表,找到对应的 U9Id
        var u9Ids = Db.Queryable<MesLinkU9>()
            .Where(u =>
                ids.Contains(u.MesId) && u.TableType == "MES_SUPPLIER")
            .Select(u => u.U9Id)
            .Distinct() // 应用 Distinct 去重
            .ToList();
        if (executeCommand > 0) return true;
        // 根据 U9Id 找到所有对应的 MesId,进行删除
        // 注意:这里假设您确实想要删除这些记录。如果不确定,请先查询以验证结果。
        var idsToDelete = Db.Queryable<MesLinkU9>()
            .Where(u => u9Ids.Contains(u.U9Id) && u.TableType == "MES_SUPPLIER")
            .Select(u => u.MesId)
            .Distinct() // 应用 Distinct 去重
            .ToList();
        throw new NotImplementedException("删除失败");
        //以上方法可以考虑优化,将U9id找个新建字段存在MES_CUSTOMER中,就可以少一步查询了。
        var deleteByIds = Db.Deleteable<MesSupplier>().In(idsToDelete)
            .ExecuteCommand();
        // if (deleteByIds > 0)
        //     return true;
        return true;
        //throw new NotImplementedException("删除失败");
    }
    private List<MesSupplier> GetMesSupplier(ErpSupplier supplier)
    {
        List<MesSupplier> list = new List<MesSupplier>();
        List<MesSupplier> list = new();
        foreach (var se in supplier.FUseOrgId)
        {
            var exists = Db.Queryable<MesLinkU9>().Any(u =>
@@ -176,18 +197,9 @@
    ///新代码
    private bool InsertOrUpdate(SqlSugarScope db, List<MesSupplier> entity)
    {
        var ids = entity.Select(it => it.Id).ToArray();
        DeleteSupplier(entity);
        var executeCommand = db.Deleteable<MesSupplier>()
            .Where(s => ids.Contains(s.Id))
            .ExecuteCommand();
        if (executeCommand > 0)
        {
            var insert = db.Insertable(entity).ExecuteCommand();
            return insert > 0;
        }
        throw new Exception("操作失败");
    }
}