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());
        }
示例#2
0
        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());
        }