예제 #1
0
        public object AddMulitDeparment(IFormCollection files)
        {
            string[] colName = new string[] { "公司名称", "部门经理", "部门名称", "员工数量", "部门代码" };
            var      result  = new object();

            if (files != null && files.Files.Count > 0)
            {
                for (int i = 0; i < files.Files.Count; i++)
                {
                    var file = files.Files[i];
                    try
                    {
                        object   path     = _importExcelUtil.SaveExcel(file);
                        FileInfo fileInfo = new FileInfo((string)path);
                        using (FileStream fs = new FileStream(fileInfo.ToString(), FileMode.Create))
                        {
                            file.CopyTo(fs);
                            fs.Flush();
                        }
                        using (ExcelPackage package = new ExcelPackage(fileInfo))
                        {
                            ExcelWorksheet   worksheet = package.Workbook.Worksheets[1];
                            List <Deparment> successDeparments;
                            if (_importExcelUtil.JudgeCol(worksheet, colName))
                            {
                                result = new
                                {
                                    data = _importExcelUtil.SaveDepToDB(worksheet, out successDeparments)
                                };
                                System.IO.File.Delete((string)path);

                                foreach (var item in successDeparments)
                                {
                                    TransferWorkerDto transferWorkerDto = new TransferWorkerDto
                                    {
                                        WorkerId    = (int)item.ManagerId,
                                        DeparmentId = item.Id,
                                        StateId     = _commonAppService.GetManagerState(item.CompanyId),
                                        PositionId  = _commonAppService.GetManagerPosition(item.CompanyId)
                                    };
                                    _dangAnAppService.TransferWorker(transferWorkerDto);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        result = new
                        {
                            data      = ex.Message,
                            fileError = true
                        };
                    }
                }
            }
            return(result);
        }
예제 #2
0
 private void TransFerWorker(int compId, int depId, int workerId)
 {
     TransferWorkerDto transferWorkerDto = new TransferWorkerDto
     {
         WorkerId    = (int)workerId,
         DeparmentId = depId,
         StateId     = _commonManager.GetManagerState(compId),
         PositionId  = _commonManager.GetManagerPosition(compId)
     };
     Result s = this.TransferWorker(transferWorkerDto);
 }
예제 #3
0
        public Result TransferWorker(TransferWorkerDto transferWorkerDto)
        {
            Worker    worker     = _ctx.Worker.Find(transferWorkerDto.WorkerId);
            Deparment selectDep  = _ctx.Deparment.Find(transferWorkerDto.DeparmentId);
            Worker    manager    = _ctx.Worker.Find(selectDep.ManagerId);
            Deparment odeparment = _ctx.Deparment.Find(worker.DepartmentId);

            if (worker.DepartmentId != transferWorkerDto.DeparmentId)
            {
                //选择换部门,原本部门-1,新部门+1
                Deparment ndeparment = _ctx.Deparment.Find(transferWorkerDto.DeparmentId);
                ndeparment.WorkerCount = ndeparment.WorkerCount + 1;
                odeparment.WorkerCount = odeparment.WorkerCount - 1 <= 0 ? 0 : odeparment.WorkerCount - 1;
                _ctx.SaveChanges();
            }
            Result result = ChangeWorkerPosition(worker, manager, odeparment, transferWorkerDto);

            return(result);
        }
예제 #4
0
        public Result TransferWorker(TransferWorkerDto transferWorkerDto)
        {
            //需要进行人事调动的员工
            Worker worker = _ctx.Worker.Find(transferWorkerDto.WorkerId);
            //调动目标部门
            Deparment selectDep = _ctx.Deparment.Find(transferWorkerDto.DeparmentId);
            //需要调动的员工的旧部门
            Deparment odeparment = _ctx.Deparment.Find(worker.DepartmentId);

            //判断员工是否在原部门进行调动
            if (selectDep != odeparment)
            {
                //选择换部门,原本部门-1,新部门+1
                selectDep.WorkerCount  = selectDep.WorkerCount + 1;
                odeparment.WorkerCount = odeparment.WorkerCount - 1 <= 0 ? 0 : odeparment.WorkerCount - 1;
                _ctx.SaveChanges();
            }
            Result result = ChangeWorkerPosition(worker, selectDep, odeparment, transferWorkerDto);

            return(result);
        }
예제 #5
0
        /// <summary>
        /// 改变员工职位
        /// </summary>
        /// <param name="worker">员工</param>
        /// <param name="selectDep">目标部门</param>
        /// <param name="odeparment">旧部门</param>
        /// <param name="transferWorkerDto">前端传入实体</param>
        /// <returns></returns>
        private Result ChangeWorkerPosition(Worker worker, Deparment selectDep, Deparment odeparment, TransferWorkerDto transferWorkerDto)
        {
            Result result = new Result();

            try
            {
                //判断所选择的职位是否为部门经理
                string positionName = _ctx.Position.Find(transferWorkerDto.PositionId).Name;
                if (positionName.Contains("部门经理"))
                {
                    //判断所选择部门当前部门经理是否为空
                    if (selectDep.ManagerId == null)  //经理为空,则直接将该部门部门经理设置为该员工
                    {
                        selectDep.ManagerId = worker.Id;
                    }
                    else  //原本存在经理,将原本的经理变为员工
                    {
                        Worker manager = _ctx.Worker.Find(selectDep.ManagerId);
                        manager.PositionId  = _ctx.Position.SingleOrDefault(p => p.CompanyId == worker.CompanyId && p.Name.Contains("员工")).Id;
                        selectDep.ManagerId = worker.Id;
                    }
                }
                else
                {
                    //如果旧部门的经理是需要进行人事调动的员工
                    if (odeparment.ManagerId == worker.Id) //将旧部门的经理置为空
                    {
                        odeparment.ManagerId = null;
                    }
                }
                worker.DepartmentId = transferWorkerDto.DeparmentId;
                worker.PositionId   = transferWorkerDto.PositionId;
                worker.StateId      = transferWorkerDto.StateId;
                _ctx.SaveChanges();
                result.IsSuccess = true;
                result.Message   = "人员调动成功!";
            }
            catch (Exception e)
            {
                result.IsSuccess = false;
                result.Message   = e.Message;
            }
            return(result);
        }
예제 #6
0
        private Result ChangeWorkerPosition(Worker worker, Worker manager, Deparment odeparment, TransferWorkerDto transferWorkerDto)
        {
            Result result = new Result();

            try
            {
                //判断所选择的职位是否为部门经理
                string positionName = _ctx.Position.Find(transferWorkerDto.PositionId).Name;
                if (positionName.Contains("部门经理"))
                {
                    //判断所选择部门当前部门经理是否为总经理
                    int positionParent = _ctx.Position.Where(p => p.Id == manager.PositionId).First().ParentId;
                    if (positionParent == 0)
                    {
                        worker.PositionId      = transferWorkerDto.PositionId;
                        worker.StateId         = transferWorkerDto.StateId;
                        odeparment.WorkerCount = odeparment.WorkerCount - 1 <= 0 ? 0 : odeparment.WorkerCount - 1;
                    }
                    else
                    {
                        manager.PositionId = _ctx.Position.SingleOrDefault(p => p.CompanyId == worker.CompanyId && p.Name.Equals("员工")).Id;
                        worker.PositionId  = transferWorkerDto.PositionId;
                        worker.StateId     = transferWorkerDto.StateId;
                    }
                }
                else
                {
                    worker.PositionId = transferWorkerDto.PositionId;
                    worker.StateId    = transferWorkerDto.StateId;
                }
                _ctx.SaveChanges();
                result.IsSuccess = true;
                result.Message   = "人员调动成功!";
            }catch (Exception e)
            {
                result.IsSuccess = false;
                result.Message   = e.Message;
            }
            return(result);
        }
 public Result TransferWorker([FromBody] TransferWorkerDto transferWorkerDto)
 {
     return(_dangAnAppService.TransferWorker(transferWorkerDto));
 }
 public Result TransferWorker(TransferWorkerDto transferWorkerDto)
 {
     return(_dangAnManager.TransferWorker(transferWorkerDto));
 }