示例#1
0
        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));
        }
示例#2
0
        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)
            });
        }
示例#3
0
        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,
                }
            });
        }
示例#4
0
 async public Task <object> GetPagingBudgetProjectListNotInFlowAndWithPackage(Paging paging, BudgetProjectFilter filter)
 {
     return(await GetPagingBudgetProjectListNotInFlowAndCanCombineAndWithPackage <VBudgetProjectNotInFlow>(paging, filter));
 }
示例#5
0
        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));
        }
示例#6
0
        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));
        }
示例#7
0
        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);
        }