Beispiel #1
0
        public async Task <ResultPageDto <List <Role> > > RoleList(RoleDto dto)
        {
            var resultPage = new ResultPageDto <List <Role> >();

            //resultPage.pi=page.pi;
            //resultPage.ps=page.ps;
            resultPage.total = await db.Role.CountAsync();

            if (resultPage.total == 0)
            {
                return(resultPage);
            }
            var Role = db.Role.Include(x => x.RolePower).ThenInclude(x => x.Power).Where(o => 1 == 1);

            if (!string.IsNullOrEmpty(dto.Name) && dto.Name != "ascend" && dto.Name != "descend")
            {
                Role = Role.Where(Company => Company.Name.Contains(dto.Name));
            }
            else if (dto.Name == "ascend")
            {
                Role = Role.OrderBy(m => m.Name);
            }
            else if (dto.Name == "ascend")
            {
                Role = Role.OrderByDescending(m => m.Name);
            }
            else
            {
            }
            resultPage.list = await Role.Skip(dto.ps *(dto.pi - 1)).Take(dto.ps).ToListAsync();

            return(resultPage);
        }
        public Task <ResultPageDto> GetLogs(string type)
        {
            var scount = 0;

            var list = new List <File>();

            if (type == "ERROR")
            {
                //获取错误的文档数
                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_hostingEnvironment.ContentRootPath + erroraddress);

                if (dir.Exists)
                {
                    scount = dir.GetFiles().Length;
                    foreach (var f in dir.GetFiles())
                    {
                        var temp = new File()
                        {
                            FilePath = f.FullName, filename = f.Name
                        };
                        list.Add(temp);
                    }
                    list = list.OrderByDescending(a => a.FilePath).ToList();
                }
            }
            else
            if (type == "WARN")
            {
                //获取警告的文档数
                System.IO.DirectoryInfo dirw = new System.IO.DirectoryInfo(_hostingEnvironment.ContentRootPath + warnaddress);

                if (dirw.Exists)
                {
                    scount = dirw.GetFiles().Length;
                    foreach (var f in dirw.GetFiles())
                    {
                        var temp = new File()
                        {
                            FilePath = f.FullName, filename = f.Name
                        };
                        list.Add(temp);
                    }
                    list = list.OrderByDescending(a => a.FilePath).ToList();
                }
            }
            var result = new ResultPageDto()
            {
                code  = 0,
                count = scount,
                data  = list
            };

            //HttpContext.Response(Newtonsoft.Json.JsonConvert.SerializeObject(result));

            //HttpContextBase.Response.OutputStream.Write(Newtonsoft.Json.JsonConvert.SerializeObject(result), 0, Newtonsoft.Json.JsonConvert.SerializeObject(result).Length);
            //HttpContext.Response.ContentType = "text/plain";
            //HttpContext.Response.End();
            return(Task.FromResult(result));
        }
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var query = await GetQueryable(request);

            var searchKeys = request.SearchKeyDic;

            var pageResult = query.GroupBy(o => new { o.Material, o.Unit }).PageResult(request.Page, request.Limit);

            var groupResult = await pageResult.Queryable.ToListAsync();

            var data = new List <object>();

            foreach (var group in groupResult)
            {
                var material = group.Key.Material;
                var unit     = group.Key.Unit;
                //获取出库总数量
                var outNumber = group.Sum(o => o.OutNumber);
                var fee       = group.Sum(o => o.Price * o.Discount * (o.OutNumber));
                //todo:需要减掉退货数量
                var materialSellBackQuery = Resolve <MaterialSellBackManager>().GetAll().Where(o => o.MaterialId == material.Id && o.UnitId == unit.Id);
                if (searchKeys.ContainsKey("startDate"))
                {
                    materialSellBackQuery = materialSellBackQuery.Where(o => o.CreationTime.Date >= DateTime.Parse(searchKeys["startDate"]));
                }
                if (searchKeys.ContainsKey("endDate"))
                {
                    materialSellBackQuery = materialSellBackQuery.Where(o => o.CreationTime.Date <= DateTime.Parse(searchKeys["endDate"]));
                }
                var backNumber = materialSellBackQuery.Sum(o => o.BackNumber);
                var backFee    = materialSellBackQuery.Sum(o => o.BackNumber * o.Price * o.Discount);
                data.Add(new
                {
                    material.Name,
                    unit?.UnitName,
                    MaterialTypeName = material.MaterialType?.DisplayName,
                    material.Specification,
                    material.MeasureMentUnit,
                    MaterialNature = material.MaterialNature.ToString(),
                    outNumber      = outNumber - backNumber,
                    fee            = (fee - backFee).ToString("N2"),
                });
            }

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
        public virtual async Task <ResultPageDto> GetAll(RequestPageDto request)
        {
            var matches = await Manager.Repository.GetAll().Select(o => new { o.Id, o.Name }).ToListAsync();

            var result = new ResultPageDto()
            {
                code  = 0,
                count = matches.Count,
                data  = matches
            };

            return(result);
        }
        public virtual async Task <ResultPageDto> GetAll(RequestPageDto request)
        {
            var specialities = (await Manager.Repository.GetAll().Select(o => new { o.Id, o.Name, o.Sort }).ToListAsync()).OrderBy(o => o.Sort);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = specialities.Count(),
                data  = specialities
            };

            return(result);
        }
        public virtual async Task <ResultPageDto> GetMenuDetailPermissions(string type, int id, string menu)
        {
            var dtoList = new List <PermissionDto>();

            if (string.IsNullOrEmpty(menu))
            {
            }
            else
            {
                var menuName          = menu.Substring(menu.LastIndexOf('.') + 1);
                var modulePermissions = (_moduleInfoManager.GetAllModulePermissions()).Where(o => o.Name.StartsWith($"Module.{menuName}."));//获取对应的模块所有权限

                Action <Permission, PermissionDto> action = (a, b) => { };
                if (type == "Roles")
                {
                    action = (permissson, dto) => { dto.IsGranted = _roleManager.IsGrantedAsync(id, permissson).Result; };
                }
                else if (type == "User")
                {
                    action = (permissson, dto) => { dto.IsGranted = _userManager.IsGrantedAsync(id, permissson).Result; };
                }
                dtoList = modulePermissions.Select(o => {
                    var dto = new PermissionDto()
                    {
                        Name = o.Name, DisplayName = o.DisplayName.Localize(_localizationContext)
                    };
                    action(o, dto);
                    //if (type == "Roles")
                    //{
                    //    dto.IsGranted = _roleManager.IsGrantedAsync(id, o).Result;
                    //}else if (type == "Staff")
                    //{
                    //    dto.IsGranted = _userManager.IsGrantedAsync(id, o).Result;
                    //}

                    return(dto);
                }).ToList();
            }

            var result = new ResultPageDto()
            {
                code  = 0,
                count = dtoList.Count,
                data  = dtoList
            };

            return(result);
        }
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var data = (await pageResult.Queryable.Include(o => o.CreatorUser).OrderByDescending(o => o.CreationTime).ToListAsync())
                       .Select(o => new { o.Id, o.DictionaryName, Creator = o.CreatorUser.Name, CreationTime = o.CreationTime.ToString("yyyy-MM-dd HH:mm"), FieldCount = o.GetDictionary().Count });

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #8
0
        public async virtual Task <ResultPageDto> GetCharger(int majorId)
        {
            var manager  = Manager as MajorManager;
            var chargers = await manager.GetMajorChargers(majorId);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = chargers.Count,
                data  = chargers.Select(o => {
                    return(new { o.Id, o.Name, o.UserName, OrganizationName = o.Organization?.BriefName });
                })
            };

            return(result);
        }
        public async virtual Task <ResultPageDto> GetCompanyByKey(string keyword, int page = 1, int limit = 50)
        {
            //接口地址
            string apiUrl = $"http://mes.imould.me/Ajax/ajaxapi.ashx?action=GetYunCompanyList&page={page}&pagesize={limit}&companyName=" + keyword;

            var pageResult = await Senparc.CO2NET.HttpUtility.Get.GetJsonAsync <CloudPageResultDto <CloudCompanyDto> >(apiUrl);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.Data.Totle,
                data  = pageResult.Data.ObjList
            };

            return(result);
        }
