/// <summary>
        /// 更变工号
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>

        public OpResult StoreWorkerIdChangeInfo(WorkerChangedModel entity)
        {
            OpResult result = OpResult.SetErrorResult("更变工号操作失败!");

            if (entity == null)
            {
                return(result);
            }
            List <ArchivesEmployeeIdentityModel> oldWorkerBaseInfoList = FindWorkerArchivesInfoBy(new QueryWorkerArchivesDto {
                WorkerId = entity.OldWorkerId, SearchMode = 1
            });

            if (oldWorkerBaseInfoList != null && oldWorkerBaseInfoList.Count > 0)
            {
                ArchivesEmployeeIdentityModel oldWorkerBaseInfo = oldWorkerBaseInfoList[0];
                var newWorkerBaseInfo = oldWorkerBaseInfo;
                newWorkerBaseInfo.WorkerId        = entity.NewWorkerId;
                newWorkerBaseInfo.WorkerIdNumType = entity.NewWorkerId.Substring(0, 1);
                entity.WorkerName = newWorkerBaseInfo.Name;
                int record = this.UpdataEMployee(newWorkerBaseInfo);
                if (record > 0)
                {
                    result = WorkerIdChangeManager.StoreWorkerIdChangeInfo(entity);
                }
            }
            return(result);
        }
        private int EditEmployee(ArchivesEmployeeIdentityDto dto, int record, ArchivesEmployeeIdentityModel empIdentityMdl, ArStudyModel studyMdl, ArTelModel telMdl)
        {
            ArStudyModel oldStudyMdl = null;
            ArTelModel   oldTelMdl   = null;
            ArDepartmentChangeLibModel    departmentMdl     = null;
            ArPostChangeLibModel          postMdl           = null;
            ArchivesEmployeeIdentityModel oldEmpIdentityMdl = new ArchivesEmployeeIdentityModel();

            ArchiveEntityMapper.GetStudyDataFrom(dto, oldEmpIdentityMdl, out oldStudyMdl);
            ArchiveEntityMapper.GetTelDataFrom(dto, oldEmpIdentityMdl, out oldTelMdl);
            ArchiveEntityMapper.GetDepartmentDataFrom(dto, oldEmpIdentityMdl, out departmentMdl);
            ArchiveEntityMapper.GetPostDataFrom(dto, oldEmpIdentityMdl, out postMdl);

            ////添加修改逻辑
            record = this.irep.Update(u => u.Id_Key == dto.Id_Key, empIdentityMdl);
            ////处理外部逻辑
            ////1.修改学习信息存储
            record += StudyManager.Edit(studyMdl, oldStudyMdl);
            ////2.修改联系方式信息存储
            record += TelManager.Edit(telMdl, oldTelMdl);
            ////3.修改部门信息存储
            record += this.DepartmentMananger.Edit(departmentMdl);
            ////4.修改岗位信息存储
            record += this.PostManager.Edit(postMdl);
            return(record);
        }
 private AttendClassTypeDetailModel CreateClassTypeModel(ArchivesEmployeeIdentityModel empIdentityMdl)
 {
     return(new AttendClassTypeDetailModel
     {
         WorkerId = empIdentityMdl.WorkerId,
         ClassType = empIdentityMdl.ClassType,
         WorkerName = empIdentityMdl.Name,
         DateAt = empIdentityMdl.RegistedDate,
         Department = empIdentityMdl.Department,
         IsAlwaysDay = "是",
         OpDate = DateTime.Now.ToDate(),
         OpPerson = empIdentityMdl.OpPerson,
         OpSign = "init"
     });
 }
        /// <summary>
        /// 更新人员基本资料
        /// </summary>
        /// <param name="empIdentityMdl"></param>
        /// <returns></returns>
        private int UpdataEMployee(ArchivesEmployeeIdentityModel empIdentityMdl)
        {
            int record = 0;

            if (this.irep.IsExist(e => e.IdentityID == empIdentityMdl.IdentityID))
            {
                //如果存在删除
                record = this.irep.Delete(e => e.IdentityID == empIdentityMdl.IdentityID);
                if (record <= 0)
                {
                    return(record);
                }
            }
            return(this.irep.Insert(empIdentityMdl));
        }
 /// <summary>
 /// 获取联系方式信息
 /// </summary>
 /// <param name="dto"></param>
 /// <param name="entity"></param>
 internal static void GetTelDataFrom(ArchivesEmployeeIdentityDto dto, ArchivesEmployeeIdentityModel entity, out ArTelModel telEntity)
 {
     entity.FamilyPhone = dto.FamilyPhone;
     entity.TelPhone    = dto.TelPhone;
     telEntity          = new ArTelModel()
     {
         FamilyPhone   = dto.FamilyPhone,
         PersonPhone   = dto.PersonPhone,
         TelPhone      = dto.TelPhone,
         WorkerId      = dto.WorkerId,
         WorkerName    = dto.Name,
         WorkingStatus = "在职",
         OpDate        = DateTime.Now.ToDate(),
         OpPerson      = dto.OpPerson,
     };
 }
 internal static void GetEmployeeDataFrom(ArchivesEmployeeIdentityDto dto, ArchivesEmployeeIdentityModel entity)
 {
     entity.MarryStatus         = dto.MarryStatus;
     entity.WorkerId            = dto.WorkerId;
     entity.WorkerIdNumType     = dto.WorkerIdNumType;
     entity.WorkerIdType        = dto.WorkerIdType;
     entity.WorkingStatus       = "在职";
     entity.RegistedDate        = dto.RegistedDate;
     entity.RegistedSegment     = dto.RegistedSegment;
     entity.PoliticalStatus     = dto.PoliticalStatus;
     entity.RegisteredPermanent = dto.RegisteredPermanent;
     entity.NativePlace         = dto.NativePlace;
     entity.OpPerson            = dto.OpPerson;
     entity.ClassType           = "白班";
     entity.Id_Key = dto.Id_Key;
 }
 private int AddEmployee(int record, ArchivesEmployeeIdentityModel empIdentityMdl, ArStudyModel studyMdl, ArTelModel telMdl, ArPostChangeLibModel postMdl, ArDepartmentChangeLibModel departmentMdl)
 {
     record = this.UpdataEMployee(empIdentityMdl);
     ////处理外部逻辑
     ////1.处理学习信息存储
     StudyManager.Insert(studyMdl);
     ////2.处理联系方式信息
     TelManager.Insert(telMdl);
     //3.初始化岗位信息
     PostManager.InitPost(postMdl);
     //4.初始化部门信息
     this.DepartmentMananger.InitDepartment(departmentMdl);
     //5.初始化班别信息
     AttendanceService.ClassTypeSetter.InitClassType(CreateClassTypeModel(empIdentityMdl));
     return(record);
 }
        /// <summary>
        /// 获取部门信息
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="entity"></param>
        internal static void GetDepartmentDataFrom(ArchivesEmployeeIdentityDto dto, ArchivesEmployeeIdentityModel entity, out ArDepartmentChangeLibModel departmentEntity)
        {
            entity.Organizetion           = dto.Organizetion;
            entity.Department             = dto.Department;
            entity.DepartmentChangeRecord = 0;

            departmentEntity = new ArDepartmentChangeLibModel()
            {
                AssignDate    = DateTime.Now.ToDate(),
                WorkerId      = dto.WorkerId,
                WorkerName    = dto.Name,
                InStatus      = "In",
                NowDepartment = dto.Department,
                OldDepartment = dto.Department,
                OpPerson      = dto.OpPerson,
                OpSign        = "Init"
            };
        }
        /// <summary>
        /// 获取学习信息
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="entity"></param>
        internal static void GetStudyDataFrom(ArchivesEmployeeIdentityDto dto, ArchivesEmployeeIdentityModel entity, out ArStudyModel studyEntity)
        {
            entity.SchoolName = dto.SchoolName;
            entity.MajorName  = dto.MajorName;
            entity.Education  = dto.Education;

            studyEntity = new ArStudyModel()
            {
                WorkerId      = dto.WorkerId,
                WorkerName    = dto.Name,
                SchoolName    = dto.SchoolName,
                StudyDateFrom = dto.StudyDateFrom,
                StudyDateTo   = dto.StudyDateTo,
                MajorName     = dto.MajorName,
                Qulification  = dto.Education,
                WorkingStatus = "在职",
                OpDate        = DateTime.Now.ToDate(),
                OpPerson      = dto.OpPerson
            };
        }
        /// <summary>
        /// 获取岗位信息
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="entity"></param>
        internal static void GetPostDataFrom(ArchivesEmployeeIdentityDto dto, ArchivesEmployeeIdentityModel entity, out ArPostChangeLibModel postEntity)
        {
            entity.PostNature       = dto.PostNature;
            entity.PostChangeRecord = 0;
            entity.Post             = dto.Post;

            postEntity = new ArPostChangeLibModel()
            {
                WorkerId   = dto.WorkerId,
                WorkerName = dto.Name,
                AssignDate = DateTime.Now.ToDate(),
                InStatus   = "In",
                NowPost    = dto.Post,
                OldPost    = dto.Post,
                PostNature = dto.PostNature,
                PostType   = "默认",
                OpPerson   = dto.OpPerson,
                OpSign     = "Init"
            };
        }
        /// <summary>
        /// 获取身份证信息
        /// </summary>
        /// <param name="IdentityId">身份证Id</param>
        /// <param name="entity">实体</param>
        /// <param name="manager">管理信息</param>
        internal static bool GetIdentityDataFrom(string IdentityId, ArchivesEmployeeIdentityModel entity, ArIdentityInfoManager manager)
        {
            ArchivesIdentityModel model = manager.GetOneBy(IdentityId);

            if (model != null)
            {
                entity.IdentityID             = model.IdentityID;
                entity.Address                = model.Address;
                entity.Birthday               = model.Birthday;
                entity.Name                   = model.Name;
                entity.Sex                    = model.Sex;
                entity.Nation                 = model.Nation;
                entity.SignGovernment         = model.SignGovernment;
                entity.LimitedDate            = model.LimitedDate;
                entity.PersonalPicture        = model.PersonalPicture;
                entity.BirthMonth             = model.Birthday.ToDate().ToString("yyyyMM");
                entity.IdentityExpirationDate = GetIdentityExpirationDate(model.LimitedDate);
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// 存储员工档案信息
        /// </summary>
        /// <param name="dto">新的数据传输对象</param>
        /// <param name="opSign">操作标志</param>
        /// <returns></returns>
        public OpResult Store(ArchivesEmployeeIdentityDto dto, string opSign)
        {
            int record = 0;

            try
            {
                dto.RegistedDate = dto.RegistedDate.AddDays(1).ToDate();
                ArchivesEmployeeIdentityModel empIdentityMdl = new ArchivesEmployeeIdentityModel();
                ArStudyModel               studyMdl          = null;
                ArTelModel                 telMdl            = null;
                ArPostChangeLibModel       postMdl           = null;
                ArDepartmentChangeLibModel departmentMdl     = null;
                //得到身份证的信息
                if (!ArchiveEntityMapper.GetIdentityDataFrom(dto.IdentityID, empIdentityMdl, this.identityManager))
                {
                    return(OpResult.SetSuccessResult("没有找到此身份证号的信息!", true));
                }

                ArchiveEntityMapper.GetEmployeeDataFrom(dto, empIdentityMdl);
                ArchiveEntityMapper.GetDepartmentDataFrom(dto, empIdentityMdl, out departmentMdl);
                ArchiveEntityMapper.GetPostDataFrom(dto, empIdentityMdl, out postMdl);
                ArchiveEntityMapper.GetStudyDataFrom(dto, empIdentityMdl, out studyMdl);
                ArchiveEntityMapper.GetTelDataFrom(dto, empIdentityMdl, out telMdl);

                if (opSign == "add")
                {
                    record = AddEmployee(record, empIdentityMdl, studyMdl, telMdl, postMdl, departmentMdl);
                }
                else if (opSign == "edit")
                {
                    record = EditEmployee(dto, record, empIdentityMdl, studyMdl, telMdl);
                }
                return(OpResult.SetSuccessResult("保存档案数据成功!", record > 0, empIdentityMdl.Id_Key));
            }
            catch (Exception ex)
            {
                return(OpResult.SetErrorResult(ex));
            }
        }