public async Task <int> SaveEqpHistory(EqpHistory eqp) { return(await WithConnection(async c => { string sql = " insert into equipment_history " + " values (0,@EqpID,@Type,@WorkingOrder,@ShowName,@CreatedTime,@CreatedBy); "; return await c.ExecuteAsync(sql, eqp); })); }
public async Task <ApiResult> UpdatePMEntity(PMEntity pmEntity) { ApiResult ret = new ApiResult(); EqpHistory eqp = new EqpHistory(); DateTime dt = DateTime.Now; pmEntity.UpdatedBy = _userID; pmEntity.UpdatedTime = dt; pmEntity.Status = (int)PMStatus.Editing; if (pmEntity.IsFinished) { pmEntity.Status = (int)PMStatus.Finished; if (pmEntity.Eqp != null) { eqp.CreatedBy = _userID; eqp.CreatedTime = dt; eqp.EqpID = (int)pmEntity.Eqp; eqp.Type = (int)EqpHistoryType.Maintenance; eqp.ShowName = pmEntity.Title; eqp.WorkingOrder = pmEntity.ID; } } try { using (TransactionScope scope = new TransactionScope()) { //保存excel PMModule module = await _repo.GetModuleByIDEasy(pmEntity.Module); PMEntity oldEntity = await _repo.GetEntityByID(pmEntity.ID); string modulePath, entityPath, fileName; string fileType = Path.GetExtension(module.FileName); entityPath = oldEntity.FilePath; if (File.Exists(entityPath)) { File.Delete(entityPath); } if (pmEntity.Module != oldEntity.Module) { //复制模板为实例 modulePath = Path.GetDirectoryName(module.FilePath); entityPath = modulePath.Substring(0, modulePath.Length - 6) + "Entity\\"; fileName = pmEntity.Title + dt.ToString("yyyyMMdd"); fileType = Path.GetExtension(module.FileName); entityPath += fileName + fileType; } File.Copy(module.FilePath, entityPath); SaveExcelEntity(entityPath, fileType, pmEntity); if (pmEntity.Module != oldEntity.Module || pmEntity.IsPlanChanged || pmEntity.Status != oldEntity.Status) { pmEntity.FilePath = entityPath; ret.data = await _repo.UpdatePMEntity(pmEntity); } if (pmEntity.IsPlanChanged) { await _repo.DelPMEntityMonthDetail(new string[] { pmEntity.ID.ToString() }); List <PMEntityMonthDetail> details = new List <PMEntityMonthDetail>(); foreach (int item in pmEntity.PMMonthDetails) { PMEntityMonthDetail detail = new PMEntityMonthDetail(); detail.MonthDetail = item; detail.PMEntity = pmEntity.ID; details.Add(detail); } ret.data = await _repo.SavePMEntityMonthDetail(details); } if (pmEntity.IsFinished) { await _repo.SaveEqpHistory(eqp); } scope.Complete(); } return(ret); } catch (Exception ex) { ret.code = Code.Failure; ret.msg = ex.Message; return(ret); } }