コード例 #1
0
        private void Bind()
        {
            try
            {
                string wareId = btnWare == null ? "" : btnWare.Tag.ToString();
                string typeId = btnType == null ? "" : btnType.Tag.ToString();
                QueryAssQuantInputDto inputDto = new QueryAssQuantInputDto
                {
                    WAREID = wareId,
                    TYPEID = typeId
                };
                var chartInfo = _autofacConfig.AssAnalysisService.GetAssQuantChart(inputDto);
                bc.DataSource = chartInfo;
                bc.DataBind();

                var rows = _autofacConfig.AssAnalysisService.GetAssQuant(inputDto);
                lv.DataSource = rows;
                lv.DataBind();
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }
コード例 #2
0
        public List <AssQuantDto> GetAssQuantChart(QueryAssQuantInputDto inputDto)
        {
            var asset = _assetsRepository.GetAll().Where(a => a.ISINWAREHOUSE == 1);

            if (!string.IsNullOrEmpty(inputDto.WAREID))
            {
                asset = asset.Where(a => a.WAREID == inputDto.WAREID);
            }
            var types = (from type1 in SMOWMSDbContext.AssetsTypes
                         where type1.TLEVEL == 1
                         select new
            {
                Level1 = type1.TYPEID,
                Level2 = "",
                Level3 = ""
            }).Union(from type1 in SMOWMSDbContext.AssetsTypes
                     where type1.TLEVEL == 2
                     select new
            {
                Level1 = type1.PARENTTYPEID,
                Level2 = type1.TYPEID,
                Level3 = ""
            }).Union(from type1 in SMOWMSDbContext.AssetsTypes
                     join type2 in SMOWMSDbContext.AssetsTypes on type1.PARENTTYPEID equals type2.TYPEID
                     where type1.TLEVEL == 3
                     select new
            {
                Level1 = type2.PARENTTYPEID,
                Level2 = type1.PARENTTYPEID,
                Level3 = type1.TYPEID
            });
            var typelist = types;

            if (!string.IsNullOrEmpty(inputDto.TYPEID))
            {
                typelist = typelist.Where(a => a.Level1 == inputDto.TYPEID);
            }
            var result = from assetse in asset
                         from assTemplate in SMOWMSDbContext.AssTemplates
                         from type in typelist
                         from type1 in SMOWMSDbContext.AssetsTypes
                         join wareHouse in SMOWMSDbContext.WareHouses on assetse.WAREID equals wareHouse.WAREID
                         where assetse.TEMPLATEID == assTemplate.TEMPLATEID &&
                         ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") || (assTemplate.TYPEID == type.Level2 && type.Level3 == "") ||
                          assTemplate.TYPEID == type.Level3) && type.Level1 == type1.TYPEID
                         select new AssQuantDto()
            {
                WARENAME = wareHouse.NAME,
                TYPENAME = type1.NAME,
                QUANT    = 1
            };
            var fresult = from assQuantDto in result
                          group assQuantDto by new
            {
                assQuantDto.WARENAME,
                assQuantDto.TYPENAME
            }
            into quant
                select new AssQuantDto()
            {
                WARENAME = quant.Key.WARENAME,
                TYPENAME = quant.Key.TYPENAME,
                QUANT    = quant.Count()
            };
            var quantlist = fresult.ToList();
            var all       = new List <AssQuantDto>();

            if (string.IsNullOrEmpty(inputDto.TYPEID) && string.IsNullOrEmpty(inputDto.WAREID))
            {
                //如果是全部,则需要补全行项为0的项
                var warelist = from assetse in asset
                               from assTemplate in SMOWMSDbContext.AssTemplates
                               from type in typelist
                               from type1 in SMOWMSDbContext.AssetsTypes
                               join wareHouse in SMOWMSDbContext.WareHouses on assetse.WAREID equals wareHouse.WAREID
                               where assetse.TEMPLATEID == assTemplate.TEMPLATEID &&
                               ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") ||
                                (assTemplate.TYPEID == type.Level2 && type.Level3 == "") ||
                                assTemplate.TYPEID == type.Level3) && type.Level1 == type1.TYPEID
                               select wareHouse.NAME;
                var typelists = from assetse in asset
                                from assTemplate in SMOWMSDbContext.AssTemplates
                                from type in typelist
                                from type1 in SMOWMSDbContext.AssetsTypes
                                join wareHouse in SMOWMSDbContext.WareHouses on assetse.WAREID equals wareHouse.WAREID
                                where assetse.TEMPLATEID == assTemplate.TEMPLATEID &&
                                ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") ||
                                 (assTemplate.TYPEID == type.Level2 && type.Level3 == "") ||
                                 assTemplate.TYPEID == type.Level3) && type.Level1 == type1.TYPEID
                                select type1.NAME;
                foreach (var ware in warelist.ToList())
                {
                    foreach (var tp in typelists.ToList())
                    {
                        var row = quantlist.Find(a => a.TYPENAME == tp && a.WARENAME == ware);
                        if (row == null)
                        {
                            AssQuantDto dto = new AssQuantDto
                            {
                                TYPENAME = tp,
                                WARENAME = ware,
                                QUANT    = 0
                            };
                            all.Add(dto);
                        }
                        else
                        {
                            all.Add(row);
                        }
                    }
                }
            }
            else
            {
                all = quantlist;
            }
            return(all.ToList());
        }
