using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Timers;
namespace BLL
{
    public class BOSHENGMonitorService
    {
        #region 启动监视器 系统启动5分钟
        /// 
        /// 监视组件
        /// 
        private static Timer messageTimer;
        /// 
        /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
        /// 
        public static void StartMonitor()
        {
            int adTimeJ = 30;
            if (messageTimer != null)
            {
                messageTimer.Stop();
                messageTimer.Dispose();
                messageTimer = null;
            }
            if (adTimeJ > 0)
            {
                messageTimer = new Timer
                {
                    AutoReset = true
                };
                messageTimer.Elapsed += new ElapsedEventHandler(AddData);
                messageTimer.Interval = 1000 * 60 * adTimeJ;//  60000 * adTimeJ;
                messageTimer.Start();
            }
        }
        /// 
        /// 流程确认 定时执行 系统启动5分钟
        /// 
        /// Timer组件
        /// 事件参数
        public static void AddData(object sender, ElapsedEventArgs e)
        {
            try
            {
                var getDataList = (from x in Funs.DB.Sys_DataExchange where x.IsUpdate == false select x).Take(100).ToList();
                if (getDataList.Count() > 0)
                {
                    var getDataList0 = getDataList.Where(x => x.MessageText.Contains("\"Type\":0")).ToList();
                    var getDataList1 = getDataList.Where(x => x.MessageText.Contains("\"Type\":1")).ToList();
                    var getDataList2 = getDataList.Where(x => x.MessageText.Contains("\"Type\":2")).ToList();
                    var getDataList3 = getDataList.Where(x => x.MessageText.Contains("\"Type\":3")).ToList();
                    var getDataList4 = getDataList.Where(x => x.MessageText.Contains("\"Type\":4")).ToList();
                    var getDataList5 = getDataList.Where(x => x.MessageText.Contains("\"Type\":5")).ToList();
                    AddDataItem(getDataList1);
                    AddDataItem(getDataList0);
                    AddDataItem(getDataList2);
                    AddDataItem(getDataList3);
                    AddDataItem(getDataList4);
                    AddDataItem(getDataList5);
                }
            }
            catch (Exception ex)
            {
                StartMonitor();
                ErrLogInfo.WriteLog(ex, "博晟数据接口定时器", "RealNameMonitorService.AdUserInProcess");
            }
        }
        #endregion
        #region 与博晟培训考试接口数据插入明细方法
        /// 
        ///  与博晟培训考试接口数据插入明细方法
        /// 
        /// 
        private static void AddDataItem(List getDataExchange)
        {
            bool isOk = false;
            foreach (var item in getDataExchange)
            {
                JObject obj = JObject.Parse(item.MessageText);
                string type = obj["Type"].ToString();
                string code = obj["Code"].ToString();
                string fromprojectId = obj["DepartId"].ToString();
                string OtherDepartId = obj["OtherDepartId"].ToString();
                JArray arr = JArray.Parse(obj["Data"].ToString());
                string projectId = string.Empty;
                ////根据传值项目主键
                var getProjectByFromProjectId = Funs.DB.Base_Project.FirstOrDefault(x => x.FromProjectId == fromprojectId && x.ProjectCode == OtherDepartId);
                if (getProjectByFromProjectId != null)
                {
                    projectId = getProjectByFromProjectId.ProjectId;
                }
                else
                {
                    var getPByCode = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectCode == OtherDepartId);
                    if (getPByCode != null)
                    {
                        getPByCode.FromProjectId = fromprojectId;
                        Funs.DB.SubmitChanges();
                        projectId = getPByCode.ProjectId;
                    }
                    else
                    {
                        if (type == "1")
                        {
                            projectId = AddProject(arr);
                        }
                    }
                }
                if (!string.IsNullOrEmpty(projectId))
                {
                    var sysUser = BLL.UserService.GetUserByUserId(BLL.Const.sysglyId);
                    if (sysUser != null)
                    {
                        sysUser.LoginProjectId = projectId;
                    }
                    if (type == "0")
                    {
                        isOk = AddPerson(projectId, arr, sysUser);
                    }
                    else if (type == "1")
                    {
                        isOk = AddUnit(projectId, arr, sysUser);
                    }
                    else if (type == "2")
                    {
                        isOk = AddTrainRecord(projectId, arr, sysUser);
                    }
                    else if (type == "3")
                    {
                        isOk = AddTrainRecordPerson(projectId, arr, sysUser);
                    }
                    else if (type == "4")
                    {
                        isOk = AddEduTrain_TrainTest(projectId, arr, sysUser);
                    }
                    else if (type == "5")
                    {
                        isOk = AddPersonTrainRecord(projectId, arr, sysUser);
                    }
                    if (isOk) ///更新数据接收状态
                    {
                        item.IsUpdate = true;
                        Funs.DB.SubmitChanges();
                    }
                }
            }
        }
        #endregion
        #region 插入信息-项目信息
        /// 
        /// 插入信息-项目信息
        /// 
        /// 
        /// 
        public static string AddProject(JArray arr)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                string projectId = string.Empty;
                try
                {
                    foreach (var item in arr)
                    {
                        string fromUnitId = item["ID"].ToString();
                        string departName = item["DepartName"].ToString(); ///单位名称
                        string departSir = item["DepartSir"].ToString(); ///单位级别 0:非项目部 1:项目部级 2:项目部下级单位  
                        if (!string.IsNullOrEmpty(fromUnitId) && !string.IsNullOrEmpty(departName) && departSir == "1")
                        {
                            var getProjectByFromProjectId = db.Base_Project.FirstOrDefault(x => x.FromProjectId == fromUnitId);
                            if (getProjectByFromProjectId == null)
                            {
                                string projectCode = item["ProjectCode"].ToString();
                                var getProjectByProjectCode = db.Base_Project.FirstOrDefault(x => x.ProjectCode == projectCode);
                                if (getProjectByProjectCode != null)
                                {
                                    projectId = getProjectByProjectCode.ProjectId;
                                    getProjectByProjectCode.FromProjectId = fromUnitId;
                                    db.SubmitChanges();
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ErrLogInfo.WriteLog("博晟-项目同步", ex);
                }
                return projectId;
            }
        }
        #endregion
        #region 插入人员信息
        /// 
        /// 插入人员信息 0 
        /// 
        /// 
        /// 
        public static bool AddPerson(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertPersons = new List();
                    //List insertSitePersons = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getPerson = db.Bo_Sheng_Person.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getPerson == null)
                            {
                                Model.Bo_Sheng_Person newPerson = new Model.Bo_Sheng_Person
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    CreateDate = Funs.GetNewDateTime(item["CreateDate"].ToString()),
                                    CreateUser = item["CreateUser"].ToString(),
                                    OperDate = Funs.GetNewDateTime(item["OperDate"].ToString()),
                                    OperUser = item["OperUser"].ToString(),
                                    DeleteUser = item["DeleteUser"].ToString(),
                                    DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString()),
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    Name = item["Name"].ToString(),
                                    Sex = item["Sex"].ToString(),
                                    BirthDay = Funs.GetNewDateTime(item["BirthDay"].ToString()),
                                    Address = item["Address"].ToString(),
                                    Nation = item["Nation"].ToString(),
                                    IdentifyID = item["IdentifyID"].ToString(),
                                    Kind = item["Kind"].ToString(),
                                    Photo = item["Photo"].ToString(),
                                    Police = item["Police"].ToString(),
                                    ValidPeriodStart = item["ValidPeriodStart"].ToString(),
                                    ValidPeriodEnd = item["ValidPeriodEnd"].ToString(),
                                    Education = item["Education"].ToString(),
                                    Native = item["Native"].ToString(),
                                    Telephone = item["Telephone"].ToString(),
                                    MaritalStatus = item["MaritalStatus"].ToString(),
                                    BloodGroup = item["BloodGroup"].ToString(),
                                    RegisteredType = item["RegisteredType"].ToString(),
                                    Age = Funs.GetNewInt(item["Age"].ToString()),
                                    JobNumber = item["JobNumber"].ToString(),
                                    CardContent = item["CardContent"].ToString(),
                                    ContactTel = item["ContactTel"].ToString(),
                                    SecondContacts = item["SecondContacts"].ToString(),
                                    SecondContactsTel = item["SecondContactsTel"].ToString(),
                                    NewAddress = item["NewAddress"].ToString(),
                                    HealthCondition = item["HealthCondition"].ToString(),
                                    HealthFile = item["HealthFile"].ToString(),
                                    BuildArea = item["BuildArea"].ToString(),
                                    TraPrincipal = item["TraPrincipal"].ToString(),
                                    RegisterDate = Funs.GetNewDateTime(item["RegisterDate"].ToString()),
                                    CategoryType = item["CategoryType"].ToString(),
                                    Station = item["Station"].ToString(),
                                    Category = item["Category"].ToString(),
                                    CategoryLevel = item["CategoryLevel"].ToString(),
                                    EntranceDate = Funs.GetNewDateTime(item["EntranceDate"].ToString()),
                                    IsOut = item["IsOut"].ToString(),
                                    LeaveDate = Funs.GetNewDateTime(item["LeaveDate"].ToString()),
                                    IsBlackList = item["IsBlackList"].ToString(),
                                    AgreementId = item["AgreementId"].ToString(),
                                    HasInsurance = item["HasInsurance"].ToString(),
                                    DeviceNumber = item["DeviceNumber"].ToString(),
                                    IsActive = item["IsActive"].ToString(),
                                    DepartId = item["DepartId"].ToString(),
                                    DepartName = item["DepartName"].ToString(),
                                    OwnerDepartId = item["OwnerDepartId"].ToString(),
                                    UploadTime = Funs.GetNewDateTime(item["UploadTime"].ToString()),
                                };
                                insertPersons.Add(newPerson);
                            }
                            else
                            {
                                getPerson.DeleteUser = item["DeleteUser"].ToString();
                                getPerson.DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString());
                                getPerson.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                        //var getSitePerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == item["IdentifyID"].ToString());
                        //if (!string.IsNullOrEmpty(getID))
                        //{
                        //    if (getSitePerson == null)
                        //    {
                        //        Model.SitePerson_Person newPerson = new Model.SitePerson_Person
                        //        {
                        //            PersonId = SQLHelper.GetNewID(),
                        //            ProjectId = projectId,
                        //            PersonName = item["Name"].ToString(),
                        //            Sex = item["Sex"].ToString(),
                        //            Birthday = Funs.GetNewDateTime(item["BirthDay"].ToString()),
                        //            Address = item["Address"].ToString(),
                        //            Nation = item["Nation"].ToString(),
                        //            IdentityCard = item["IdentifyID"].ToString(),
                        //            UnitId = BLL.UnitService.GetUnitIdByUnitName(item["DepartName"].ToString()),
                        //            Telephone = item["Telephone"].ToString(),
                        //            MaritalStatus = item["MaritalStatus"].ToString(),
                        //        };
                        //        insertSitePersons.Add(newPerson);
                        //    }
                        //}
                        if (insertPersons.Count() > 0)
                        {
                            db.Bo_Sheng_Person.InsertAllOnSubmit(insertPersons);
                            db.SubmitChanges();
                        }
                        //if (insertSitePersons.Count() > 0)
                        //{
                        //    db.SitePerson_Person.InsertAllOnSubmit(insertSitePersons);
                        //    db.SubmitChanges();
                        //}
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-人员信息同步", ex);
                }
                return isOk;
            }
        }
        #endregion
        #region 插入信息-单位信息 1
        /// 
        /// 插入信息-单位信息 1
        /// 
        /// 
        /// 
        public static bool AddUnit(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertUnits = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getUnit = db.Bo_Sheng_Unit.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getUnit == null)
                            {
                                Model.Bo_Sheng_Unit newUnit = new Model.Bo_Sheng_Unit
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    ParentID = item["ParentID"].ToString(),
                                    DepartCode = item["DepartCode"].ToString(),
                                    ParentCode = item["ParentCode"].ToString(),
                                    DepartName = item["DepartName"].ToString(),
                                    DepartType = item["DepartType"].ToString(),
                                    DepartShortName = item["DepartShortName"].ToString(),
                                    DepartOrder = item["DepartOrder"].ToString(),
                                    State = item["State"].ToString(),
                                    DepartSir = item["DepartSir"].ToString(),
                                    IsEpiboly = item["IsEpiboly"].ToString(),
                                    Phone = item["Phone"].ToString(),
                                    Charge = item["Charge"].ToString(),
                                    Remark = item["Remark"].ToString(),
                                    OwnerDeptID = item["OwnerDeptID"].ToString(),
                                    CreateDate = Funs.GetNewDateTime(item["CreateDate"].ToString()),
                                    CreateUser = item["CreateUser"].ToString(),
                                    OperDate = Funs.GetNewDateTime(item["OperDate"].ToString()),
                                    OperUser = item["OperUser"].ToString(),
                                };
                                insertUnits.Add(newUnit);
                            }
                            else
                            {
                                getUnit.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (insertUnits.Count() > 0)
                    {
                        db.Bo_Sheng_Unit.InsertAllOnSubmit(insertUnits);
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-单位信息同步", ex);
                }
                return isOk;
            }
        }
        #endregion
        #region 插入培训记录 2
        /// 
        /// 插入培训记录 2
        /// 
        /// 
        /// 
        public static bool AddTrainRecord(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertTrains = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getTrain = db.Bo_Sheng_Train.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getTrain == null)
                            {
                                Model.Bo_Sheng_Train newTrainRecord = new Model.Bo_Sheng_Train
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    DeleteUser = item["DeleteUser"].ToString(),
                                    DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString()),
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    RecordName = item["RecordName"].ToString(),
                                    TrainType = item["TrainType"].ToString(),
                                    PaperMode = item["PaperMode"].ToString(),
                                    TrainMode = item["TrainMode"].ToString(),
                                    TrainPrincipal = item["TrainPrincipal"].ToString(),
                                    TrainStartDate = Funs.GetNewDateTime(item["TrainStartDate"].ToString()),
                                    TrainEndDate = Funs.GetNewDateTime(item["TrainEndDate"].ToString()),
                                    TrainContent = item["TrainContent"].ToString(),
                                    TrainDescript = item["TrainDescript"].ToString(),
                                    TrainPeriod = item["TrainPeriod"].ToString(),
                                    PersonCount = Funs.GetNewInt(item["PersonCount"].ToString()),
                                    PassedCount = Funs.GetNewInt(item["PassedCount"].ToString()),
                                    CoverImg = item["CoverImg"].ToString(),
                                    DemandID = item["DemandID"].ToString(),
                                    CourseCount = Funs.GetNewInt(item["CourseCount"].ToString()),
                                    CourseDuration = item["CourseDuration"].ToString(),
                                    Source = item["Source"].ToString(),
                                    Description = item["Description"].ToString(),
                                    DeviceNo = item["DeviceNo"].ToString(),
                                    OwnerDepartId = item["OwnerDepartId"].ToString(),
                                    UploadTime = Funs.GetNewDateTime(item["UploadTime"].ToString()),
                                    OwnerDeptName = item["OwnerDeptName"].ToString(),
                                    TrainDepart = item["TrainDepart"].ToString(),
                                    CreateDate = Funs.GetNewDateTime(item["CreateDate"].ToString()),
                                    CreateUser = item["CreateUser"].ToString(),
                                    OperDate = Funs.GetNewDateTime(item["OperDate"].ToString()),
                                    OperUser = item["OperUser"].ToString(),
                                };
                                insertTrains.Add(newTrainRecord);
                            }
                            else
                            {
                                getTrain.DeleteUser = item["DeleteUser"].ToString();
                                getTrain.DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString());
                                getTrain.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (insertTrains.Count() > 0)
                    {
                        db.Bo_Sheng_Train.InsertAllOnSubmit(insertTrains);
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-培训记录同步", ex);
                }
                return isOk;
            }
        }
        #endregion
        #region 插入培训人员 3
        /// 
        /// 插入培训人员 3
        /// 
        /// 
        /// 
        public static bool AddTrainRecordPerson(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertTrainPersons = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getTrainPerson = db.Bo_Sheng_TrainPerson.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getTrainPerson == null)
                            {
                                Model.Bo_Sheng_TrainPerson newPerson = new Model.Bo_Sheng_TrainPerson
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    DeleteUser = item["DeleteUser"].ToString(),
                                    DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString()),
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    EmpName = item["EmpName"].ToString(),
                                    IdentifyId = item["IdentifyId"].ToString(),
                                    Photo = item["Photo"].ToString(),
                                    Station = item["Station"].ToString(),
                                    Category = item["Category"].ToString(),
                                    CategoryName = item["CategoryName"].ToString(),
                                    RecordId = item["RecordId"].ToString(),
                                    SignName = item["SignName"].ToString(),
                                    DepartId = item["DepartId"].ToString(),
                                    DepartName = item["DepartName"].ToString(),
                                    SignInDate = Funs.GetNewDateTime(item["SignInDate"].ToString()),
                                    SignInType = item["SignInType"].ToString(),
                                    TrainPeriod = item["TrainPeriod"].ToString(),
                                    State = item["State"].ToString(),
                                    TotalScore = Funs.GetNewDecimal(item["TotalScore"].ToString()),
                                    PassScore = Funs.GetNewDecimal(item["PassScore"].ToString()),
                                    Score = Funs.GetNewDecimal(item["Score"].ToString()),
                                    IsPass = item["IsPass"].ToString(),
                                    GroupNo = item["GroupNo"].ToString(),
                                    ExamNo = item["ExamNo"].ToString(),
                                    ExamCount = Funs.GetNewInt(item["ExamCount"].ToString()),
                                    DeviceNo = item["DeviceNo"].ToString(),
                                    OwnerDepartId = item["OwnerDepartId"].ToString(),
                                    UploadTime = Funs.GetNewDateTime(item["UploadTime"].ToString()),
                                    Answers = item["Answers"].ToString(),
                                    CreateDate = Funs.GetNewDateTime(item["CreateDate"].ToString()),
                                    CreateUser = item["CreateUser"].ToString(),
                                    OperDate = Funs.GetNewDateTime(item["OperDate"].ToString()),
                                    OperUser = item["OperUser"].ToString(),
                                };
                                insertTrainPersons.Add(newPerson);
                            }
                            else
                            {
                                getTrainPerson.DeleteUser = item["DeleteUser"].ToString();
                                getTrainPerson.DeleteDate = Funs.GetNewDateTime(item["DeleteDate"].ToString());
                                getTrainPerson.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (insertTrainPersons.Count() > 0)
                    {
                        db.Bo_Sheng_TrainPerson.InsertAllOnSubmit(insertTrainPersons);
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-培训人员同步", ex);
                }
                return isOk;
            }
        }
        #endregion
        #region 插入试卷 4
        /// 
        /// 插入试卷 4
        /// 
        /// 
        /// 
        public static bool AddEduTrain_TrainTest(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertExams = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getExam = db.Bo_Sheng_Exam.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getExam == null)
                            {
                                Model.Bo_Sheng_Exam newTrainTest = new Model.Bo_Sheng_Exam
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    RecordId = item["RecordId"].ToString(),
                                    ExamNo = item["ExamNo"].ToString(),
                                    GroupNo = item["GroupNo"].ToString(),
                                    CourseID = item["CourseID"].ToString(),
                                    COrder = Funs.GetNewInt(item["COrder"].ToString()),
                                    QsnCode = item["QsnCode"].ToString(),
                                    QsnId = item["QsnId"].ToString(),
                                    QsnContent = item["QsnContent"].ToString(),
                                    QsnFileName = item["QsnFileName"].ToString(),
                                    QsnAnswer = item["QsnAnswer"].ToString(),
                                    QsnCategory = item["QsnCategory"].ToString(),
                                    QsnKind = item["QsnKind"].ToString(),
                                    QsnImportant = item["QsnImportant"].ToString(),
                                    Description = item["Description"].ToString(),
                                    Analysis = item["Analysis"].ToString(),
                                    UploadTime = Funs.GetNewDateTime(item["UploadTime"].ToString()),
                                };
                                insertExams.Add(newTrainTest);
                            }
                            else
                            {
                                getExam.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (insertExams.Count() > 0)
                    {
                        db.Bo_Sheng_Exam.InsertAllOnSubmit(insertExams);
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-培训试卷同步", ex);
                }
                return isOk;
            }
        }
        #endregion
        #region 插入人员培训记录 5
        /// 
        /// 插入人员培训记录 5
        /// 
        /// 
        /// 
        public static bool AddPersonTrainRecord(string projectId, JArray arr, Model.Sys_User user)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                bool isOk = true;
                try
                {
                    List insertPersonTrainRecords = new List();
                    foreach (var item in arr)
                    {
                        string getID = item["ID"].ToString();
                        var getPersonTrainRecord = db.Bo_Sheng_PersonTrainRecord.FirstOrDefault(x => x.ID == getID);
                        if (!string.IsNullOrEmpty(getID))
                        {
                            if (getPersonTrainRecord == null)
                            {
                                Model.Bo_Sheng_PersonTrainRecord newRecord = new Model.Bo_Sheng_PersonTrainRecord
                                {
                                    ID = getID,
                                    ProjectId = projectId,
                                    DeleteTag = item["DeleteTag"].ToString(),
                                    EmpName = item["EmpName"].ToString(),
                                    IdentifyId = item["IdentifyId"].ToString(),
                                    CategoryName = item["CategoryName"].ToString(),
                                    RecordId = item["RecordId"].ToString(),
                                    DepartId = item["DepartId"].ToString(),
                                    DepartName = item["DepartName"].ToString(),
                                    TrainPeriod = item["TrainPeriod"].ToString(),
                                    TotalScore = Funs.GetNewDecimal(item["TotalScore"].ToString()),
                                    PassScore = Funs.GetNewDecimal(item["PassScore"].ToString()),
                                    Score = Funs.GetNewDecimal(item["Score"].ToString()),
                                    IsPass = item["IsPass"].ToString(),
                                    GroupNo = item["GroupNo"].ToString(),
                                    ExamNo = item["ExamNo"].ToString(),
                                    ExamCount = item["ExamCount"].ToString(),
                                    DeviceNo = item["DeviceNo"].ToString(),
                                    OwnerDepartId = item["OwnerDepartId"].ToString(),
                                    Answers = item["Answers"].ToString(),
                                    RecordName = item["RecordName"].ToString(),
                                    TrainType = item["TrainType"].ToString(),
                                    PaperMode = item["PaperMode"].ToString(),
                                    TrainMode = item["TrainMode"].ToString(),
                                    TrainPrincipal = item["TrainPrincipal"].ToString(),
                                    TrainStartDate = Funs.GetNewDateTime(item["TrainStartDate"].ToString()),
                                    TrainEndDate = Funs.GetNewDateTime(item["TrainEndDate"].ToString()),
                                    TrainContent = item["TrainContent"].ToString(),
                                    TrainDescript = item["TrainDescript"].ToString(),
                                };
                                insertPersonTrainRecords.Add(newRecord);
                            }
                            else
                            {
                                getPersonTrainRecord.DeleteTag = item["DeleteTag"].ToString();
                                db.SubmitChanges();
                            }
                        }
                    }
                    if (insertPersonTrainRecords.Count() > 0)
                    {
                        db.Bo_Sheng_PersonTrainRecord.InsertAllOnSubmit(insertPersonTrainRecords);
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    isOk = false;
                    ErrLogInfo.WriteLog("博晟-人员培训记录同步", ex);
                }
                return isOk;
            }
        }
        #endregion
    }
}