Exemplo n.º 1
0
        async public Task <object> ExportWhenBudgetProjectOfEnter(IEnumerable <int> listOfId, string BudgetTypeName)
        {
            if (listOfId.Count() == 0)
            {
                throw new Exception("没有选中项目");
            }

            //后台指定归口部门的过滤条件;
            var filterExtend = new BudgetProjectExtendFilter
            {
                WhereInId = listOfId.ToStringIdWithSpacer()
            };

            var list = (await Db.GetListSpAsync <VBudgetProject, BudgetProjectExtendFilter>(filterExtend)).ToList();
            var listOfExportWhenBudgetProjectOfEnter = new List <ExportWhenBudgetProjectOfEnter>();

            for (int i = 0, count = list.Count(); i < count; i++)
            {
                var vBudgetProject = list[i];
                var exportWhenBudgetProjectOfEnter = Tool.ModelToModel <ExportWhenBudgetProjectOfEnter, VBudgetProject>(vBudgetProject);
                exportWhenBudgetProjectOfEnter.Id = i + 1;
                exportWhenBudgetProjectOfEnter.IsCenterPurchase = vBudgetProject.IsCenterPurchase == true ? "是" : "否";
                exportWhenBudgetProjectOfEnter.BudgetTypeName   = BudgetTypeName;
                listOfExportWhenBudgetProjectOfEnter.Add(exportWhenBudgetProjectOfEnter);
            }
            var fileName = $"导出进入预算项目_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
            var filePath = MyPath.Combine(Env.WebRootPath, "Download");

            var result = MyXls.Export(filePath, listOfExportWhenBudgetProjectOfEnter, fileName);

            return(MyPath.Combine("Download", result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 分页获取预算项目列表,包括每个预算项目的流程信息和包信息.
        /// 对于每个项目,只有相应的归口部门的人可以看到;
        /// </summary>
        /// <param name="paging"></param>
        /// <returns></returns>
        async private Task <object> GetPagingBudgetProjectList(Paging paging, BudgetProjectExtendFilter filterExtend)
        {
            //TODO:仅保留这个地方的使用FilterExtend的方式的规律"只有归口部门"条件,其他的数据过滤都放到tfn里面了,哪种方便日后再说;
            //var filterExtend = Tool.ModelToModel<BudgetProjectExtendFilter, BudgetProjectFilter>(filter);
            filterExtend.RelevantDepartmentId = CurrentUser.DepartmentId;

            var listOfPaging = await Db.GetPagingListSpAsync <VTFNBudgetProject, BudgetProjectExtendFilter>(
                paging,
                filterExtend,
                $"TFNBudgetProject({CurrentUser.Id})");

            var listOfPackage = await Db.GetListSpAsync <VPackageOfBudgetProject, PackageOfBudgetProjectFilter>(
                new PackageOfBudgetProjectFilter()
            {
                WhereInBudgetProjectId = listOfPaging.List.Select(i => i.Id).ToStringIdWithSpacer()
            });

            return(new
            {
                listOfPaging.Total,
                List = from item in listOfPaging.List
                       select new
                {
                    BudgetProject = item,
                    Package = from itemOfPackage in listOfPackage where itemOfPackage.BudgetProjectId.Equals(item.Id) select itemOfPackage,
                }
            });
        }