コード例 #3
0
        public List <AssQuantDto> GetAssQuant(QueryAssQuantInputDto inputDto)
        {
            var asset = _assetsRepository.GetAll().Where(a => a.ISINWAREHOUSE == 1);

            if (!string.IsNullOrEmpty(inputDto.WAREID))
            {
                asset = asset.Where(a => a.WAREID == inputDto.WAREID);
            }
            var types = (from type1 in SMOWMSDbContext.AssetsTypes
                         where type1.TLEVEL == 1
                         select new
            {
                Level1 = type1.TYPEID,
                Level2 = "",
                Level3 = ""
            }).Union(from type1 in SMOWMSDbContext.AssetsTypes
                     where type1.TLEVEL == 2
                     select new
            {
                Level1 = type1.PARENTTYPEID,
                Level2 = type1.TYPEID,
                Level3 = ""
            }).Union(from type1 in SMOWMSDbContext.AssetsTypes
                     join type2 in SMOWMSDbContext.AssetsTypes on type1.PARENTTYPEID equals type2.TYPEID
                     where type1.TLEVEL == 3
                     select new
            {
                Level1 = type2.PARENTTYPEID,
                Level2 = type1.PARENTTYPEID,
                Level3 = type1.TYPEID
            });
            var typelist = types;

            if (!string.IsNullOrEmpty(inputDto.TYPEID))
            {
                typelist = typelist.Where(a => a.Level1 == inputDto.TYPEID);
            }
            var result = from assetse in asset
                         from assTemplate in SMOWMSDbContext.AssTemplates
                         from type in typelist
                         from type1 in SMOWMSDbContext.AssetsTypes
                         join wareHouse in SMOWMSDbContext.WareHouses on assetse.WAREID equals wareHouse.WAREID
                         where assetse.TEMPLATEID == assTemplate.TEMPLATEID &&
                         ((assTemplate.TYPEID == type.Level1 && type.Level2 == "") || (assTemplate.TYPEID == type.Level2 && type.Level3 == "") ||
                          assTemplate.TYPEID == type.Level3) && type.Level1 == type1.TYPEID
                         select new AssQuantDto()
            {
                IMAGE      = assTemplate.IMAGE,
                NAME       = assTemplate.NAME,
                TEMPLATEID = assTemplate.TEMPLATEID,
                WARENAME   = wareHouse.NAME,
                TYPENAME   = type1.NAME,
                QUANT      = 1
            };
            var fresult = from assQuantDto in result
                          group assQuantDto by new
            {
                assQuantDto.TEMPLATEID,
                assQuantDto.IMAGE,
                assQuantDto.NAME,
                assQuantDto.WARENAME,
                assQuantDto.TYPENAME
            }
            into quant
                select new AssQuantDto()
            {
                IMAGE      = quant.Key.IMAGE,
                NAME       = quant.Key.NAME,
                TEMPLATEID = quant.Key.TEMPLATEID,
                WARENAME   = quant.Key.WARENAME,
                TYPENAME   = quant.Key.TYPENAME,
                QUANT      = quant.Count()
            };

            return(fresult.ToList());
        }