111
啊鑫
2025-02-12 7456b57c9d11052643a30ea1e559d7cb09c11e8c
111
已修改4个文件
已删除1个文件
561 ■■■■ 文件已修改
StandardPda/MES.Service/Dto/webApi/ErpStaff.cs 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesStaff.cs 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesStaffPositionLink.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/BasicData/MesRohInManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/BasicData/MesStaffManager.cs 320 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/webApi/ErpStaff.cs
@@ -2,67 +2,16 @@
public class ErpStaff
{
    public string Id { get; set; }
    public string? Type { get; set; }
    public string? FStaffNumber { get; set; }
    public string? FName { get; set; }
    //删除:放入单据头体--池南骏 2025-01-02
    //public string? FPostDept { get; set; }
    /// <summary>
    ///     æŽ¥å£å­—段调整:将FPost字段重命名为FPostId。
    /// </summary>
    /// <remarks>
    ///     ä¿®æ”¹äººï¼šæ± å—骏
    ///     ä¿®æ”¹æ—¥æœŸï¼š2024-12-25
    ///     ä¿®æ”¹è¯´æ˜Žï¼š
    ///     - åŽŸä»£ç ï¼š`public string? FPost { get; set; }`
    ///     - ä¿®æ”¹åŽï¼š`public string? FPostId { get; set; }`
    ///     -2025-01-02 :二次修改删除。
    /// </remarks>
    /// //删除:放入单据头体--池南骏 2025-01-02
    //public string? FPostId { get; set; }
    public string? FMobile { get; set; }
    /// <summary>
    ///     æŽ¥å£å­—段调整:标准版接口新增 ERP单据状态 å­—段。
    /// </summary>
    /// <remarks>
    ///     ä¿®æ”¹äººï¼š
    ///     <池南骏>
    ///         ä¿®æ”¹æ—¥æœŸï¼š<2024-12-27>
    ///         ä¿®æ”¹è¯´æ˜Žï¼š
    ///         - åŽŸä»£ç ï¼šç©º
    ///         - ä¿®æ”¹åŽï¼š
    ///         public string? FDocumentStatus { get; set; }
    /// </remarks>
    public string? FDocumentStatus { get; set; }
    //删除:放入单据头体--池南骏 2025-01-02
    //public string? FStaffStartDate { get; set; }
    public string? FDescription { get; set; }
    public string? FForbidStatus { get; set; }
    public string? FCreateOrgId { get; set; }
    public string? FUseOrgId { get; set; }
    //新增一个PostIdItem类型的list来获取erp的岗位id
    public List<ErpStaffDetail>? ErpStaffDetails { get; set; }
}
/// <summary>
///     æŽ¥å£å­—段调整:岗位、部门、任岗开始日期 ä¿¡æ¯ç”¨ä¸€ä¸ªPostIdItem类型来存储。
/// </summary>
/// <remarks>
///     ä¿®æ”¹äººï¼šæ± å—骏
///     ä¿®æ”¹æ—¥æœŸï¼š2025-01-02
///     ä¿®æ”¹è¯´æ˜Žï¼š
/// </remarks>
public class ErpStaffDetail
{
    public string? fPostId { get; set; }
    public string? fPostDeptid { get; set; }
    public string? fStaffStartDate { get; set; }
    public string? Id{ get; set; }
    public string? Type{ get; set; }
    public string? FStaffNumber{ get; set; }
    public string? FName{ get; set; }
    public string? FPostId{ get; set; }
    public string? KeyPosts{ get; set; }
    public string? FStaffStartDate{ get; set; }
    public string? SeparationTime{ get; set; }
    public string? FforbidStatus{ get; set; }
    public string? DepartmentName{ get; set; }
    public string? FUseOrgId{ get; set; }
    public string? Remark{ get; set; }
}
StandardPda/MES.Service/Modes/MesStaff.cs
@@ -9,161 +9,158 @@
public class MesStaff
{
    /// <summary>
    ///     ID
    /// </summary>
    /// ID
    ///</summary>
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public decimal Id { get; set; }
    /// <summary>
    ///     æŽ¥å£å­—段调整:标准版接口新增 ERP单据状态 å­—段。
    /// </summary>
    /// <remarks>
    ///     ä¿®æ”¹äººï¼š
    ///     <池南骏>
    ///         ä¿®æ”¹æ—¥æœŸï¼š<2024-12-27>
    ///         ä¿®æ”¹è¯´æ˜Žï¼š
    ///         - åŽŸä»£ç ï¼šç©º
    ///         - ä¿®æ”¹åŽï¼š
    ///         [SugarColumn(ColumnName = "FDOCUMENTSTATUS")]
    ///         public string? FDOCUMENTSTATUS { get; set; }
    /// </remarks>
    /// <summary>
    ///     ERP单据状态
    /// </summary>
    [SugarColumn(ColumnName = "FDOCUMENTSTATUS")]
    public string? FDOCUMENTSTATUS { get; set; }
    /// <summary>
    ///     å‘˜å·¥ç¼–码
    /// </summary>
    /// å‘˜å·¥ç¼–码
    ///</summary>
    [SugarColumn(ColumnName = "STAFF_NO")]
    public string? StaffNo { get; set; }
    /// <summary>
    ///     å‘˜å·¥å§“名
    /// </summary>
    /// å‘˜å·¥å§“名
    ///</summary>
    [SugarColumn(ColumnName = "STAFF_NAME")]
    public string? StaffName { get; set; }
    /// <summary>
    ///     éƒ¨é—¨ç¼–码
    /// </summary>
    /// éƒ¨é—¨ç¼–码
    ///</summary>
    [SugarColumn(ColumnName = "DEPARTMENT_NO")]
    public string? DepartmentNo { get; set; }
    /// <summary>
    ///     éƒ¨é—¨åç§°
    /// </summary>
    /// éƒ¨é—¨åç§°
    ///</summary>
    [SugarColumn(ColumnName = "DEPARTMENT_NAME")]
    public string? DepartmentName { get; set; }
    /// <summary>
    ///     å²—位编码
    /// </summary>
    /// å²—位编码
    ///</summary>
    [SugarColumn(ColumnName = "POSITION_CODE")]
    public string? PositionCode { get; set; }
    /// <summary>
    ///     å²—位名称
    /// </summary>
    /// å²—位名称
    ///</summary>
    [SugarColumn(ColumnName = "POSITION_NAME")]
    public string? PositionName { get; set; }
    /// <summary>
    ///     æ‰‹æœºå·
    /// </summary>
    /// æ‰‹æœºå·
    ///</summary>
    [SugarColumn(ColumnName = "PHONE_NUMBER")]
    public string? PhoneNumber { get; set; }
    /// <summary>
    ///     ä»»å²—开始日期
    /// </summary>
    /// ä»»å²—开始日期
    ///</summary>
    [SugarColumn(ColumnName = "START_DATE")]
    public DateTime? StartDate { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    /// å¤‡æ³¨  äººå‘˜ç±»åž‹ï¼Œ1:正式工;2:派遣工
    ///</summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    ///     åˆ›å»ºç»„织
    /// </summary>
    /// åˆ›å»ºç»„织
    ///</summary>
    [SugarColumn(ColumnName = "CREATE_ORG")]
    public decimal? CreateOrg { get; set; }
    /// <summary>
    ///     ä½¿ç”¨ç»„织
    /// </summary>
    /// ä½¿ç”¨ç»„织
    ///</summary>
    [SugarColumn(ColumnName = "USE_ORG")]
    public decimal? UseOrg { get; set; }
    public string? UseOrg { get; set; }
    /// <summary>
    ///     è‡ªå®šä¹‰å­—段3
    /// </summary>
    /// è‡ªå®šä¹‰å­—段3
    ///</summary>
    [SugarColumn(ColumnName = "REMARK3")]
    public string? Remark3 { get; set; }
    /// <summary>
    ///     è‡ªå®šä¹‰å­—段4
    /// </summary>
    /// è‡ªå®šä¹‰å­—段4
    ///</summary>
    [SugarColumn(ColumnName = "REMARK4")]
    public string? Remark4 { get; set; }
    /// <summary>
    ///     è‡ªå®šä¹‰å­—段5
    /// </summary>
    /// è‡ªå®šä¹‰å­—段5
    ///</summary>
    [SugarColumn(ColumnName = "REMARK5")]
    public string? Remark5 { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    /// åˆ›å»ºäºº
    ///</summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    /// åˆ›å»ºæ—¶é—´
    ///</summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     æ›´æ–°äºº
    /// </summary>
    /// æ›´æ–°äºº
    ///</summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    ///     æ›´æ–°æ—¶é—´
    /// </summary>
    /// æ›´æ–°æ—¶é—´
    ///</summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    /// å¤‡æ³¨
    ///</summary>
    [SugarColumn(ColumnName = "MEMO")]
    public string? Memo { get; set; }
    /// <summary>
    ///     ç”Ÿäº§çº¿
    /// </summary>
    /// ç”Ÿäº§çº¿
    ///</summary>
    [SugarColumn(ColumnName = "LINE_NO")]
    public string? LineNo { get; set; }
    /// <summary>
    ///     ç”Ÿäº§å‘˜å·¥æ ‡è¯†
    /// </summary>
    /// ç”Ÿäº§å‘˜å·¥æ ‡è¯†
    ///</summary>
    [SugarColumn(ColumnName = "WORK_MK")]
    public decimal? WorkMk { get; set; }
    /// <summary>
    ///     æ˜¯å¦ç¦ç”¨
    /// </summary>
    /// æ˜¯å¦ç¦ç”¨  å·¥ä½œçŠ¶æ€ï¼Œ1:在职;2:离职
    ///</summary>
    [SugarColumn(ColumnName = "FFORBID_STATUS")]
    public string? FforbidStatus { get; set; }
    [SugarColumn(IsIgnore = true)] public string? Type { get; set; }
    /// <summary>
    /// ä¸šåŠ¡å‘˜ç±»åž‹
    ///</summary>
    [SugarColumn(ColumnName = "OPERATOR_TYPE")]
    public string? OperatorType { get; set; }
    /// <summary>
    /// æ˜¯å¦æ˜¯å…³é”®å²—位 0:否,1:是
    ///</summary>
    [SugarColumn(ColumnName = "KEY_POSTS")]
    public string? KeyPosts { get; set; }
    /// <summary>
    /// ç¦»èŒæ—¶é—´
    ///</summary>
    [SugarColumn(ColumnName = "SEPARATION_TIME")]
    public DateTime? SeparationTime { get; set; }
}
StandardPda/MES.Service/Modes/MesStaffPositionLink.cs
ÎļþÒÑɾ³ý
StandardPda/MES.Service/service/BasicData/MesRohInManager.cs
@@ -160,6 +160,7 @@
                ErpId = Convert.ToDecimal(s.Eid),
                BillNo = s.FBillNo,
                OrderLineId = s.FSeq,
                BusinessFreeze = s.FStatus,
                PurchaseOrderLineNumber = s.FSeq,
                SalesOrderId = s.FDemandBillEntrySeq,
                ItemId = s.FMaterialId,
StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
@@ -12,25 +12,14 @@
    {
        var entity = GetMesStaff(unit); // å°† ErpStaff è½¬æ¢ä¸º MesStaff
        var sysUser = GetUser(unit); // èŽ·å– SysUser å®žä¾‹
        var mesStaffPositionLink =
            GetMesStaffPositionLink(unit); // èŽ·å– MesStaffPositionLink å®žä¾‹
        return UseTransaction(db =>
        {
            switch (unit.Type)
            {
                case "0":
                    if (UpdateStaffStatus(db, entity.Id, "A")) // å¯ç”¨å‘˜å·¥
                        return 1;
                    break;
                case "1":
                    if (UpdateStaffStatus(db, entity.Id, "B")) // ç¦ç”¨å‘˜å·¥
                        return 1;
                    break;
                case "2":
                case "4":
                    if (InsertOrUpdateStaff(db, sysUser, entity,
                            mesStaffPositionLink)) // æ’入或更新员工
                    if (InsertOrUpdateStaff(db, sysUser, entity)) // æ’入或更新员工
                        return 1;
                    break;
                case "3":
@@ -60,52 +49,6 @@
        throw new NotImplementedException(status == "A" ? "启用失败" : "禁用失败");
    }
    /// <summary>
    /// "插入或更新员工的方法"调整:修改为先删除再插入,同时用id和PositionCode作为判断依据
    /// </summary>
    /// <remarks>
    /// ä¿®æ”¹äººï¼šæ± å—骏
    /// ä¿®æ”¹æ—¥æœŸï¼š2024-12-30
    /// ä¿®æ”¹è¯´æ˜Žï¼š`
    /// </remarks>
    //// - åŽŸä»£ç ï¼š
    // æ’入或更新员工的方法
    //private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
    //    MesStaff entity)
    //{
    //    var exists = db.Queryable<SysUser>().Any(u => u.Sid == sysUser.Sid);
    //    if (exists)
    //    {
    //        var updateUser = db.Updateable<SysUser>()
    //            .SetColumns(s => s.Fcode == sysUser.Fcode)
    //            .SetColumns(s => s.Fname == sysUser.Fname)
    //            .Where(s => s.Sid == sysUser.Sid)
    //            .ExecuteCommand();
    //        if (updateUser > 0)
    //        {
    //            var updateStaff = db.Updateable(entity).ExecuteCommand();
    //            if (updateStaff > 0)
    //                return true;
    //        }
    //    }
    //    else
    //    {
    //        var insertUser = db.Insertable(sysUser).ExecuteCommand();
    //        if (insertUser > 0)
    //        {
    //            var insertStaff = db.Insertable(entity).ExecuteCommand();
    //            if (insertStaff > 0)
    //                return true;
    //        }
    //    }
    //    return false;
    //}
    // æ’入或更新员工的方法
    /// æ–°ä»£ç 
    // æ’入或更新员工的方法
    /// <summary>
    ///     æŽ¥å£å­—段调整:修改参数,新增List<MesStaffPositionLink>的参数
@@ -116,15 +59,14 @@
    ///     ä¿®æ”¹è¯´æ˜Žï¼šä¸ºäº†åº”为一个员工多岗位的情况
    /// </remarks>
    private bool InsertOrUpdateStaff(SqlSugarScope db, SysUser sysUser,
        MesStaff entity, List<MesStaffPositionLink> mesStaffPositionLink)
        MesStaff entity)
    {
        var exists = db.Queryable<SysUser>().Any(u => u.Sid == sysUser.Sid);
        if (!exists)
        {
            var insertUser = db.Insertable(sysUser).ExecuteCommand();
            db.Insertable(sysUser).ExecuteCommand();
        }
        db.Deleteable<MesStaff>()
            .Where(s => s.Id == entity.Id)
            .ExecuteCommand();
@@ -132,24 +74,7 @@
        var insertStaff =
            db.Insertable(entity).IgnoreColumns(true).ExecuteCommand();
        var insertPosition = 1;
        if (mesStaffPositionLink != null && mesStaffPositionLink.Count > 0)
        {
            //先删除,再新增
            db.Deleteable<MesStaffPositionLink>()
                .Where(s =>
                    mesStaffPositionLink.Any(m => m.StaffId == s.StaffId))
                .ExecuteCommand();
            //批量插入时,忽略空字段
            insertPosition = db.Insertable(mesStaffPositionLink).PageSize(1)
                .IgnoreColumnsNull().ExecuteCommand();
        }
        return insertStaff > 0 && insertPosition > 0;
        return insertStaff > 0;
    }
    /// <summary>
@@ -160,26 +85,6 @@
    /// ä¿®æ”¹æ—¥æœŸï¼š2024-12-30
    /// ä¿®æ”¹è¯´æ˜Žï¼š`
    /// </remarks>
    //// åŽŸä»£ç 
    // åˆ é™¤å‘˜å·¥çš„æ–¹æ³•
    //private bool DeleteStaff(SqlSugarScope db, SysUser sysUser, decimal staffId)
    //{
    //    var deleteUser = db.Deleteable<SysUser>()
    //        .Where(s => s.Sid == sysUser.Sid).ExecuteCommand();
    //    if (deleteUser > 0)
    //    {
    //        var deleteStaff =
    //            db.Deleteable<MesStaff>().In(staffId).ExecuteCommand();
    //        if (deleteStaff > 0)
    //            return true;
    //    }
    //    throw new NotImplementedException("反审核失败");
    //}
    /// æ–°ä»£ç 
    // åˆ é™¤å‘˜å·¥çš„æ–¹æ³•
    private bool DeleteStaff(SqlSugarScope db, SysUser sysUser, MesStaff entity)
    {
        var deleteUser = db.Deleteable<SysUser>()
@@ -192,11 +97,6 @@
                        s.Id == entity.Id &&
                        s.PositionCode == entity.PositionCode)
                    .ExecuteCommand();
            //删除对应员工岗位信息关联表 æ± å—骏 2025-01-02
            var insertPosition = db.Deleteable<MesStaffPositionLink>()
                .Where(s => s.StaffId == entity.Id)
                .ExecuteCommand();
            if (deleteStaff > 0)
                return true;
@@ -213,97 +113,34 @@
            Id = Convert.ToDecimal(staff.Id),
            StaffNo = staff.FStaffNumber,
            StaffName = staff.FName,
            //删除  2025-01-04  æ± å—骏
            //DepartmentNo = staff.FPostDept,
            /// <summary>
            /// æŽ¥å£å­—段调整:将FPost字段重命名为FPostId。
            /// </summary>
            /// <remarks>
            /// ä¿®æ”¹äººï¼šæ± å—骏
            /// ä¿®æ”¹æ—¥æœŸï¼š2024-12-25
            /// ä¿®æ”¹è¯´æ˜Žï¼š
            /// - åŽŸä»£ç ï¼š`PositionCode = staff.FPost,
            /// - ä¿®æ”¹åŽï¼š`PositionCode = staff.FPostId,
            /// - äºŒæ¬¡ä¿®æ”¹ï¼Œåˆ é™¤
            /// </remarks>
            //PositionCode = staff.FPostId,
            PhoneNumber = staff.FMobile,
            CreateOrg = Convert.ToDecimal(staff.FCreateOrgId),
            UseOrg = Convert.ToDecimal(staff.FUseOrgId),
            CreateDate = DateTime.Now,
            Remark = staff.FDescription,
            FDOCUMENTSTATUS = staff.FDocumentStatus,
            FforbidStatus = staff.FForbidStatus
            PositionCode = staff.FPostId,
            KeyPosts = staff.KeyPosts,
            StartDate = staff.FStaffStartDate != null
                ? DateTime.ParseExact(staff.FStaffStartDate,
                    "yyyy-MM-dd HH:mm:ss", null)
                : null,
            SeparationTime = staff.SeparationTime != null
                ? DateTime.ParseExact(staff.SeparationTime,
                    "yyyy-MM-dd HH:mm:ss", null)
                : null,
            FforbidStatus = staff.FforbidStatus,
            DepartmentName = staff.DepartmentName,
            UseOrg = staff.FUseOrgId,
            Remark = staff.Remark
        };
        //删除  2025-01-04  æ± å—骏
        //if (staff.FStaffStartDate != null)
        //    entity.StartDate = DateTime.ParseExact(staff.FStaffStartDate,
        //        "yyyy-MM-dd HH:mm:ss", null);
        return entity;
    }
    /// <summary>
    ///     æŽ¥å£å­—段调整:根据json格式,在MesStaffPositionLink<List>中存入数据。
    /// </summary>
    /// <remarks>
    ///     ä¿®æ”¹äººï¼šæ± å—骏
    ///     ä¿®æ”¹æ—¥æœŸï¼š2025-01-02 â€”—》 2025-01-05 äºŒæ¬¡ä¿®æ”¹
    ///     ä¿®æ”¹è¯´æ˜Žï¼š
    ///     - æ–°å¢žä»£ç 
    /// </remarks>
    private List<MesStaffPositionLink> GetMesStaffPositionLink(ErpStaff staff)
    {
        List<MesStaffPositionLink> staffDetails = new();
        if (staff.ErpStaffDetails != null && staff.ErpStaffDetails.Count > 0)
            staffDetails = staff.ErpStaffDetails.Select(staffDetail =>
                new MesStaffPositionLink
                {
                    StaffId = Convert.ToDecimal(staff.Id),
                    PositionId =
                        string.IsNullOrEmpty(staffDetail.fPostId.ToString())
                            ? null
                            : Convert.ToDecimal(staffDetail.fPostId),
                    FPostDeptId =
                        string.IsNullOrEmpty(staffDetail.fPostDeptid.ToString())
                            ? null
                            : Convert.ToDecimal(staffDetail.fPostDeptid),
                    FStaffStartDate =
                        string.IsNullOrEmpty(staffDetail.fStaffStartDate
                            .ToString())
                            ? null
                            : DateTime.ParseExact(staffDetail.fStaffStartDate,
                                "yyyy-MM-dd HH:mm:ss", null)
                }).ToList();
        //postIds.AddRange(links);
        return staffDetails;
    }
    // å°† ErpStaff å¯¹è±¡è½¬æ¢ä¸º SysUser å¯¹è±¡çš„æ–¹æ³•
    private SysUser GetUser(ErpStaff staff)
    {
        //获取当前用户使用组织对应的组织名称
        var db = SqlSugarHelper.GetInstance();
        var organize = db.Queryable<Organize>()
            .Where(it =>
                it.Id ==
                Convert.ToDecimal(staff.FUseOrgId)) // ä½¿ç”¨ Where æ–¹æ³•根据单个 ID æŸ¥è¯¢
            .Select(it => it.Fname) // é€‰æ‹© Fname å±žæ€§
            .Single(); // ä½¿ç”¨ Single å› ä¸ºæˆ‘们期望只有一个匹配项
        //string organizeName = organize.f;
        return new SysUser
        {
            Sid = Convert.ToDecimal(staff.Id),
            Fcode = staff.FStaffNumber,
            Fname = staff.FName,
            Fpassword = "8+()./,", // åˆå§‹å¯†ç 
            Fsystem = organize,
            Lever = 0,
            Fcompany = "1000",
            Ffactory = "1000",
@@ -328,122 +165,7 @@
    // SaveList æ–¹æ³•用于保存多个员工记录,根据类型批量执行不同的操作
    public bool SaveList(List<ErpStaff> departments)
    {
        var list = new List<MesStaff>();
        var userList = new List<SysUser>();
        var mesStaffPositionLinkList = new List<MesStaffPositionLink>();
        departments.ForEach(s =>
        {
            var entity = GetMesStaff(s);
            entity.Type = s.Type;
            list.Add(entity);
            var sysUser = GetUser(s);
            sysUser.Type = s.Type;
            userList.Add(sysUser);
            var mesStaffPositionLink =
                GetMesStaffPositionLink(s); // èŽ·å– SysUser å®žä¾‹
            mesStaffPositionLinkList.AddRange(mesStaffPositionLink);
        });
        var groupBy = list.GroupBy(s => s.Type)
            .ToDictionary(g => g.Key, g => g.ToList());
        return UseTransaction(db =>
        {
            foreach (var staffGroup in groupBy)
                switch (staffGroup.Key)
                {
                    case "0":
                        if (!UpdateStaffStatusBatch(db, staffGroup.Value,
                                "A")) // æ‰¹é‡å¯ç”¨å‘˜å·¥
                            throw new NotImplementedException("启用失败");
                        break;
                    case "1":
                        if (!UpdateStaffStatusBatch(db, staffGroup.Value,
                                "B")) // æ‰¹é‡ç¦ç”¨å‘˜å·¥
                            throw new NotImplementedException("禁用失败");
                        break;
                    case "3":
                        if (!DeleteStaffBatch(db, userList,
                                staffGroup.Value)) // æ‰¹é‡åˆ é™¤å‘˜å·¥
                            throw new NotImplementedException("删除失败");
                        break;
                    case "2":
                    case "4":
                        if (!InsertOrUpdateBatch(db, userList,
                                staffGroup.Value,
                                mesStaffPositionLinkList)) // æ‰¹é‡æ’入或更新员工
                            throw new NotImplementedException("同步失败");
                        break;
                    default:
                        throw new ArgumentNullException(
                            $"type没有{staffGroup.Key}这个类型的参数");
                }
            return 1;
        }) > 0;
    }
    // æ‰¹é‡æ›´æ–°å‘˜å·¥çŠ¶æ€çš„æ–¹æ³•
    private bool UpdateStaffStatusBatch(SqlSugarScope db,
        List<MesStaff> staffList, string status)
    {
        var ids = staffList.Select(it => it.Id).ToArray();
        var result = db.Updateable<MesStaff>()
            .SetColumns(s => s.FforbidStatus == status)
            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
        if (result > 0)
            return true;
        throw new NotImplementedException(status == "A" ? "启用失败" : "禁用失败");
    }
    // æ‰¹é‡æ’入员工的方法
    private bool InsertStaffBatch(SqlSugarScope db, List<SysUser> userList,
        List<MesStaff> staffList)
    {
        var userInsert = userList.FindAll(s => s.Type == "INSERT");
        var executeCommand = db.Insertable(userInsert).ExecuteCommand();
        if (executeCommand > 0)
            if (db.Insertable(staffList).ExecuteCommand() > 0)
                return true;
        throw new ArgumentNullException("审核失败");
    }
    // æ‰¹é‡åˆ é™¤å‘˜å·¥çš„æ–¹æ³•
    private bool DeleteStaffBatch(SqlSugarScope db, List<SysUser> userList,
        List<MesStaff> staffList)
    {
        var sid = userList.FindAll(s => s.Type == "DELETE").Select(s => s.Sid)
            .ToArray();
        var result = db.Deleteable<SysUser>()
            .Where(s => sid.Contains(s.Sid)).ExecuteCommand();
        if (result > 0)
        {
            var ids = staffList.Select(it => it.Id).ToArray();
            if (db.Deleteable<MesStaff>().In(ids).ExecuteCommand() > 0)
                return true;
        }
        throw new ArgumentNullException("反审核失败");
    }
    // æ‰¹é‡æ’入或更新员工的方法
    private bool InsertOrUpdateBatch(SqlSugarScope db, List<SysUser> userList,
        List<MesStaff> staffList,
        List<MesStaffPositionLink> mesStaffPositionLink)
    {
        foreach (var sysUser in userList)
        {
            var entity = staffList.First(s => s.Id == sysUser.Sid);
            if (!InsertOrUpdateStaff(db, sysUser, entity, mesStaffPositionLink))
                return false;
        }
        return true;
        var result = departments.Select(Save).ToList();
        return result.All(b => b);
    }
}