Beispiel #10
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            //   var data = (await pageResult.Queryable.ToListAsync()).ConvertAll(PageResultConverter);

            var tenants = await pageResult.Queryable.ToListAsync();

            var data = new List <object>();

            foreach (var q in tenants)
            {
                var pareDto         = q.MapTo <PartDto>();
                var materialRequire = Resolve <MaterialRequireManager>().GetAll().Where(o => o.RequireSource == "BOM" && o.RequireSourceId == q.Id && o.ProjectId == q.ProjectId).FirstOrDefault();
                if (materialRequire != null)
                {
                    var status = "未采购";
                    if (materialRequire.IsUsed)
                    {
                        status = "已领用";
                    }
                    else if (materialRequire.IsReceived)
                    {
                        status = "已入库";
                    }
                    else if (materialRequire.IsBuyed)
                    {
                        status = "已采购";
                    }
                    else if (materialRequire.IsBuyed)
                    {
                        status = "已询价";
                    }
                    pareDto.MaterialStatus = status;
                }
                data.Add(pareDto);
            }
            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #11
0
        public virtual async Task <ResultPageDto> GetSimplePageResult(RequestPageDto requestPageDto)
        {
            var pageResult = await GetPageResultQueryable(requestPageDto);

            var data = await pageResult.Queryable
                       .Select(o => new { o.Id, o.Name, o.UserName, o.PhoneNumber })
                       .ToListAsync();

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #12
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var data = await pageResult.Queryable.Include(o => o.CreatorUser).Include(o => o.ColumnInfos)

                       .Select(o => new { o.Id, o.ModuleKey, o.ModuleName, o.IsInterModule, Creator = o.CreatorUser.Name, CreationTime = o.CreationTime.ToString("yyyy-MM-dd HH:mm"), ColumnCount = o.ColumnInfos.Count, BtnCount = o.Buttons.Count }).ToListAsync();

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #13
0
        public async virtual Task <ResultPageDto> GetExpert(int majorId)
        {
            var manager = Manager as MajorManager;
            var experts = await manager.GetMajorExperts(majorId);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = experts.Count,
                data  = experts.Select(o => {
                    var majorExpert = _majorExpertRepository.Single(e => e.MajorId == majorId && e.UserId == o.Id);
                    return(new { o.Id, o.Name, o.UserName, OrganizationName = o.Organization?.BriefName, majorExpert.MajorExpertRank, MajorExpertId = majorExpert.Id });
                })
            };

            return(result);
        }
        /// <summary>
        /// 分页返回报工记录
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            //显示已删除的记录
            using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete))
            {
                var query = await GetPageResultQueryable(request);

                var reports = await query.Queryable.ToListAsync();

                var data = reports.Select(o => {
                    return(new
                    {
                        o.Id,
                        o.ProcessTask?.Part?.Project?.ProjectSN,
                        o.ProcessTask?.Part?.PartName,
                        o.ProcessTask?.Part?.PartSN,
                        o.ProcessTask?.Part?.PartSpecification,
                        o.ProcessTask?.Part?.PartNum,
                        o.ProcessTask?.ProcessSN,
                        o.ProcessTask?.Supplier?.UnitName,
                        o.ProcessTask?.ProcessType?.ProcessTypeName,
                        o.ProcessTask?.ProjectCharger,
                        TaskId = o.ProcessTask?.Id,
                        RequireDate = o.ProcessTask?.RequireDate?.ToString("yyyy-MM-dd"),
                        AppointDate = o.ProcessTask?.AppointDate?.ToString("yyyy-MM-dd"),
                        ReporterName = o.Reporter?.Name,
                        ReportType = o.ReportType.ToString(),
                        ReportTime = o.ReportTime.ToString("yyyy-MM-dd HH:mm:ss"),
                        CreationTime = o.CreationTime.ToString("yyyy-MM-dd HH:mm:ss"),
                        o.Remarks,
                        o.Files,
                        o.IsDeleted
                    });
                });

                var result = new ResultPageDto()
                {
                    code  = 0,
                    count = query.RowCount,
                    data  = data
                };

                return(result);
            }
        }
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var data = (await pageResult.Queryable.Include(o => o.Match).ToListAsync())
                       .Select(o => {
                return(new { o.Id, MatchName = o.Match.Name, o.Identifier, o.Year, o.Remarks, o.MatchInstanceStatus, o.DataProjectPath, o.DataReviewPath, o.MatchInstanceDisplayMode });
            });


            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
        public virtual async Task <ResultPageDto> GetFormDesignPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            pageResult.Queryable = pageResult.Queryable.Include(o => o.Match).Include(o => o.Major).Include(o => o.SubMajor);
            var data = (await pageResult.Queryable.ToListAsync())
                       .Select(o => {
                return(new { o.Id, MatchName = o.Match.Name, MajorName = o.Major.BriefName, SubMajorName = o.SubMajor != null ? o.SubMajor.BriefName : "-", o.MatchResourceStatus });
            });


            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #17
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var data = (await pageResult.Queryable.Include(o => o.Organization).Include(o => o.Specialities).ToListAsync())
                       .Select(o => {
                var roles        = UserManager.GetRolesAsync(o).Result;
                var specialities = UserManager.GetSpecialitisAsync(o).Result;
                return(new { o.Id, o.Name, o.UserName, o.IsActive, RoleName = string.Join(",", roles.Select(r => r.DisplayName)), OrganizationName = o.Organization?.BriefName, Specialities = specialities.Select(s => s.Name) });
            });


            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #18
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            pageResult.Queryable = pageResult.Queryable.Include(o => o.Match).Include(o => o.Major);
            //只查询针对赛事的奖项
            var data = (await pageResult.Queryable.ToListAsync())
                       .Select(o => {
                return(new { MatchName = o.Match.Name, o.Id, o.PrizeName, MajorName = o.Major.BriefName, o.IsActive, o.PrizeType, o.Remarks });
            });


            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #19
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var query = await GetQueryable(request);


            var pageResult = query.GroupBy(o => new { o.Material, o.Unit }).PageResult(request.Page, request.Limit);

            var groupResult = await pageResult.Queryable.ToListAsync();

            var data = new List <object>();

            foreach (var group in groupResult)
            {
                var material = group.Key.Material;
                var unit     = group.Key.Unit;
                //获取入库总数量
                var buyNumber = group.Sum(o => o.BuyNumber - o.BackNumber);
                var fee       = group.Sum(o => o.Price * o.Discount * (o.BuyNumber - o.BackNumber));
                data.Add(new
                {
                    material.Name,
                    unit.UnitName,
                    MaterialTypeName = material.MaterialType?.DisplayName,
                    material.Specification,
                    material.MeasureMentUnit,
                    MaterialNature = material.MaterialNature.ToString(),
                    buyNumber,
                    fee = fee.ToString("N2"),
                });
            }

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #20
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var materials = await pageResult.Queryable.ToListAsync();

            var data = new List <object>();

            foreach (var material in materials)
            {
                //获取订货总数量及库存数量
                //var sellNumber = await baseQuery.Where(o => o.MaterialId == material.Id).SumAsync(o => o.SellNumber);
                //var outNumber = await baseQuery.Where(o => o.MaterialId == material.Id).SumAsync(o => o.OutNumber);
                //var storeNumber = await StoreMaterialManager.GetAll().Where(o => o.MaterialId == material.Id).SumAsync(o => o.Number);
                //data.Add(new
                //{
                //    material.Name,
                //    MaterialTypeName = material.MaterialType?.DisplayName,
                //    material.Specification,
                //    material.MeasureMentUnit,
                //    MaterialNature=material.MaterialNature.ToString(),
                //    sellNumber,
                //    outNumber,
                //    storeNumber
                //});
                data.Add(_summarys.Single(o => o.Id == material.Id));
            }

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #21
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var pageResult = await GetPageResultQueryable(request);

            var data = await pageResult.Queryable
                       .Select(o => new {
                o.Id,
                o.Title,
                CreationTime         = o.CreationTime.ToString("yyyy-MM-dd HH:mm"),
                LastModificationTime = o.LastModificationTime != null? o.LastModificationTime.Value.ToString("yyyy-MM-dd HH:mm"):"",
                PublishTime          = o.PublishTime != null ? o.PublishTime.Value.ToString("yyyy-MM-dd HH:mm") : "",
                PublishTimeShort     = o.PublishTime != null ? o.PublishTime.Value.ToString("yyyy-MM-dd") : "",
                o.NoticeStatus
            }).ToListAsync();

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #22
0
        public virtual async Task <ResultPageDto> GetRemindTacticPageResult(RequestPageDto request)
        {
            var manager = Manager as TacticManager;
            var query   = await GetPageResultQueryable(request);

            query.Queryable = query.Queryable.Where(o => o.TacticType == TacticType.RemindTactic);

            var tactics = await query.Queryable.ToListAsync();

            var data = tactics.Select(o => {
                var tacticPersons = manager.GetTacticReminders(o.Id).Result;
                var tacticInfo    = o.RemindTacticInfo;
                return(new
                {
                    o.Id,
                    o.IsActive,
                    o.TacticName,
                    tacticInfo.DynamicRemindPoster,
                    tacticInfo.DynamicRemindCraftsMan,
                    tacticInfo.DynamicRemindProjectCharger,
                    tacticInfo.DynamicRemindChecker,
                    tacticInfo.DynamicRemindVerifier,
                    tacticInfo.DynamicRemindCustomer,
                    Persons = tacticPersons.Select(p => new { p.Id, p.Name })
                });
            });

            var result = new ResultPageDto()
            {
                code  = 0,
                count = query.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #23
0
        public virtual async Task <ResultPageDto> GetProcessSummaryPageResult(RequestPageDto request)
        {
            var query = await GetPageResultQueryable(request);

            var processTypes = await ProcessTypeAppService.GetUsedProcessTypes();

            var projects = await query.Queryable.ToListAsync();

            //var data = projects.Select(o => {
            //    var dic = new Dictionary<string, object>()
            //    {
            //         {"Id",o.Id},
            //        { "ProjectSN",o.ProjectSN},
            //        {"ProjectName",o.ProjectName }
            //    };
            //    return dic;
            //});
            var data    = new List <Dictionary <string, object> >();
            var manager = Manager as MESProjectManager;

            //是否强制回单
            //var mustReturnFile = await SettingManager.GetSettingValueAsync(Master.Configuration.MESSettingNames.MustReturnFileBeforeCheck) == "true";
            foreach (var project in projects)
            {
                var dic = await manager.GetProjectProcessSummary(project);

                #region 原有非缓存方式代码

                //var dic = new Dictionary<string, object>()
                //{
                //     {"Id",project.Id},
                //    { "ProjectSN",project.ProjectSN},
                //    {"ProjectName",project.ProjectName }
                //};
                ////var dic = data.Single(o => Convert.ToInt32(o["Id"]) == project.Id);
                //var feeTotal = 0M;
                //var innerFeeTotal = 0M;
                //var outerFeeTotal = 0M;
                //var hoursTotal = 0M;
                //var taskNumberTotal = 0;
                //var NGNumberTotal = 0;
                //var delayNumberTotal = 0M;
                //foreach (var processType in processTypes)
                //{
                //    var taskQuery = ProcessTaskManager.GetAll()
                //        .Where(t => t.Part.ProjectId == project.Id && t.ProcessTypeId == processType.Id && t.ProcessTaskStatus!=ProcessTaskStatus.Inputed);
                //    //强制回单的增加查询条件
                //    //if (mustReturnFile)
                //    //{
                //    //    taskQuery = taskQuery.Where($"Status!=null and Status.Object.Contains(\"{ProcessTask.Status_Verify}\")");
                //    //}
                //       // .WhereIf(mustReturnFile, t =>t.Status!=null && t.Status.Object!=null && t.Status.Object.Contains(ProcessTask.Status_Verify))
                //    //获取实际金额
                //    var fee = taskQuery.Sum(t => t.Fee);
                //    feeTotal += fee??0;
                //    dic.Add("ProcessType_" + processType.Id+"_Fee", fee?.ToString("0.00"));
                //    //厂内金额
                //    var innerFee = taskQuery.Where($"Status!=null and Status.Object.Contains(\"{ProcessTask.Status_Inner}\")").Sum(t => t.Fee);
                //    innerFeeTotal += innerFee ?? 0;
                //    dic.Add("ProcessType_" + processType.Id + "_InnerFee", innerFee?.ToString("0.00"));
                //    //厂外金额
                //    outerFeeTotal += ((fee ?? 0) - (innerFee ?? 0));
                //    dic.Add("ProcessType_" + processType.Id + "_OuterFee", ((fee ?? 0) - (innerFee ?? 0)).ToString("0.00"));
                //    //实际工时
                //    var hours = taskQuery.Sum(t => t.ActualHours);
                //    hoursTotal += hours ?? 0;
                //    dic.Add("ProcessType_" + processType.Id+"_ActualHours", hours?.ToString("0.00"));
                //    //总数
                //    var taskNumber = taskQuery.Count();
                //    taskNumberTotal += taskNumber;
                //    dic.Add("ProcessType_" + processType.Id + "_TaskNumber", taskNumber.ToString());
                //    //不合格数
                //    var NGNumber = taskQuery.Where(t => MESDbContext.GetJsonValueNumber(t.Property, "$.QuanlityType") == 2).Count();
                //    NGNumberTotal += NGNumber;
                //    dic.Add("ProcessType_" + processType.Id + "_NGNumber", NGNumber.ToString());
                //    //延迟数
                //    //var delayNumber = taskQuery.Where("(Convert.ToDateTime(RequireDate)-Convert.ToDateTime(EndDate==null?DateTime.Now.ToString():EndDate.ToString())).TotalDays<0  and RequireDate!=null").Count();
                //    //貌似不能直接用ef core查询
                //    var delayNumber =await DynamicQuery.SingleAsync<int?>($"select sum(datediff( case when enddate is null then NOW() else enddate end,requiredate)) from {nameof(ProcessTask)} where requiredate is not null and datediff( case when enddate is null then NOW() else enddate end,requiredate)>0 and ProcessTaskStatus!=0 and processTypeId={processType.Id} and partid in (select id from part where projectid={project.Id} and isdeleted=0) and isdeleted=0");
                //    //var delayNumber = taskQuery.Where("(Convert.ToDateTime(RequireDate)-Convert.ToDateTime(EndDate)).TotalDays<0  and RequireDate!=null and EndDate!=null").Sum(o=> (o.EndDate.Value-o.StartDate.Value).TotalDays);
                //    delayNumberTotal += delayNumber??0;
                //    dic.Add("ProcessType_" + processType.Id + "_DelayNumber", delayNumber.ToString());
                //}
                //dic.Add("FeeTotal", feeTotal.ToString("0.00"));
                //dic.Add("InnerFeeTotal", innerFeeTotal.ToString("0.00"));
                //dic.Add("OuterFeeTotal", outerFeeTotal.ToString("0.00"));
                //dic.Add("HoursTotal", hoursTotal.ToString("0.00"));
                //dic.Add("TaskNumberTotal", taskNumberTotal.ToString());
                //dic.Add("NGNumberTotal", NGNumberTotal.ToString());
                //dic.Add("DelayNumberTotal", delayNumberTotal.ToString("0.00"));

                #endregion
                data.Add(dic);
            }



            var result = new ResultPageDto()
            {
                code  = 0,
                count = query.RowCount,
                data  = data
            };

            return(result);
        }
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            ModuleInfo moduleInfo = await ModuleInfo(request);

            //如果有过滤字段则需要返回过滤字段对应的数据
            if (!string.IsNullOrEmpty(request.FilterColumns))
            {
                var filterColumns = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(request.FilterColumns);
                var query         = await GetQueryable(request);

                var fitlerColumnResult = await GetFilterColumnsResult(moduleInfo, filterColumns, query, limit : 100);

                return(new ResultPageDto()
                {
                    data = fitlerColumnResult
                });
            }
            //var query =await GetBaseQuery(request);
            ////五种查询
            ////1.where里的查询是直接lamda查询
            //if (!request.Where.IsNullOrWhiteSpace())
            //{
            //    query = query.Where(request.Where);
            //}
            ////2.高级查询,通过高级查询表单提交过来的数据
            //if (!request.SearchCondition.IsNullOrWhiteSpace())
            //{
            //    query = DynamicSearchParser.Parse<TEntity>(request.SearchCondition, moduleInfo, query);
            //}
            ////3.内置查询,写死在页面上的查询过滤
            //if (!request.SearchKeys.IsNullOrWhiteSpace())
            //{
            //    query = await BuildSearchQueryAsync(Newtonsoft.Json.JsonConvert.DeserializeObject<IDictionary<string, string>>(request.SearchKeys), query as IQueryable<TEntity>);
            //}
            ////4.表头过滤
            //if (!request.TableFilter.IsNullOrWhiteSpace())
            //{
            //    query = await BuildTableFilterQueryAsync(Newtonsoft.Json.JsonConvert.DeserializeObject<List<FilterColumnDto>>(request.TableFilter), query as IQueryable<TEntity>);
            //}
            ////5.关键字查询,一般用于字段引用时的下拉查询
            //if (!request.Keyword.IsNullOrEmpty())
            //{
            //    query = await BuildKeywordQueryAsync(request.Keyword, query as IQueryable<TEntity>);
            //}
            //if (!request.OrderField.IsNullOrWhiteSpace())
            //{
            //    query = DynamicOrderParser.Parse<TEntity>(request.OrderField, request.OrderType?.ToLower() == "asc" ? SortType.Asc : SortType.Desc, moduleInfo, query);
            //}
            //else
            //{
            //    //默认排序
            //    if (moduleInfo.SortField != "Id")
            //    {
            //        query = DynamicOrderParser.Parse<TEntity>(moduleInfo.SortField, moduleInfo.SortType, moduleInfo, query);
            //    }
            //    else
            //    {
            //        query = query.OrderBy($"{moduleInfo.SortField} {moduleInfo.SortType.ToString()}");
            //    }


            //}
            //var pageResult = query.PageResult(request.Page, request.Limit);
            var pageResult = await GetPageResultQueryable(request);

            var dataResult = await ModuleManager.GetModuleDataListAsync(moduleInfo, pageResult.Queryable);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = pageResult.RowCount,
                data  = dataResult.ToList().ConvertAll(ModulePageResultConverter)
            };

            return(result);
        }
