Esempio n. 1
0
        public IHttpActionResult GetPreviewLinkInfo(string businessId)
        {
            var finder = PreviewRelationOperator.Instance.GetModel(businessId);

            finder.DocumentLength = FileUploadHelper.GetContentLength(finder.DocumentByteLength);
            return(BizResult(finder));
        }
Esempio n. 2
0
        /// <summary>
        /// 通用上传文件方法
        /// </summary>
        /// <param name="businessId"></param>
        /// <param name="action"></param>
        /// <param name="fileName"></param>
        /// <param name="fileStream"></param>
        /// <returns></returns>
        public Lib.Model.Attachment CommonUpload(string businessId, string action, string fileName, Stream fileStream)
        {
            fileStream.Seek(0, SeekOrigin.Begin);
            var userInfo   = WebHelper.GetCurrentUser();;
            var fileCode   = FileUploadHelper.UploadFile(fileStream, fileName);
            var attachment = new Lib.Model.Attachment();

            attachment.ID                = Guid.NewGuid().ToString();
            attachment.Name              = fileName;
            attachment.AttachmentPath    = fileCode;
            attachment.BusinessID        = businessId;
            attachment.BusinessType      = action;
            attachment.IsUseV1           = false;
            attachment.CreateDate        = DateTime.Now;
            attachment.CreatorLoginName  = userInfo.LoginName;
            attachment.CreatorName       = userInfo.CNName;
            attachment.IsDeleted         = false;
            attachment.ModifierLoginName = userInfo.LoginName;
            attachment.ModifierName      = userInfo.CNName;
            attachment.ModifyTime        = DateTime.Now;
            attachment.FileSize          = FileUploadHelper.GetContentLength(fileStream.Length);
            return(attachment);
        }
Esempio n. 3
0
        /// <summary>
        /// 读取任务下发后上传的填报数据
        /// </summary>
        /// <param name="businessID"></param>
        /// <param name="stream"></param>
        /// <param name="fullFileName"></param>
        /// <param name="validateTemplate"></param>
        /// <returns></returns>
        public object ReadUploadTaskData(string businessID, Stream stream, string fullFileName, bool validateTemplate = true)
        {
            object        res       = null;
            int           status    = 0;
            int           dataCount = 0;
            var           bytes     = stream.ToBytes();
            LoginUserInfo userinfo  = WebHelper.GetCurrentUser();;


            ExcelEngine engine   = new ExcelEngine();
            Workbook    databook = new Workbook(stream);

            //Lib.Log.LogHelper.Instance.Info("读取至aspose成功");
            string templeteID = engine.GetStringCustomProperty(databook.Worksheets[0], "TempleteID");

            Framework.Core.Log.LogHelper.Instance.Info(string.Format("正在检测excel中的自定义属性,TemplateID:{0}", templeteID));

            var task = TemplateTaskOperator.Instance.GetModel(businessID);

            //Lib.Log.LogHelper.Instance.Info("读取下发任务成功");
            var dcu = DataCollectUserOperator.Instance.GetModel(task.DataCollectUserID);
            var tci = TemplateConfigInstanceOperator.Instance.GetModel(dcu.TemplateConfigInstanceID);

            var configs = TemplateConfigOperator.Instance.GetList(tci.TemplateID, null).ToList();

            var sheetConfigs = TemplateSheetOperator.Instance.GetList(tci.TemplateID).ToList();


            Attachment attach = new Attachment();

            if (templeteID.ToLower() != dcu.TemplateID.ToLower() && validateTemplate)
            {
                Framework.Core.Log.LogHelper.Instance.Info(string.Format("当前获取到的任务TemplateID:{0}", dcu.TemplateID));

                status = -100;

                res = new { Attachment = attach, Status = status };
            }
            else
            {
                try
                {
                    attach.ID = Guid.NewGuid().ToString();
                    var pathIndex = fullFileName.LastIndexOf('\\') >= 0 ? fullFileName.LastIndexOf('\\') + 1 : 0;
                    var fileName  = fullFileName.Substring(pathIndex);
                    stream.Seek(0, SeekOrigin.Begin);

                    //--这里保存的文件格式有问题
                    string fileCode = FileUploadHelper.UploadFileStream(stream, bytes.Length, fileName);

                    attach.Name           = fileName; // fileName.Substring(0, fileName.LastIndexOf('.'));
                    attach.AttachmentPath = fileCode; // System.IO.Path.Combine(DateTime.Now.ToString("yyyyMMdd"), fileID + extName);
                    attach.BusinessID     = businessID;
                    attach.BusinessType   = "UploadTaskData";
                    attach.IsUseV1        = false;

                    attach.CreateDate        = DateTime.Now;
                    attach.CreatorLoginName  = userinfo.LoginName;
                    attach.CreatorName       = userinfo.CNName;
                    attach.IsDeleted         = false;
                    attach.ModifierLoginName = userinfo.LoginName;
                    attach.ModifierName      = userinfo.CNName;
                    attach.ModifyTime        = DateTime.Now;


                    attach.FileSize = FileUploadHelper.GetContentLength(bytes.Length);



                    status = 100;
                    try
                    {
                        var data = TemplateTaskOperator.Instance.ReadTaskData(attach, configs, sheetConfigs);
                        dataCount = data.Sheets.Sum(x => x.Rows.Count);
                        if (dataCount == 0)
                        {
                            res = new { Attachment = attach, Status = -102, DataCount = 0 };
                        }
                        else
                        {
                            AttachmentOperator.Instance.AddAndUpdateModel(attach);
                            res = new { Attachment = attach, Status = status, DataCount = data.Sheets.Select(x => new { SheetName = x.SheetName, DataCount = x.Rows.Count }) };
                        }
                    }
                    catch (Exception e)
                    {
                        Framework.Core.Log.LogHelper.Instance.Error(e);
                        res = new { Attachment = attach, Status = -101, ErrorMessage = e.Message };
                    }
                }
                catch (Exception e)
                {
                    status = 0;
                    Framework.Core.Log.LogHelper.Instance.Error(e);
                    res = new { Attachment = attach, Status = status };
                }
            }
            return(res);
        }