async public Task <object> GetPagingBudgetProjectOfEnterList(Paging paging, BudgetProjectFilter filter) { var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.State = (int)StepState.Stay; filterExtend.LastStepTemplateId = Config.GetValue <int>("StepTemplateId:BudgetProjectOfEnter"); return(await GetPagingBudgetProjectList(paging, filterExtend)); }
async public Task <object> GetOrderOfProjectOfEnter(BudgetProjectFilter filter, IEnumerable <int> listOfSelectedId, int numberOfTake) { var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.State = (int)StepState.Stay; filterExtend.LastStepTemplateId = Config.GetValue <int>("StepTemplateId:BudgetProjectOfEnter"); filterExtend.RelevantDepartmentId = CurrentUser.DepartmentId; var budgetProjectList = await Db.GetListSpAsync <VTFNBudgetProject, BudgetProjectExtendFilter>(filterExtend, $"TFNBudgetProject({CurrentUser.Id})"); var listOfId = budgetProjectList.Select(i => i.Id); var result = await Db.QuerySpAsync <SPOrderOfProjectOfEnter, OrderOfProjectOfEnter>(new SPOrderOfProjectOfEnter() { listOfId = listOfId.ToPredefindedKeyFieldsList().ToDataTable(), listOfSelectedId = listOfSelectedId.ToPredefindedKeyFieldsList().ToDataTable() }); return(new { TopIn = result.Where(i => i.TotolBudgetAmountByDempartment > 0).Take(numberOfTake), TopNotIn = result.Reverse().Take(numberOfTake) }); }
private async Task <object> GetPagingBudgetProjectListNotInFlowAndCanCombineAndWithPackage <T>(Paging paging, BudgetProjectFilter filter) { //后台指定归口部门的过滤条件; var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.RelevantDepartmentId = CurrentUser.DepartmentId; //返回的始终是VBudgetProject var listOfPaging = await Db.GetPagingListSpAsync <VBudgetProject, BudgetProjectExtendFilter>( paging, filterExtend, typeof(T).Name, orderStr : nameof(VBudgetProject.TotalDeclareAmount)); //注意这里获取的是申报时候的包信息,下面的大意是:由一组预算项目找到对应的包,但是取这组包的申报信息; var listOfPackage = await Db.GetListSpAsync <VPackageOfDeclareProject, 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, } }); }
async public Task <object> GetPagingBudgetProjectListNotInFlowAndWithPackage(Paging paging, BudgetProjectFilter filter) { return(await GetPagingBudgetProjectListNotInFlowAndCanCombineAndWithPackage <VBudgetProjectNotInFlow>(paging, filter)); }
async public Task <object> GetPagingFinishedBudgetProjectOfExecuteList(Paging paging, BudgetProjectFilter filter) { var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.State = (int)StepState.Forward; return(await GetPagingBudgetProjectList(paging, filterExtend)); }
async public Task <object> GetPagingQuitedBudgetProjectOfArgumentList(Paging paging, BudgetProjectFilter filter) { var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.State = (int)StepState.Quit; return(await GetPagingBudgetProjectList(paging, filterExtend)); }
async public Task <object> ExportWhenBudgetProjectOfArgument(BudgetProjectFilter filter, IEnumerable <int> listOfId) { //后台指定归口部门的过滤条件; var filterExtend = Tool.ModelToModel <BudgetProjectExtendFilter, BudgetProjectFilter>(filter); filterExtend.RelevantDepartmentId = CurrentUser.DepartmentId; filterExtend.WhereInId = listOfId.Count() == 0 ? null : listOfId.ToStringIdWithSpacer(); var list = (await Db.GetListSpAsync <VBudgetProjectNotInFlow, BudgetProjectExtendFilter>(filterExtend)).ToList(); var listOfPackage = (await Db.GetListSpAsync <VPackageOfDeclareProject, PackageOfBudgetProjectFilter>( new PackageOfBudgetProjectFilter() { WhereInBudgetProjectId = list.Select(i => i.Id).ToStringIdWithSpacer() })).ToList(); var zipFileName = $"导出待论证项目_{DateTime.Now.ToString("yyyyMMddHHmmss")}"; var zipPathName = MyPath.Combine(Env.WebRootPath, "Download", zipFileName); Directory.CreateDirectory(zipPathName); zipFileName = $"{zipFileName}.zip"; var zipPathFileName = MyPath.Combine(Env.WebRootPath, "Download", zipFileName); var relativeZipPathName = MyPath.Combine("Download", zipFileName); for (int i = 0, countOfList = list.Count(); i < countOfList; i++) { var item = list[i]; var itemName = $"{item.Name}-{item.MergeTypeWhenBudget}"; var zipChildPathName = MyPath.Combine(zipPathName, itemName); Directory.CreateDirectory(zipChildPathName); //如果是集采-货物,则生成一个容纳了各个包为ExportWhenBudgetProjectOfArgumentCaseGoods的excel if (item.IsCenterPurchase && item.ProjectType == "货物") { var packages = from itemOfPackage in listOfPackage where itemOfPackage.BudgetProjectId.Equals(item.Id) select Tool.ModelToModel <ExportWhenBudgetProjectOfArgumentCaseGoods, VPackageOfDeclareProject>(itemOfPackage); MyXls.Export(zipChildPathName, packages, itemName); } else { var packages = (from itemOfPackage in listOfPackage where itemOfPackage.BudgetProjectId.Equals(item.Id) select Tool.ModelToModel <ExportWhenBudgetProjectOfArgumentCaseOther, VPackageOfDeclareProject>(itemOfPackage)).ToList(); for (int j = 0, countOfPackages = packages.Count(); j < countOfPackages; j++) { var itemOfPackage = packages[j]; itemOfPackage.Id = j + 1; //itemOfPackage.Attachment = Path.GetFileName(itemOfPackage.Attachment); System.IO.File.Copy( MyPath.Combine(Env.WebRootPath, itemOfPackage.Attachment), MyPath.Combine(zipChildPathName, $"第{itemOfPackage.Id }包-{Path.GetFileName(itemOfPackage.Attachment)}")); } MyXls.Export(zipChildPathName, packages, itemName); } } ZipFile.CreateFromDirectory(zipPathName, zipPathFileName); return(relativeZipPathName); }