sjz
2025-09-12 0c1a03e880bbf795b771a9c8ee4b7b271c262b58
MES.Service/service/BasicData/SysDepartmentManager.cs
@@ -12,8 +12,7 @@
    // Save 方法用于保存单个部门记录,根据类型执行不同的操作
    public bool Save(ErpDepartment department)
    {
        var entity =
            GetSysDepartment(department); // 将 ErpDepartment 转换为 SysDepartment
        var entity = GetSysDepartment(department); // 将 ErpDepartment 转换为 SysDepartment
        return UseTransaction(db =>
        {
@@ -37,8 +36,7 @@
                        return 1;
                    break;
                default:
                    throw new ArgumentNullException(
                        $"type没有{department.Type}这个类型的参数");
                    throw new ArgumentNullException($"type没有{department.Type}这个类型的参数");
            }
            throw new NotImplementedException("操作失败");
@@ -46,16 +44,14 @@
    }
    // 更新部门状态的方法
    private bool UpdateDepartmentStatus(SqlSugarScope db, decimal departmentId,
        string status)
    private bool UpdateDepartmentStatus(SqlSugarScope db, decimal departmentId,string status)
    {
        var result = db.Updateable<SysDepartment>()
            .SetColumns(s => s.Depextr4 == status)
            .Where(s => s.Id == departmentId).ExecuteCommand();
        var result = db.Updateable<SysDepartment>().SetColumns(s => s.Depextr4 == status).Where(s => s.Id == departmentId).ExecuteCommand();
        if (result > 0)
        {
            return true;
        }
        throw new NotImplementedException(status == "A" ? "启用失败" : "禁用失败");
    }
@@ -72,20 +68,18 @@
    // 删除部门的方法
    private bool DeleteDepartment(SqlSugarScope db, decimal departmentId)
    {
        var deleteById = db.Deleteable<SysDepartment>()
            .Where(s => s.Id == departmentId).ExecuteCommand();
        var deleteById = db.Deleteable<SysDepartment>().Where(s => s.Id == departmentId).ExecuteCommand();
        if (deleteById > 0)
        {
            return true;
        }
        throw new NotImplementedException("删除失败");
    }
    // 插入或更新部门的方法
    private bool InsertOrUpdateDepartment(SqlSugarScope db,
        SysDepartment entity)
    private bool InsertOrUpdateDepartment(SqlSugarScope db,SysDepartment entity)
    {
        db.Deleteable<SysDepartment>()
            .Where(s => s.Id == entity.Id).ExecuteCommand();
        db.Deleteable<SysDepartment>().Where(s => s.Id == entity.Id).ExecuteCommand();
        var insert = db.Insertable(entity).ExecuteCommand();
        return insert > 0;
@@ -121,43 +115,36 @@
        var list = new List<SysDepartment>();
        departments.ForEach(s =>
        {
            var entity =
                GetSysDepartment(s); // 将 ErpDepartment 转换为 SysDepartment
            var entity = GetSysDepartment(s); // 将 ErpDepartment 转换为 SysDepartment
            entity.Type = s.Type;
            list.Add(entity);
        });
        var groupBy = list.GroupBy(s => s.Type)
            .ToDictionary(g => g.Key, g => g.ToList());
        var groupBy = list.GroupBy(s => s.Type).ToDictionary(g => g.Key, g => g.ToList());
        return UseTransaction(db =>
        {
            foreach (var departmentGroup in groupBy)
                switch (departmentGroup.Key)
                {
                    case "0":
                        if (!UpdateDepartmentStatusBatch(db,
                                departmentGroup.Value, "A")) // 批量启用部门
                        if (!UpdateDepartmentStatusBatch(db,departmentGroup.Value, "A")) // 批量启用部门
                            throw new NotImplementedException("启用失败");
                        break;
                    case "1":
                        if (!UpdateDepartmentStatusBatch(db,
                                departmentGroup.Value, "B")) // 批量禁用部门
                        if (!UpdateDepartmentStatusBatch(db,departmentGroup.Value, "B")) // 批量禁用部门
                            throw new NotImplementedException("禁用失败");
                        break;
                    case "3":
                        if (!DeleteDepartmentBatch(db,
                                departmentGroup.Value)) // 批量删除部门
                        if (!DeleteDepartmentBatch(db,departmentGroup.Value)) // 批量删除部门
                            throw new NotImplementedException("删除失败");
                        break;
                    case "2":
                    case "4":
                        if (!InsertOrUpdateDepartmentBatch(db,
                                departmentGroup.Value)) // 批量插入或更新部门
                        if (!InsertOrUpdateDepartmentBatch(db,departmentGroup.Value)) // 批量插入或更新部门
                            throw new NotImplementedException("同步失败");
                        break;
                    default:
                        throw new ArgumentNullException(
                            $"type没有{departmentGroup.Key}这个类型的参数");
                        throw new ArgumentNullException($"type没有{departmentGroup.Key}这个类型的参数");
                }
            return 1;
@@ -165,17 +152,15 @@
    }
    // 批量更新部门状态的方法
    private bool UpdateDepartmentStatusBatch(SqlSugarScope db,
        List<SysDepartment> departmentList, string status)
    private bool UpdateDepartmentStatusBatch(SqlSugarScope db,List<SysDepartment> departmentList, string status)
    {
        var ids = departmentList.Select(it => it.Id).ToArray();
        var result = db.Updateable<SysDepartment>()
            .SetColumns(s => s.Depextr4 == status)
            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
        var result = db.Updateable<SysDepartment>().SetColumns(s => s.Depextr4 == status).Where(s => ids.Contains(s.Id)).ExecuteCommand();
        if (result > 0)
        {
            return true;
        }
        throw new NotImplementedException(status == "A" ? "启用失败" : "禁用失败");
    }
@@ -191,25 +176,21 @@
    }
    // 批量删除部门的方法
    private bool DeleteDepartmentBatch(SqlSugarScope db,
        List<SysDepartment> departmentList)
    private bool DeleteDepartmentBatch(SqlSugarScope db, List<SysDepartment> departmentList)
    {
        var ids = departmentList.Select(it => it.Id).ToArray();
        var deleteByIds =
            db.Deleteable<SysDepartment>()
                .Where(s => ids.Contains(s.Id)).ExecuteCommand();
        var deleteByIds = db.Deleteable<SysDepartment>().Where(s => ids.Contains(s.Id)).ExecuteCommand();
        if (deleteByIds > 0)
        {
            return true;
        }
        throw new NotImplementedException("删除失败");
    }
    // 批量插入或更新部门的方法
    private bool InsertOrUpdateDepartmentBatch(SqlSugarScope db,
        List<SysDepartment> departmentList)
    private bool InsertOrUpdateDepartmentBatch(SqlSugarScope db,List<SysDepartment> departmentList)
    {
        return departmentList.All(
            entity => InsertOrUpdateDepartment(db, entity));
        return departmentList.All(entity => InsertOrUpdateDepartment(db, entity));
    }
}