public IHttpActionResult UploadWriteOffTpl(string projectId, string flowTable) { var request = HttpContext.Current.Request; var fileCollection = request.Files; if (fileCollection.Count > 0) { _refId = GetRefId(projectId, flowTable); if (_refId.HasValue) { var file = fileCollection[0]; var templateFileName = string.Concat(SiteFilePath.Template_DIRECTORY, "/", SiteFilePath.FAWrite_offTool_Template_X); var fileExtension = Path.GetExtension(file.FileName); if (fileExtension != ".xls" && fileExtension != ".xlsx") { PluploadHandler.WriteErrorMsg("文件类型不正确!"); } if (!ExcelHelper.MatchVersionNumber(templateFileName, file.InputStream)) { PluploadHandler.WriteErrorMsg("上传的是非标准模板,请下载标准模板再上传"); //throw new Exception("上传的是非标准模板,请下载标准模板再上传"); } var name = _refId.Value.ToString() + "WriteOff"; var fileName = string.Format(@"{0}UploadFiles/{1}{2}", HttpContext.Current.Server.MapPath("~/"), name, fileExtension); file.SaveAs(fileName); var fileInfo = new FileInfo(fileName); var importDirector = new ExcelDataImportDirector(fileInfo, ExcelDataImportType.WriteOffAmount); importDirector.FillEntityEvent += FillWriteOffAmount; using (var scope = new TransactionScope()) { importDirector.ParseAndImport(); AddUpdateAttachment(name + fileExtension, flowTable, "WriteOff", fileCollection); scope.Complete(); } } } return(Ok()); }
public void UploadTool() { var context = HttpContext.Current; var files = context.Request.Files; if (files.Count > 0) { using (TransactionScope tranScope = new TransactionScope()) { var file = files[0]; var templateFileName = string.Concat(SiteFilePath.Template_DIRECTORY, "/", SiteFilePath.RenewalTool_Template); if (!ExcelHelper.MatchVersionNumber(templateFileName, file.InputStream)) { throw new Exception("Version not matched!"); } var extetion = Path.GetExtension(file.FileName); var internalName = string.Concat(Guid.NewGuid(), extetion); var fileName = context.Server.MapPath(string.Format("~/UploadFiles/{0}", internalName)); file.SaveAs(fileName); FileInfo fileInfo = new FileInfo(fileName); ExcelDataImportDirector excelDirector = new ExcelDataImportDirector(fileInfo, ExcelDataImportType.RenewalTool); var finOutput = RenewalToolFinMeasureOutput.GetByToolId(this.Id); if (finOutput == null) { finOutput = new RenewalToolFinMeasureOutput(); finOutput.ToolId = this.Id; finOutput.Id = Guid.NewGuid(); } excelDirector.ExcelData.Entity = finOutput; excelDirector.ParseAndImport(); var att = Attachment.FirstOrDefault(e => e.RefTableID == this.Id.ToString() && e.TypeCode == "RenewalTool"); bool hasTool = true; if (att == null) { hasTool = false; att = new Attachment(); att.ID = Guid.NewGuid(); } att.TypeCode = "RenewalTool"; att.RefTableID = this.Id.ToString(); att.RefTableName = this.TableName; att.Name = "Renewal Tool"; att.Extension = extetion; att.RelativePath = "/"; att.InternalName = internalName; att.ContentType = "microsoft/excel"; att.Length = file.ContentLength; att.CreatorID = ClientCookie.UserCode; att.CreatorNameENUS = ClientCookie.UserNameENUS; att.CreatorNameZHCN = ClientCookie.UserNameZHCN; att.CreateTime = DateTime.Now; att.RequirementId = new Guid("CE111514-65E3-45C7-AD22-DF4937B1686E"); if (hasTool) { att.Update(); } else { att.Add(); } tranScope.Complete(); } } else { throw new Exception("Please select Renewal Tool to upload"); } }
public IHttpActionResult UploadClosureWOCheckListTemplate(string projectid) { var request = HttpContext.Current.Request; var fileCollection = request.Files; if (fileCollection.Count > 0) { _refId = GetRefId(projectid, ClosureWOCheckList.TableName); if (_refId.HasValue) { var file = fileCollection[0]; var fileExtension = Path.GetExtension(file.FileName); var name = _refId.Value.ToString() + "WriteOff"; var fileName = string.Format(@"{0}UploadFiles/{1}{2}", HttpContext.Current.Server.MapPath("~/"), name, fileExtension); file.SaveAs(fileName); if (!IsMeetVersion(ExcelDataInputType.ClosureWOCheckList.ToString(), fileName)) { PluploadHandler.WriteErrorMsg("上传的是非标准模板,请下载标准模板再上传"); } var fileInfo = new FileInfo(fileName); var importDirector = new ExcelDataImportDirector(fileInfo, ExcelDataImportType.ClosureWOCheckList); decimal RE_NBV = 0; decimal.TryParse(importDirector.GetCellValue(9, "E"), out RE_NBV); decimal LHI_NBV = 0; decimal.TryParse(importDirector.GetCellValue(10, "E"), out LHI_NBV); decimal ESSD_NBV = 0; decimal.TryParse(importDirector.GetCellValue(11, "E"), out ESSD_NBV); decimal Equipment_Transfer = 0; decimal.TryParse(importDirector.GetCellValue(16, "E"), out Equipment_Transfer); importDirector.FillEntityEvent += FillClosureWOCheckList; using (TransactionScope scope = new TransactionScope()) { importDirector.ParseAndImport(); AddUpdateAttachment(name + fileExtension, ClosureWOCheckList.TableName, "Template", fileCollection); var currentNode = NodeInfo.GetCurrentNode(projectid, FlowCode.Closure_WOCheckList); var newNode = NodeInfo.GetNodeInfo(NodeCode.Closure_WOCheckList_ResultUpload); if (newNode.Sequence > currentNode.Sequence) { ProjectInfo.FinishNode(projectid, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_DownLoadTemplate); ProjectInfo.FinishNode(projectid, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_WriteOffData); ProjectInfo.FinishNode(projectid, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_ResultUpload); } scope.Complete(); } if (_woCheckList != null) { var closureToolHandler = new ClosureTool(); var oldRE_NBV = _woCheckList.RE_NBV ?? 0; var oldLHI_NBV = _woCheckList.LHI_NBV ?? 0; var oldESSD_NBV = _woCheckList.ESSD_NBV ?? 0; var oldEquipmentTransfer = _woCheckList.EquipmentTransfer ?? 0; if ((RE_NBV != oldRE_NBV) || (LHI_NBV != oldLHI_NBV) || (ESSD_NBV != oldESSD_NBV) || (Equipment_Transfer != oldEquipmentTransfer)) { var __woCheckList = ClosureWOCheckList.FirstOrDefault(e => e.Id.ToString().Equals(_woCheckList.Id.ToString())); if (__woCheckList != null) { __woCheckList.RefreshClosureTool = true; __woCheckList.Update(); } //var closureToolController = new ClosureToolController(); //var toolEntity = ClosureTool.Get(projectid); //if (toolEntity != null) //{ // //判断是否满足生成closureTools的条件 // if (toolEntity.EnableReGenClosureTool()) // { // closureToolController.GenClosureTool(toolEntity.Id, toolEntity.UserAccount, toolEntity.UserNameZHCN, toolEntity.UserNameENUS); // closureToolController.CallClosureTool(toolEntity.Id); // //通知Finance Specialist和Asset Actor // var closureInfo = ClosureInfo.FirstOrDefault(i => i.ProjectId == projectid); // List<string> receiverList = new List<string>(); // receiverList.Add(closureInfo.AssetActorAccount); // receiverList.Add(closureInfo.FinanceAccount); // var notificationMsg = new NotificationMsg() // { // FlowCode = FlowCode.Closure_WOCheckList, // ProjectId = projectid, // SenderCode = ClientCookie.UserCode, // Title = "由于WO Tool数据发生变化,Closure Tool文件已自动更新", // RefId = _woCheckList.Id, // UsCode = _woCheckList.USCode, // IsSendEmail = false, // ReceiverCodeList = receiverList // }; // Notification.Send(notificationMsg); // } //} } } } } return(Ok()); }