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); }
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); }
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); }
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); }
/// <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); }
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)); }