CRZ
2 天以前 89fa5f03903ed6161474dcbe8528503f69f804d1
MES.Service/service/BasicData/MesStaffManager.cs
@@ -71,9 +71,12 @@
    private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
        MesStaff entity)
    {
        try
        {
        var exists = db.Queryable<SysUser>().Any(u => u.Fcode == sysUser.Fcode);
        if (exists)
        {
                // 用户已存在,执行更新操作
            var updateUser = db.Updateable<SysUser>()   
                .SetColumns(s => s.Fname == sysUser.Fname)
                .SetColumns(s => s.Departmentid == sysUser.Departmentid) // 更新部门信息
@@ -82,23 +85,54 @@
                .ExecuteCommand();
            if (updateUser > 0)
            {
                var updateStaff = db.Updateable(entity).ExecuteCommand();
                    // 检查 MesStaff 是否已存在
                    var staffExists = db.Queryable<MesStaff>().Any(s => s.StaffNo == entity.StaffNo);
                    if (staffExists)
                    {
                        // 员工已存在,执行更新
                        var updateStaff = db.Updateable(entity)
                            .Where(s => s.StaffNo == entity.StaffNo)
                            .ExecuteCommand();
                if (updateStaff > 0)
                    return true;
            }
                        throw new NotImplementedException(
                            $"MES_STAFF表更新失败:员工 {entity.StaffNo}({entity.StaffName})");
        }
        else
        {
                        // 员工不存在,执行插入
                        var insertStaff = db.Insertable(entity).ExecuteCommand();
                        if (insertStaff > 0)
                            return true;
                        throw new NotImplementedException(
                            $"MES_STAFF表插入失败:员工 {entity.StaffNo}({entity.StaffName})");
                    }
                }
                throw new NotImplementedException(
                    $"SYS_USER表更新失败:用户 {sysUser.Fcode}({sysUser.Fname})");
            }
            else
            {
                // 用户不存在,执行插入操作
            var insertUser = db.Insertable(sysUser).ExecuteCommand();
            if (insertUser > 0)
            {
                var insertStaff = db.Insertable(entity).ExecuteCommand();
                if (insertStaff > 0)
                    return true;
                    throw new NotImplementedException(
                        $"MES_STAFF表插入失败:员工 {entity.StaffNo}({entity.StaffName})");
                }
                throw new NotImplementedException(
                    $"SYS_USER表插入失败:用户 {sysUser.Fcode}({sysUser.Fname})");
            }
        }
        return false;
        catch (Exception ex)
        {
            // 捕获并抛出详细的异常信息
            throw new NotImplementedException(
                $"员工 {entity.StaffNo}({entity.StaffName}) 同步失败:{ex.Message}", ex);
        }
    }
    // 删除员工的方法
@@ -128,7 +162,8 @@
            DepartmentName = staff.FPostDept,
            PositionName = staff.FPost,
            PhoneNumber = staff.FMobile,
            Remark = staff.FDescription,
            // 将 "None" 字符串转换为 null,避免数据库约束问题
            Remark = staff.FDescription == "None" ? null : staff.FDescription,
            FforbidStatus = staff.FForbidStatus
        };
@@ -297,8 +332,21 @@
    {
        foreach (var sysUser in userList)
        {
            try
            {
            var entity = staffList.First(s => s.StaffNo == sysUser.Fcode);
            if (!InsertOrUpdateStaff(db, sysUser, entity)) return false;
                if (!InsertOrUpdateStaff(db, sysUser, entity))
                {
                    throw new NotImplementedException(
                        $"同步失败:员工编号 {entity.StaffNo}({entity.StaffName}) 更新或插入操作失败");
                }
            }
            catch (Exception ex)
            {
                // 抛出详细的异常信息,包含员工编号和具体错误
                throw new NotImplementedException(
                    $"同步失败:员工编号 {sysUser.Fcode}({sysUser.Fname}) 处理异常 - {ex.Message}", ex);
            }
        }
        return true;