public Result Scrap(int assetId, DateTime operateAt, string pics, string remark, IAppUser user) { var asset = LoadDto(assetId); if (asset == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "资产不存在或已删除")); } if (asset.State == "借出") { return(ResultUtil.Do(ResultCodes.验证失败, "该资产处于借出状态,禁止报废")); } var log = new AssetLog { AssetId = asset.Id, AssetName = asset.Name, AssetCode = asset.Code, FromAccountId = asset.AccountId, FromAccountName = asset.AccountName, FromDeptId = asset.DeptId, FromDeptName = asset.DeptName, TargetAccountId = 0, TargetAccountName = "", TargetDeptId = 0, TargetDeptName = "", Type = "报废", OperateAt = operateAt, Remark = remark, Pics = pics }; log.BeforeCreate(user); var sqls = new KeyValuePairList { { "UPDATE Asset_Asset SET [State]='报废',UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = log.AssetId, UserId = user.Id, UserName = user.Name } } }; log.BeforeCreate(user); sqls.Add(db.GetCommonInsertSql <AssetLog>(), log); var row = db.ExecuteTran(sqls); return(row ? ResultUtil.Success() : ResultUtil.Do(ResultCodes.数据库操作失败, "数据库写入失败")); }
public Result Recovery(int assetId, DateTime recoveryAt, string pics, string newPosition, string remark, IAppUser user) { var asset = LoadDto(assetId); if (asset == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "请求的资产不存在")); } if (recoveryAt < DateTime.Parse("1900-1-1")) { return(ResultUtil.Do(ResultCodes.验证失败, "回收日期不得小于1900-1-1")); } var log = new AssetLog { AssetId = asset.Id, AssetName = asset.Name, AssetCode = asset.Code, FromAccountId = asset.AccountId, FromAccountName = asset.AccountName, FromDeptId = asset.DeptId, FromDeptName = asset.DeptName, TargetAccountId = 0, TargetAccountName = "", TargetDeptId = 0, TargetDeptName = "", Type = "回收", OperateAt = recoveryAt, Remark = remark + "\n回收后位置:" + newPosition, Pics = pics }; log.BeforeCreate(user); var sqls = new KeyValuePairList { { "UPDATE Asset_Asset SET [State]='闲置',Position=@Position,DeptId=0,AccountId=0,UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = log.AssetId, UserID = user.Id, UserName = user.Name, Position = newPosition } }, { db.GetCommonInsertSql <AssetLog>(), log } }; var row = db.ExecuteTran(sqls); return(row ? ResultUtil.Success() : ResultUtil.Do(ResultCodes.数据库操作失败, "数据库写入失败")); }
public int SaveAssetLog(AssetLogViewModel assetLog, int terminalId, int tenantId) { var newAssetLog = new AssetLog(); Mapper.Map(assetLog, newAssetLog); newAssetLog.AssetLogId = Guid.NewGuid(); newAssetLog.DateCreated = DateTime.UtcNow; newAssetLog.TerminalId = terminalId; newAssetLog.TenantId = tenantId; _currentDbContext.AssetLog.Add(newAssetLog); int res = _currentDbContext.SaveChanges(); return(res); }
public JsonResult Edit(string jsonAssetAttribute, string asset) { string error = "false"; string errorQuantity = "false"; try { TempData.Remove("checkScreenArea"); String assetString = HttpUtility.HtmlDecode(asset); List <AssetAttributeValue> assetAttributeValue = JsonConvert.DeserializeObject <List <AssetAttributeValue> >(jsonAssetAttribute); Asset assetViewModel = JsonConvert.DeserializeObject <Asset>(assetString); //assetViewModel.ApplicationUserID = Convert.ToInt32(User.Identity.GetUserId()); var validateName = _assetService.GetAll(new string[] { "Area", "Area.Location" }).FirstOrDefault (x => x.Name == assetViewModel.Name && x.Area.ID == assetViewModel.AreaID && x.ID != assetViewModel.ID); if (validateName != null) { error = "Name Asset already exists in Area"; } else { _assetService.Update(assetViewModel, assetAttributeValue); SetAlert("Update Asset success", "success"); AssetLog assetLog = new AssetLog { AssetID = assetViewModel.ID, Active = true, CreatedAt = DateTime.Now, Message = "Asset Updated", ApplicationUserID = applicationUserManager.FindByName(User.Identity.GetUserName()).Id }; _assetLogService.Add(assetLog); _assetLogService.SaveChanges(); } // update asset log } catch (Exception e) { SetAlert("Update Asset error", "error"); } return(Json(error)); }
public IActionResult Recovery(int id) { var entity = _service.LoadDto(id); if (entity == null) { return(new EmptyResult()); } var logDto = new AssetLog(); logDto.AssetId = entity.Id; logDto.AssetName = entity.Name; logDto.AssetCode = entity.Code; logDto.FromAccountId = entity.AccountId; logDto.FromAccountName = entity.AccountName; logDto.FromDeptId = entity.DeptId; logDto.FromDeptName = entity.DeptName; logDto.Type = "调配"; logDto.TargetDeptId = 0; logDto.TargetAccountId = 0; logDto.OperateAt = DateTime.Today; logDto.Remark = ""; logDto.Pics = ""; ViewBag.State = entity.State; ViewBag.Healthy = entity.Healthy; ViewBag.Position = entity.Position; if (entity.State == "作废" || entity.State == "借出") { } else { InitDeptAndAccount(); } return(View(logDto)); }
public Result Return(int loanId, DateTime returnAt, IAppUser user) { var loan = db.Load <Loan>(loanId); if (loan == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "借出记录不存在")); } if (loan.IsReturn) { return(ResultUtil.Do(ResultCodes.验证失败, "此借出记录已归还,请勿重复操作")); } var state = loan.FromDeptId == 0 ? "闲置" : "使用中"; var log = new AssetLog { AssetId = loan.AssetId, AssetCode = loan.AssetCode, AssetName = loan.AssetName, TargetAccountId = loan.FromAccountId, TargetAccountName = loan.FromAccountName, TargetDeptId = loan.FromDeptId, TargetDeptName = loan.FromDeptName, FromAccountId = loan.TargetAccountId, FromAccountName = loan.TargetAccountName, FromDeptId = loan.TargetDeptId, FromDeptName = loan.TargetDeptName, Type = "归还", OperateAt = loan.LoanAt, Pics = loan.Pics }; log.BeforeCreate(user); var sqls = new KeyValuePairList { { "UPDATE Asset_Asset SET [State]=@State,DeptId=@DeptId,Position=@Position,AccountId=@AccountId,UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = loan.AssetId, State = state, DeptId = loan.FromDeptId, AccountId = loan.FromAccountId, UserID = user.Id, UserName = user.Name, Position = loan.FromPosition } }, { "UPDATE Asset_Loan SET IsReturn=1,ReturnAt=@ReturnAt,UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = loanId, UserId = user.Id, UserName = user.Name, ReturnAt = returnAt } }, { db.GetCommonInsertSql <AssetLog>(), log } }; var row = db.ExecuteTran(sqls); return(row ? ResultUtil.Success() : ResultUtil.Do(ResultCodes.数据库操作失败, "数据库写入失败")); }
public Result Loan(int assetId, int targetDeptId, int targetAccountId, DateTime loanAt, DateTime expectedReturnAt, string pics, string newPositon, string remark, IAppUser user) { // 验证参数 if (assetId <= 0) { return(ResultUtil.Do(ResultCodes.验证失败, "指定了无效的资产id")); } if (targetDeptId <= 0) { return(ResultUtil.Do(ResultCodes.验证失败, "指定了无效的部门id")); } if (loanAt < DateTime.Parse("1900-1-1") || expectedReturnAt < DateTime.Parse("1900-1-1")) { return(ResultUtil.Do(ResultCodes.验证失败, "借出和预计归还日期必须大于1900-1-1")); } if (loanAt > expectedReturnAt) { return(ResultUtil.Do(ResultCodes.验证失败, "预计归还日期必须大于等于借出日期")); } var loan = new Loan(); var asset = LoadDto(assetId); if (asset == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "资产不存在或已删除")); } if (asset.State == "借出" || asset.State == "报废") { return(ResultUtil.Do(ResultCodes.验证失败, "该资产已借出或已报废,禁止借出操作")); } if (targetAccountId > 0) { var accountService = new AccountService(); var account = accountService.Load(targetAccountId); if (account == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "目标使用人不存在或已删除")); } var dept = DeptUtil.Get(account.DeptId); if (dept == null) { throw new Exception("无法找到员工所属部门。员工ID:" + account.Id.ToString() + ";部门ID:" + account.DeptId.ToString()); } loan.TargetAccountId = targetAccountId; loan.TargetAccountName = account.Name; loan.TargetDeptId = targetDeptId; loan.TargetDeptName = dept.Name; } else { var dept = DeptUtil.Get(targetDeptId); if (dept == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "目标部门不存在或已删除")); } loan.TargetAccountId = 0; loan.TargetAccountName = ""; loan.TargetDeptId = dept.Id; loan.TargetDeptName = dept.Name; } loan.AssetId = asset.Id; loan.AssetCode = asset.Code; loan.AssetName = asset.Name; loan.FromAccountId = asset.AccountId; loan.FromAccountName = asset.AccountName; loan.FromDeptId = asset.DeptId; loan.FromDeptName = asset.DeptName; loan.LoanAt = loanAt; loan.ExpectedReturnAt = expectedReturnAt; loan.IsReturn = false; loan.ReturnAt = null; loan.Pics = pics; var log = new AssetLog { AssetId = loan.AssetId, AssetCode = loan.AssetCode, AssetName = loan.AssetName, FromAccountId = loan.FromAccountId, FromAccountName = loan.FromAccountName, FromDeptId = loan.FromDeptId, FromDeptName = loan.FromDeptName, TargetAccountId = loan.TargetAccountId, TargetAccountName = loan.TargetAccountName, TargetDeptId = loan.TargetDeptId, TargetDeptName = loan.TargetDeptName, Type = "借出", OperateAt = loan.LoanAt, Pics = loan.Pics }; loan.BeforeCreate(user); log.BeforeCreate(user); var sqls = new KeyValuePairList { { "UPDATE Asset_Asset SET [State]='借出',Position=@Position,DeptId=@DeptId,AccountId=@AccountId,UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = log.AssetId, Position = newPositon, UserId = user.Id, UserName = user.Name, AccountId = log.TargetAccountId, DeptId = log.TargetDeptId } }, { db.GetCommonInsertSql <Loan>(), loan }, { db.GetCommonInsertSql <AssetLog>(), log } }; var row = db.ExecuteTran(sqls); return(row ? ResultUtil.Success() : ResultUtil.Do(ResultCodes.数据库操作失败, "数据库写入失败")); }
/// <summary> /// 转移资产 /// </summary> public Result Move(AssetLog log, string newPosition, IAppUser user) { var asset = LoadDto(log.AssetId); if (asset == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "指定的资产不存在或已删除")); } switch (asset.State) { case "报废": return(ResultUtil.Do(ResultCodes.数据不存在, "指定的资产已报废,禁止操作")); case "借出": return(ResultUtil.Do(ResultCodes.数据不存在, "指定的资产已借出,禁止操作")); } log.AssetCode = asset.Code; log.AssetName = asset.Name; if (log.OperateAt < DateTime.Parse("1900-1-1")) { return(ResultUtil.Do(ResultCodes.验证失败, "调配日期无效")); } DeptDto targetDept; if (log.TargetAccountId > 0) { var accountService = new AccountService(); var targetAccount = accountService.Load(log.TargetAccountId); if (targetAccount == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "目标用户不存在")); } targetDept = DeptUtil.Get(targetAccount.DeptId); if (targetDept == null) { throw new Exception("用户所在的部门信息不存在,请联系管理员"); } log.TargetAccountId = targetAccount.Id; log.TargetAccountName = targetAccount.Name; log.TargetDeptId = targetDept.Id; log.TargetDeptName = targetDept.Name; } else { targetDept = DeptUtil.Get(log.TargetDeptId); if (targetDept == null) { return(ResultUtil.Do(ResultCodes.数据不存在, "目标部门不存在")); } else { log.TargetDeptId = targetDept.Id; log.TargetDeptName = targetDept.Name; log.TargetAccountId = 0; log.TargetAccountName = ""; } } log.Type = "调配"; var sql = new KeyValuePairList { { "UPDATE Asset_Asset SET DeptId=@DeptId,@Position=@Position,AccountId=@AccountId,UpdateAt=GETDATE(),UpdateBy=@UserId,Updator=@UserName WHERE Id=@Id", new { Id = log.AssetId, Position = newPosition, DeptId = log.TargetDeptId, AccountId = log.TargetAccountId, UserId = user.Id, UserName = user.Name } } }; log.BeforeCreate(user); sql.Add(db.GetCommonInsertSql <AssetLog>(), log); var row = db.ExecuteTran(sql); return(row ? ResultUtil.Success() : ResultUtil.Do(ResultCodes.数据库操作失败, "数据库写入失败")); }
internal override async Task <EntityResult> AfterCreateAsync(AssetLog entity, bool notifyAll = false) { var assetAlerts = await Context.AssetAlerts.Where(aa => aa.AssetId == entity.AssetId && aa.AssetLogTypeId == entity.AssetLogTypeId).ToListAsync(); var userEntity = await Context.Users.FirstOrDefaultAsync(u => u.UserName == entity.CreatedBy); var assetEntity = await Context.Assets.FirstOrDefaultAsync(a => a.Id == entity.AssetId); var assetLogTypeEntity = await Context.AssetLogTypes.FirstOrDefaultAsync(alt => alt.Id == entity.AssetLogTypeId); var userName = userEntity.FullName ?? userEntity.UserName; var assetName = assetEntity.Name + (assetEntity.CustomId != null ? string.Format(" - {0}", assetEntity.CustomId) : ""); foreach (var assetAlert in assetAlerts) { var message = string.Format("{0} reported {1} for asset {2} on {3}.", userName, assetLogTypeEntity.Name, assetName, entity.CreatedOn.ToLocalTime().ToString("MM/dd/yyyy hh:mm tt")); if (!string.IsNullOrEmpty(entity.Comment)) { message += string.Format(" Comment(s): {0}", entity.Comment); } foreach (var user in assetAlert.Users) { var date = DateTime.Now; var log = new AssetAlertLog() { AlertDate = date, AssetLogId = entity.Id, AssetAlertId = assetAlert.Id, Description = message, Type = AssetAlertLogType.System.ToString(), UserId = user.UserId }; Context.AssetAlertLogs.Add(log); if (Context.SaveChanges().Succeeded) { if (!string.IsNullOrEmpty(HttpContext.Request.Headers["X-Altask-Client-Id"])) { SignalRHub.NotifyAssetAlertLogCreate(Guid.Parse(HttpContext.Request.Headers["X-Altask-Client-Id"]), log.ToDto()); } } if (user.User.ReceiveEmail) { var result = await UserManager.EmailService.SendAsync(Settings.AlertEmailFrom, user.User.EmailAddress, Settings.AlertEmailSubject, message.ToString()); Context.AssetAlertLogs.Add(new AssetAlertLog() { AlertDate = date, AssetLogId = entity.Id, AssetAlertId = assetAlert.Id, Description = message, Type = (result.Succeeded ? AssetAlertLogType.SendEmailSuccess : AssetAlertLogType.SendEmailFailure).ToString(), UserId = user.UserId }); Context.SaveChanges(); } if (user.User.ReceiveText) { var result = await UserManager.EmailService.SendAsync(Settings.AlertEmailFrom, user.User.SmsAddress, Settings.AlertEmailSubject, message.ToString()); Context.AssetAlertLogs.Add(new AssetAlertLog() { AlertDate = date, AssetLogId = entity.Id, AssetAlertId = assetAlert.Id, Description = message, Type = (result.Succeeded ? AssetAlertLogType.SendSmsSuccess : AssetAlertLogType.SendSmsFailure).ToString(), UserId = user.UserId }); Context.SaveChanges(); } } } return(EntityResult.Succeded(1)); }
public JsonResult Move(AssetLog log, string position) { var result = _service.Move(log, position, AppUser); return(Json(result)); }
public void Update(AssetLog assetLog) { _assetLogRepository.Update(assetLog); }
public void Add(AssetLog assetLog) { _assetLogRepository.Add(assetLog); }