Beispiel #25
0
        public override async Task <ResultPageDto> GetPageResult(RequestPageDto request)
        {
            var query = await GetPageResultQueryable(request);

            var tenants = await query.Queryable.ToListAsync();

            var data = new List <object>();

            foreach (var o in tenants)
            {
                //var count = await ProcessTaskRepository.GetAll().CountAsync();
                //var taskCount=await ProcessTaskRepository.GetAll()
                //    .Where(p => MESDbContext.GetJsonValueNumber(p.Supplier.Property, "$.TenantId") ==o.Id)
                //    .CountAsync();
                //var reportCount=await ProcessTaskReportRepository.GetAll()
                //    .Where(p=> MESDbContext.GetJsonValueNumber(p.ProcessTask.Supplier.Property, "$.TenantId") == o.Id)
                //      .CountAsync();
                var lastLogin = await UserLoginAttemptRepository.GetAll().IgnoreQueryFilters().Where(u => u.TenantId == o.Id && u.Result == LoginResultType.Success).LastOrDefaultAsync();

                data.Add(new
                {
                    o.Id,
                    o.TenancyName,
                    o.Name,
                    o.IsActive,
                    Edition       = o.Edition?.DisplayName,
                    ExpireDate    = o.GetPropertyValue <DateTime?>("ExpireDate"),
                    LastLoginTime = lastLogin?.CreationTime.ToString("yyyy-MM-dd HH:mm"),
                    //TaskNumber = ProcessTaskRepository.Count(p => p.TenantId == o.Id && p.ProcessTaskStatus != ProcessTaskStatus.Inputed),
                    //ReportNumber = ProcessTaskReportRepository.Count(p => p.TenantId == o.Id),
                    //TaskCount = taskCount,
                    //ReportCount = reportCount,
                    CreationTime = o.CreationTime.ToString("yyyy-MM-dd HH:mm"),
                    Mobile       = o.GetPropertyValue <string>("Mobile"),
                    PersonName   = o.GetPropertyValue <string>("PersonName")
                });
            }

            //var data = tasks.Select( o => {
            //    var lastLogin= UserLoginAttemptRepository.GetAll().Where(u => u.TenantId == o.Id && u.Result == LoginResultType.Success).LastOrDefault();
            //    return new
            //    {
            //        o.Id,
            //        o.TenancyName,
            //        o.Name,
            //        o.IsActive,
            //        LastLoginTime=lastLogin?.CreationTime.ToString("yyyy-MM-dd HH:mm"),
            //        TaskNumber = ProcessTaskRepository.Count(p=>p.TenantId==o.Id && p.ProcessTaskStatus!=ProcessTaskStatus.Inputed),
            //        ReportNumber= ProcessTaskReportRepository.Count(p=>p.TenantId==o.Id),
            //        CreationTime =o.CreationTime.ToString("yyyy-MM-dd HH:mm"),
            //        Mobile=o.GetPropertyValue<string>("Mobile"),
            //        PersonName=o.GetPropertyValue<string>("PersonName")
            //    };
            //});

            var result = new ResultPageDto()
            {
                code  = 0,
                count = query.RowCount,
                data  = data
            };

            return(result);
        }
