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)); }
/// <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, } }); }