Beispiel #26
0
        public virtual async Task <object> GetExperts(int matchInstanceId, int?specialityId, string name, string exclude, string all, int?isexclude, int?isinclude, int?organizationId)
        {
            var expertRoleId   = (await _roleRepository.SingleAsync(o => o.Name == "Expert")).Id;
            var expertRoleName = StaticRoleNames.Host.Expert.Split('|')[0];
            var matchInstance  = await _matchInstanceRepository.GetAsync(matchInstanceId);

            //var userQuery = Repository.GetAll();
            var userQuery = Repository.GetAllIncluding(o => o.Organization, o => o.Specialities).Where(o => o.Roles.Count(r => r.RoleId == expertRoleId) > 0);

            //var userQuery= from userrole in _userRoleRepository.GetAll()
            //               join role in _roleRepository.GetAll() on userrole.RoleId equals role.Id
            //               join user in Repository.GetAll() on userrole.UserId equals user.Id
            //               where role.Name== expertRoleName
            //                select user;
            //var userQuery = Repository.GetAll().Where(o=>o.Roles.Count(r=>r.));
            if (!string.IsNullOrEmpty(name))
            {
                userQuery = userQuery.Where(o => o.Name.Contains(name));
            }
            if (organizationId != null)
            {
                userQuery = userQuery.Where(o => o.OrganizationId == organizationId.Value);
            }
            IEnumerable <long> excludeIds = new List <long>();

            if (!string.IsNullOrEmpty(exclude))
            {
                excludeIds = exclude.Split(',').Select(o => Convert.ToInt64(o));
            }
            if (!string.IsNullOrEmpty(all))
            {
                //有all参数的为回避专家选择,all参数表示可供选择的专家范围
                var allIds = all.Split(',').Select(o => Convert.ToInt64(o));
                userQuery = userQuery.Where(o => allIds.Contains(o.Id));
                if ((isexclude.HasValue || isinclude.HasValue) && (!(isexclude.HasValue && isinclude.HasValue)))
                {
                    if (isexclude.HasValue)
                    {
                        //已选择回避
                        userQuery = userQuery.Where(o => excludeIds.Contains(o.Id));
                    }
                    else
                    {
                        //未选择回避
                        userQuery = userQuery.Where(o => !excludeIds.Contains(o.Id));
                    }
                }
            }
            else if (!string.IsNullOrEmpty(exclude))
            {
                //没有all参数有exclude参数的为选择评选专家

                userQuery = userQuery.Where(o => !excludeIds.Contains(o.Id));
            }

            //var majorExpertQuery = _majorExpertRepository.GetAll();
            //if (rank != null)
            //{
            //    var majorExpertRank = (MajorExpertRank)rank.Value;
            //    majorExpertQuery = majorExpertQuery.Where(o => o.MajorExpertRank == majorExpertRank);
            //}
            //if (majorId.HasValue)
            //{
            //    var major = await _majorRepository.GetAsync(majorId.Value);
            //    if (subMajorId != null)
            //    {
            //        //如果指定专业小类,则限定此专业小类绑定的专家
            //        var subMajor = await _majorRepository.GetAsync(subMajorId.Value);
            //        var oriSubMajor = await _majorRepository.GetAll().Where(o => o.BriefCode == subMajor.BriefCode && o.MatchId == subMajor.MatchInstance.MatchId).FirstOrDefaultAsync();
            //        if (oriSubMajor != null)
            //        {
            //            majorExpertQuery = majorExpertQuery.Where(o => o.MajorId == oriSubMajor.Id);
            //        }
            //    }
            //    else
            //    {
            //        //未指定专业小类的,限定专业大类下所有专业小类绑定的专家

            //        var oriMajor = await _majorRepository.GetAll().Where(o => o.BriefCode == major.BriefCode && o.MatchId == major.MatchInstance.MatchId).FirstOrDefaultAsync();
            //        if (oriMajor != null)
            //        {
            //            var subMajorIds = (await MajorManager.FindChildrenAsync(oriMajor.MatchId, oriMajor.MatchInstanceId, oriMajor.Id)).Select(o => o.Id);
            //            majorExpertQuery = majorExpertQuery.Where(o => subMajorIds.Contains(o.MajorId));
            //        }
            //    }
            //}

            if (specialityId.HasValue)
            {
                userQuery = userQuery.Where(u => _userSpecialityRepository.GetAll().Where(o => o.SpecialityId == specialityId.Value).Select(o => o.UserId).Contains(u.Id));
            }


            //var query = from user in userQuery
            //            join majorExpert in majorExpertQuery on user.Id equals majorExpert.UserId
            //            select user;
            var users = await userQuery.ToListAsync();

            //var specialities = await _specialityRepository.GetAllListAsync();
            var reviewExpertDtos = users.Select(o =>
            {
                var specialities = UserManager.GetSpecialitisAsync(o).Result;
                return(new ReviewExpertDto()
                {
                    Id = o.Id, Name = o.Name, OrganizationDisplayName = o.Organization?.BriefName, Specialities = specialities.Select(s => s.Name).ToList()
                });
            });

            //var expertDtos =await UserToReviewExpertDtos(users, matchInstance.MatchId);

            var result = new ResultPageDto()
            {
                code  = 0,
                count = users.Count(),
                data  = reviewExpertDtos.OrderBy(o => o.Name)
            };

            //var result = new ResultPageDto (){ code = 0, count = users.Count, data = temp.OrderBy(o=>o.Name) };
            return(result);
        }