Bläddra i källkod

优化数据模型和服务逻辑

- 更新 `BillBomsetgrpDto.cs`,移除多余的 `using` 语句,添加新属性和注释。
- 修改 `BillPaiKu.cs`,增加导航属性并更新字段描述。
- 调整 `BillBomInfoService.cs` 的查询逻辑,优化代码格式。
- 在 `BillBomSetService.cs` 中添加 `PaiKuGetList` 方法,重构 `SavePK` 方法。
- 在 `WarehouseService.cs` 中新增 `PaiKuGetSelectWarehouseCodeNameList` 方法。
- 更新 `BillBomInfoController.cs` 和 `BillBomSetController.cs`,添加新视图功能和操作方法。
- 修改 `Form.cshtml` 和 `Form.js`,更新表单结构和交互逻辑。
- 更新 `PaiKu.cshtml` 和 `PaiKu.js`,调整查询条件和表格列。
林豪 左 1 månad sedan
förälder
incheckning
179dc15da5

+ 108 - 128
WMS.BZModels/Dto/FJ/BillBom/BillBomsetgrpDto.cs

@@ -1,55 +1,51 @@
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using WMS.BZModels.Models.FJ;
 
 namespace WMS.BZModels.Dto.FJ.BillBom
 {
     public class BillBomsetDto
     {
-        /// <summary> 
+        /// <summary>
         /// Id
-        /// </summary> 
+        /// </summary>
         public string Id { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsStop
-        /// </summary> 
+        /// </summary>
         public int IsStop { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsDelete
-        /// </summary> 
+        /// </summary>
         public int IsDelete { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// Code
-        /// </summary> 
+        /// </summary>
         public string Code { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// Name
-        /// </summary> 
+        /// </summary>
         public string Name { get; set; }
 
-         
-        /// <summary> 
+        /// <summary>
         /// 帘线物料编码
-        /// </summary> 
+        /// </summary>
         public string ProMaterCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 投料信息编码
-        /// </summary> 
+        /// </summary>
         public string ProCode { get; set; }
 
-        public string BomCode  { get; set; }
+        public string BomCode { get; set; }
 
         public string BomName { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 工字轮个数
-        /// </summary> 
+        /// </summary>
         public int HWCountQty { get; set; }
 
         /// <summary>
@@ -61,237 +57,221 @@ namespace WMS.BZModels.Dto.FJ.BillBom
         /// 类型
         /// </summary>
         public int Category { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 托盘类型
-        /// </summary> 
+        /// </summary>
         public string TpTypeCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 层数
-        /// </summary> 
+        /// </summary>
         public int LayerCountQty { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 跺型类型(区分表单)
-        /// </summary> 
+        /// </summary>
         public string StampType { get; set; }
 
         public string StampChildType { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsTruss
-        /// </summary> 
+        /// </summary>
         public string IsTruss { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// ShortCode
-        /// </summary> 
+        /// </summary>
         public int ShortCode { get; set; }
 
         public List<BillBomsetinfoDto> Bomsetinfos { get; set; }
-
     }
 
     public class BillBomsetgrpDto
     {
-        /// <summary> 
+        /// <summary>
         /// Id
-        /// </summary> 
+        /// </summary>
         public string Id { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsStop
-        /// </summary> 
+        /// </summary>
         public int IsStop { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsDelete
-        /// </summary> 
+        /// </summary>
         public int IsDelete { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// Code
-        /// </summary> 
+        /// </summary>
         public string Code { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// Name
-        /// </summary> 
+        /// </summary>
         public string Name { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// ShortCode
-        /// </summary> 
+        /// </summary>
         public int ShortCode { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 帘线物料编码
-        /// </summary> 
+        /// </summary>
         public string ProMaterCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 投料物流编码
-        /// </summary> 
+        /// </summary>
         public string ProCode { get; set; }
 
-        public string BomCode   { get; set; }
+        public string BomCode { get; set; }
 
         public string BomName { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 工字轮个数
-        /// </summary> 
+        /// </summary>
         public int HWCountQty { get; set; }
 
         /// <summary>
         /// 总工字轮个数
         /// </summary>
         public int TotalQty { get; set; }
+
         /// <summary>
         /// 类型
         /// </summary>
         public int Category { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 托盘类型
-        /// </summary> 
+        /// </summary>
         public string TpTypeCode { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 层数
-        /// </summary> 
+        /// </summary>
         public int LayerCountQty { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsTruss
-        /// </summary> 
+        /// </summary>
         public int? IsTruss { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 跺型类型(区分表单)
-        /// </summary> 
+        /// </summary>
         public string StampType { get; set; }
 
         public string StampChildType { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// Memo
-        /// </summary> 
+        /// </summary>
         public string Memo { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// AddWho
-        /// </summary> 
+        /// </summary>
         public string AddWho { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// AddTime
-        /// </summary> 
+        /// </summary>
         public DateTime AddTime { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// EditWho
-        /// </summary> 
+        /// </summary>
         public string EditWho { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// EditTime
-        /// </summary> 
+        /// </summary>
         public DateTime EditTime { get; set; }
-
     }
 
     public class BillBomsetgrpQueryDto : PagerInfo
     {
-        /// <summary> 
+        /// <summary>
         /// IsStop
-        /// </summary> 
+        /// </summary>
         public string IsStop { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// IsDelete
-        /// </summary> 
+        /// </summary>
         public string IsDelete { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// Code
-        /// </summary> 
+        /// </summary>
         public string Code { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// Name
-        /// </summary> 
+        /// </summary>
         public string Name { get; set; }
 
-        /// <summary> 
+        /// <summary>
         /// 帘线物料编码
-        /// </summary> 
+        /// </summary>
         public string ProMaterCode { get; set; }
 
         public string ShortCode { get; set; }
-        
 
-        /// <summary> 
+        /// <summary>
         /// 投料物流编码
-        /// </summary> 
+        /// </summary>
         public string ProCode { get; set; }
 
-        public string BomCode  { get; set; }
+        public string BomCode { get; set; }
 
         public string BomName { get; set; }
-        /// <summary> 
+
+        /// <summary>
         /// 跺型类型(区分表单)
-        /// </summary> 
+        /// </summary>
         public string StampType { get; set; }
     }
 
-    public class BillPaiKuDto 
+    public class BillPaiKuDto : BillPaiKu
     {
-        /// <summary>
-        /// 垛型id
-         /// </summary>
-        public long BomsetgrpId { get; set; }
-
-        /// <summary>
-        /// 垛型名称
-        /// </summary>
-        public string BomsetgrpName { get; set; }
-
-        /// <summary>
-        /// 所属仓库Id
-        /// </summary>       
-        public long WarehouseId { get; set; }
-
-        /// <summary>
-        /// 所属仓库编码(1N,1S,2N,2S,3N,3S)
-        /// </summary>        
-        public string WarehouseCode { get; set; }
+        public string Id { get; set; }
+        public string BomsetgrpId { get; set; }
+        public string WarehousId { get; set; }
 
-        /// <summary>
-        ///  垛型对应此仓库的占比
-        /// </summary>
-        public float Percent { get; set; }
+        public string Memo { get; set; }
+        public string AddWho { get; set; }
+        public string EditWho { get; set; }
+        public DateTime AddTime { get; set; }
+        public DateTime EditTime { get; set; }
     }
+
     /// <summary>
     ///  排库
     /// </summary>
     public class BillPaiKuQueryDto : PagerInfo
     {
-       
         /// <summary>
         /// 垛型id
         /// </summary>
-        public long BomsetgrpId { get; set; }
-        /// <summary>
-        /// 垛型名称
-        /// </summary>
-        public string BomsetgrpName { get; set; }
-        /// <summary>
-        /// 所属仓库Id
-        /// </summary>       
-        public long WarehouseId { get; set; }
+        public string BomsetgrpId { get; set; }
 
         /// <summary>
-        /// 所属仓库编码(1N,1S,2N,2S,3N,3S)
-        /// </summary>        
-        public string WarehouseCode { get; set; }
+        /// 所属仓库Id
+        /// </summary>
+        public string WarehouseId { get; set; }
 
         /// <summary>
         ///  垛型对应此仓库的占比
         /// </summary>
-        public float Percent { get; set; }
+        public string Percent { get; set; }
     }
-}
+}

+ 25 - 11
WMS.BZModels/Models/FJ/BillPaiKu.cs

@@ -1,9 +1,5 @@
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using wms.sqlsugar.model.fj;
 
 namespace WMS.BZModels.Models.FJ
 {
@@ -15,19 +11,37 @@ namespace WMS.BZModels.Models.FJ
     public partial class BillPaiKu : BaseModel
     {
         /// <summary>
-        /// 垛型ID
+        ///  垛型
         /// </summary>
-        [SugarColumn(ColumnDataType = "bigint", IsNullable = false)]
+        [Navigate(NavigateType.OneToOne, nameof(BomsetgrpId))]
+        public BillBomsetgrp? Bomsetgrp { get; set; }
+
+        /// <summary>
+        ///  垛型ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "垛型ID")]
         public long BomsetgrpId { get; set; }
 
         /// <summary>
-        /// 所属仓库Id
+        /// 垛型名称
         /// </summary>
-        [SugarColumn(ColumnDataType = "nvarchar", Length = 50)]
+        [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)]
+        public string BomsetgrpName { get; set; }
+
+        /// <summary>
+        ///  仓库
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(WarehousId))]
+        public BaseWarehouse? Warehouse { get; set; }
+
+        /// <summary>
+        ///  所属仓库Id
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "垛型ID")]
         public long WarehousId { get; set; }
 
         /// <summary>
-        /// 所属仓库编码(1N,1S,2N,2S,3N,3S)
+        ///  所属仓库编码(1N,1S,2N,2S,3N,3S)
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50)]
         public string WarehouseCode { get; set; }
@@ -37,4 +51,4 @@ namespace WMS.BZModels.Models.FJ
         /// </summary>
         public float Percent { get; set; }
     }
-}
+}

+ 13 - 21
WMS.BZServices/FJ/BillBomInfoService.cs

@@ -1,15 +1,10 @@
 using Mapster;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using wms.sqlsugar.model.fj;
 using WMS.BZModels;
 using WMS.BZModels.Dto.FJ.BillBom;
-using WMS.Info;
 using WMS.BZSqlSugar;
+using WMS.Info;
 
 namespace WMS.BZServices.FJ
 {
@@ -27,12 +22,12 @@ namespace WMS.BZServices.FJ
             var total = 0;
             var codes = GetQueryable(billBominfoQueryDto).Select(o => o.Code).Distinct()
                 .ToPageList(pagination.page, pagination.rows, ref total);
-            var arr=new List<string>();
+            var arr = new List<string>();
             if (billBominfoQueryDto != null && !string.IsNullOrWhiteSpace(billBominfoQueryDto.StrSpoolType))
             {
-               arr = billBominfoQueryDto.StrSpoolType.Split(',').ToList();         
+                arr = billBominfoQueryDto.StrSpoolType.Split(',').ToList();
             }
-            var list = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo,BaseMatinfo>((billBominfo, baseMatinfo, ProbaseMatinfo) => new object[] {
+            var list = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo, BaseMatinfo>((billBominfo, baseMatinfo, ProbaseMatinfo) => new object[] {
                 JoinType.Left,billBominfo.MatId == baseMatinfo.Id ,
                 JoinType.Left,billBominfo.ProMatCode == ProbaseMatinfo.Code ,
             })
@@ -47,7 +42,7 @@ namespace WMS.BZServices.FJ
                     MatCode = billBominfo.MatCode,
                     MatId = billBominfo.MatId.ToString(),
                     ProMatCode = billBominfo.ProMatCode,
-                    ProMatName= ProbaseMatinfo.Name,
+                    ProMatName = ProbaseMatinfo.Name,
                     HWCountQty = billBominfo.HWCountQty,
                     Memo = billBominfo.Memo,
                     AddWho = billBominfo.AddWho,
@@ -57,8 +52,8 @@ namespace WMS.BZServices.FJ
                     SpoolType = baseMatinfo.SpoolType,
                     TimeOut = ProbaseMatinfo.TimeOut
                 }).MergeTable().Where(o => codes.Contains(o.Code))
-                .WhereIF(arr!=null && arr.Count>0,o=> arr.Contains(o.SpoolType))
-            .OrderByIF(!pagination.sidx.IsEmpty(), $"{pagination.sidx.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(pagination.sord) && pagination.sord.ToLower().Contains("desc") ? "desc" : "asc")}").ToList().Adapt<List<BillBominfoDto>>();
+                .WhereIF(arr != null && arr.Count > 0, o => arr.Contains(o.SpoolType))
+                .OrderByIF(!pagination.sidx.IsEmpty(), $"{pagination.sidx.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(pagination.sord) && pagination.sord.ToLower().Contains("desc") ? "desc" : "asc")}").ToList().Adapt<List<BillBominfoDto>>();
 
             var page = new PagedInfo<BillBominfoDto>
             {
@@ -84,16 +79,14 @@ namespace WMS.BZServices.FJ
             {
                 predicate = predicate.And((billBominfo, baseMatinfo) => billBominfoQueryDto.SpoolType.Contains(baseMatinfo.SpoolType.ToLower()));
             }
-            if(billBominfoQueryDto != null && !string.IsNullOrWhiteSpace(billBominfoQueryDto.StrSpoolType))
+            if (billBominfoQueryDto != null && !string.IsNullOrWhiteSpace(billBominfoQueryDto.StrSpoolType))
             {
                 var arr = billBominfoQueryDto.StrSpoolType.Split(',');
-                predicate = predicate.And((billBominfo, baseMatinfo) => arr.Contains(baseMatinfo.SpoolType ));
-
+                predicate = predicate.And((billBominfo, baseMatinfo) => arr.Contains(baseMatinfo.SpoolType));
             }
             var sugarQueryable = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo>((billBominfo, baseMatinfo) => new object[] {
                 JoinType.Left,billBominfo.MatId == baseMatinfo.Id   }).Where(predicate.ToExpression()).MergeTable();
-             return sugarQueryable;
-
+            return sugarQueryable;
         }
 
         public IList<BillBominfoDto> GetList(BillBominfoQueryDto billBominfoQueryDto)
@@ -115,7 +108,7 @@ namespace WMS.BZServices.FJ
                 .Select((billBominfo, baseMatinfo) => new BillBominfoDto
                 {
                     Id = billBominfo.Id.ToString(),
-                    ProCode= billBominfo.ProCode,
+                    ProCode = billBominfo.ProCode,
                     IsStop = billBominfo.IsStop,
                     IsDelete = billBominfo.IsDelete == null ? 0 : billBominfo.IsDelete.Value,
                     Code = billBominfo.Code,
@@ -131,7 +124,7 @@ namespace WMS.BZServices.FJ
                     EditTime = billBominfo.EditTime,
                     SpoolType = baseMatinfo.SpoolType
                 }).MergeTable();
-            var list = sugarQueryable.ToList() .Adapt<List<BillBominfoDto>>();
+            var list = sugarQueryable.ToList().Adapt<List<BillBominfoDto>>();
             return list;
         }
 
@@ -142,6 +135,5 @@ namespace WMS.BZServices.FJ
             var list = _billBominfoRepository.Queryable().Where(predicate.ToExpression()).ToList().Adapt<List<BillBominfoDto>>();
             return list;
         }
-
     }
-}
+}

+ 109 - 91
WMS.BZServices/FJ/BillBomSetService.cs

@@ -1,15 +1,11 @@
-using SqlSugar;
+using Mapster;
+using SqlSugar;
 using wms.sqlsugar.model.fj;
-using WMS.BZModels.Dto.FJ.BillBom;
 using WMS.BZModels;
-using WMS.Info;
-using WMS.BZSqlSugar;
-using Mapster;
-using FreeRedis;
-using Org.BouncyCastle.Crypto;
-using System.Collections.Generic;
+using WMS.BZModels.Dto.FJ.BillBom;
 using WMS.BZModels.Models.FJ;
-using NPOI.SS.Formula.Functions;
+using WMS.BZSqlSugar;
+using WMS.Info;
 
 namespace WMS.BZServices.FJ
 {
@@ -20,19 +16,22 @@ namespace WMS.BZServices.FJ
         private readonly Repository<BillBominfo> _billBominfoRepository;
         private readonly Repository<BaseMatinfo> _matinforepository;
         private readonly Repository<BillPaiKu> _billPaiKurepository;
+        private readonly Repository<BaseWarehouse> _billBaseWarehouse;
 
         public BillBomSetService(Repository<BillBomsetgrp> billBomsetgrpRepository,
             Repository<BillBomsetinfo> billBomsetinfoRepository,
             Repository<BillBominfo> billBominfoRepository,
             Repository<BaseMatinfo> matinforepository,
-            Repository<BillPaiKu> billPaiKurepository)
+            Repository<BillPaiKu> billPaiKurepository,
+            Repository<BaseWarehouse> billBaseWarehouse)
         {
             _billBomsetgrpRepository = billBomsetgrpRepository;
             _billBomsetinfoRepository = billBomsetinfoRepository;
 
             _billBominfoRepository = billBominfoRepository;
             _matinforepository = matinforepository;
-            _billPaiKurepository = billPaiKurepository;          
+            _billPaiKurepository = billPaiKurepository;
+            _billBaseWarehouse = billBaseWarehouse;
         }
 
         public PagedInfo<BillBomsetgrpDto> GetPageList(Pagination pagination, BillBomsetgrpQueryDto billBomsetgrpQueryDto)
@@ -43,71 +42,57 @@ namespace WMS.BZServices.FJ
             return list;
         }
 
-        public PagedInfo<BillPaiKuDto> GetPaiKuList(Pagination pagination, BillPaiKuQueryDto billPaiKuQueryDto)
+        public IEnumerable<dynamic> PaiKuGetList()
         {
-            //var list = GetQueryablePK(billPaiKuQueryDto)
-            //     .ToPage<BillPaiKu, BillPaiKuDto>(pagination);
-
-            //return list;
-            var predicate = Expressionable.Create<BillPaiKu, BillBomsetgrp>();
-
-            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.KeyWord), (paiku, bomsetgrp) => paiku.WarehouseCode.Contains(billPaiKuQueryDto.KeyWord));
-            //|| m.ProCode.Contains(billPaiKuQueryDto.KeyWord) || m.ProMaterCode.Contains(billPaiKuQueryDto.KeyWord) || m.ShortCode.ToString().Contains(billPaiKuQueryDto.KeyWord));
-            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.WarehouseId.ToString()), (paiku, bomsetgrp) => paiku.WarehousId.ToString().Contains(billPaiKuQueryDto.WarehouseId.ToString()));
-            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.BomsetgrpId.ToString()), (paiku, bomsetgrp) => paiku.BomsetgrpId.ToString().Contains(billPaiKuQueryDto.BomsetgrpId.ToString()));
-
-            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.BomsetgrpName), (paiku, bomsetgrp) =>bomsetgrp.Code.Contains(billPaiKuQueryDto.BomsetgrpName));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.ProMaterCode), m => m.ProMaterCode.Contains(billPaiKuQueryDto.ProMaterCode));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.BomName), m => m.BomName.Contains(billPaiKuQueryDto.BomName));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.ProCode), m => m.ProCode.Contains(billPaiKuQueryDto.ProCode));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.StampType), m => m.StampType.Equals(billPaiKuQueryDto.StampType));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.IsStop), m => m.IsStop.Equals(billPaiKuQueryDto.IsStop));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.IsDelete), m => m.IsDelete.Equals(billPaiKuQueryDto.IsDelete));
-
-            var list = _billPaiKurepository.Context.Queryable<BillPaiKu, BillBomsetgrp>((paiku, bomsetgrp) => new object[] { JoinType.Left, paiku.BomsetgrpId == bomsetgrp.Id,
-                                                                                                                                                        }).Where(predicate.ToExpression())
-                .Select((paiku, bomsetgrp) => new BillPaiKuDto
-                {
-                    BomsetgrpId = paiku.BomsetgrpId,
-                    BomsetgrpName = bomsetgrp.Code,
-                    WarehouseId = paiku.WarehousId,
-                    WarehouseCode = paiku.WarehouseCode,
-                    Percent = paiku.Percent
-                }).MergeTable()
-                 .ToPage(pagination);            
+            var list = _billBomsetgrpRepository.AsQueryable().With(SqlWith.NoLock).Where(x => x.IsStop == 0).ToList().Select(x => new { id = x.Id.ToString(), text = x.Name });
             return list;
-
         }
 
-        //private ISugarQueryable<BillPaiKu> GetQueryablePK(BillPaiKuQueryDto billPaiKuQueryDto)
-        //{
-        //    var predicate = Expressionable.Create<BillPaiKu,BillBomsetgrp,BaseWarehouse>();
-
-        //    predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.KeyWord), (paiku, bomsetgrp, warehouse) => paiku.WarehouseCode.Contains(billPaiKuQueryDto.KeyWord));
-        //    //|| m.ProCode.Contains(billPaiKuQueryDto.KeyWord) || m.ProMaterCode.Contains(billPaiKuQueryDto.KeyWord) || m.ShortCode.ToString().Contains(billPaiKuQueryDto.KeyWord));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.Code), m => m.Code.Contains(billPaiKuQueryDto.Code));
-            //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.Name), m => m.Name.Contains(billPaiKuQueryDto.Name));
-
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.ShortCode), m => m.ShortCode.ToString().Contains(billPaiKuQueryDto.ShortCode));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.ProMaterCode), m => m.ProMaterCode.Contains(billPaiKuQueryDto.ProMaterCode));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.BomName), m => m.BomName.Contains(billPaiKuQueryDto.BomName));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.ProCode), m => m.ProCode.Contains(billPaiKuQueryDto.ProCode));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.StampType), m => m.StampType.Equals(billPaiKuQueryDto.StampType));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.IsStop), m => m.IsStop.Equals(billPaiKuQueryDto.IsStop));
-        //    //predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.IsDelete), m => m.IsDelete.Equals(billPaiKuQueryDto.IsDelete));
-
-        //    var sugarQueryable = _billPaiKurepository.Context.Queryable<BillPaiKu, BillBomsetgrp, BaseWarehouse>((paiku, bomsetgrp, warehouse) => new object[] { JoinType.Left, paiku.BomsetgrpId == bomsetgrp.Id, paiku.WarehousId == warehouse.Id }).Where(predicate.ToExpression())
-        //        .Select((paiku, bomsetgrp, warehous) => new BillPaiKuQueryDto
-        //        {
-        //            BomsetgrpId = paiku.BomsetgrpId,
-        //            BomsetgrpName = bomsetgrp.Code,
-        //            WarehouseId = paiku.WarehousId,
-        //            WarehouseCode = paiku.WarehouseCode
-        //        }).MergeTable()
-        //         .ToList();
-        //    //_billPaiKurepository.Queryable().Where(predicate.ToExpression());
-        //    return sugarQueryable;
-        //}
+        public PagedInfo<BillPaiKuDto> GetPaiKuList(Pagination pagination, BillPaiKuQueryDto billPaiKuQueryDto)
+        {
+            var predicate = Expressionable.Create<BillPaiKu, BillBomsetgrp, BaseWarehouse>();
+
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto?.KeyWord), (paiku, bomsetgrp, wareHouse) =>
+                                                                                paiku.Id.ToString() == billPaiKuQueryDto.KeyWord ||
+                                                                                paiku.WarehousId.ToString() == billPaiKuQueryDto.KeyWord ||
+                                                                                paiku.WarehouseCode.Contains(billPaiKuQueryDto.KeyWord) ||
+                                                                                paiku.BomsetgrpId.ToString() == billPaiKuQueryDto.KeyWord ||
+                                                                                paiku.BomsetgrpName.Contains(billPaiKuQueryDto.KeyWord) ||
+                                                                                paiku.Percent.ToString() == billPaiKuQueryDto.KeyWord);
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto.WarehouseId), (paiku, bomsetgrp, wareHouse) => paiku.WarehousId.ToString() == billPaiKuQueryDto.WarehouseId);
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto.BomsetgrpId), (paiku, bomsetgrp, wareHouse) => paiku.BomsetgrpId.ToString() == billPaiKuQueryDto.BomsetgrpId);
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(billPaiKuQueryDto.Percent), (paiku, bomsetgrp, wareHouse) => paiku.Percent.ToString() == billPaiKuQueryDto.Percent);
+
+            var list = _billPaiKurepository.Context.Queryable<BillPaiKu, BillBomsetgrp, BaseWarehouse>((paiku, bomsetgrp, wareHouse) => new object[]
+            {
+                JoinType.Left, paiku.BomsetgrpId == bomsetgrp.Id,
+                JoinType.Left, paiku.WarehousId==wareHouse.Id,
+            }).Where(predicate.ToExpression())
+              .Select((paiku, bomsetgrp, wareHouse) => new BillPaiKuDto
+              {
+                  Id = paiku.Id.ToString(),
+                  Memo = paiku.Memo,
+                  AddWho = paiku.AddWho,
+                  EditWho = paiku.EditWho,
+                  AddTime = paiku.AddTime,
+                  EditTime = paiku.EditTime,
+                  BomsetgrpId = paiku.BomsetgrpId.ToString(),
+                  BomsetgrpName = paiku.BomsetgrpName,
+                  WarehousId = paiku.WarehousId.ToString(),
+                  WarehouseCode = paiku.WarehouseCode,
+                  Percent = paiku.Percent
+              })
+              .MergeTable()
+              .OrderByIF(!pagination.sidx.IsEmpty(), $"{pagination.sidx.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(pagination.sord) && pagination.sord.ToLower().Contains("desc") ? "desc" : "asc")}").ToList().Adapt<List<BillPaiKuDto>>();
+            var page = new PagedInfo<BillPaiKuDto>
+            {
+                PageSize = pagination.rows,
+                PageIndex = pagination.page,
+                TotalNum = list.Count,
+                Result = list
+            };
+            return page;
+        }
 
         private ISugarQueryable<BillBomsetgrp> GetQueryable(BillBomsetgrpQueryDto billBomsetgrpQueryDto)
         {
@@ -400,10 +385,21 @@ namespace WMS.BZServices.FJ
             }
         }
 
+        /// <summary>
+        ///  保存排库信息
+        /// </summary>
+        /// <param name="loginUser"></param>
+        /// <param name="keyValue"></param>
+        /// <param name="billPaiKuEntity"></param>
         public void SavePK(LoginUserInfo loginUser, string keyValue, BillPaiKu billPaiKuEntity)
         {
             try
             {
+                if (billPaiKuEntity.Percent != Math.Truncate(billPaiKuEntity.Percent) || billPaiKuEntity.Percent > 100)
+                {
+                    throw BZSysExCore.ThrowFailException("占比只能传入整数,且必须小于100!");
+                }
+
                 if (billPaiKuEntity.BomsetgrpId <= 0)
                 {
                     throw BZSysExCore.ThrowFailException("垛型编码有误!");
@@ -412,34 +408,58 @@ namespace WMS.BZServices.FJ
                 {
                     throw BZSysExCore.ThrowFailException("仓库id有误!");
                 }
+                var bomsetgrp = _billBomsetgrpRepository.AsQueryable().With(SqlWith.NoLock).First(x => x.Id == billPaiKuEntity.BomsetgrpId);
+                if (bomsetgrp == null)
+                {
+                    throw BZSysExCore.ThrowFailException($"未找到对应垛型{billPaiKuEntity.BomsetgrpId}!");
+                }
 
-                var code = _billPaiKurepository.Context.Queryable<BaseWarehouse>().Where(x => x.Id == billPaiKuEntity.WarehousId);
-                if (code == null)
+                var warehouse = _billBaseWarehouse.AsQueryable().With(SqlWith.NoLock).First(x => x.Id == billPaiKuEntity.WarehousId);
+                if (warehouse == null)
                 {
                     throw BZSysExCore.ThrowFailException($"未找到对应仓库{billPaiKuEntity.WarehousId}!");
                 }
-
-                var percent = _billPaiKurepository.Context.Queryable<BillPaiKu>().Where(x => x.BomsetgrpId == billPaiKuEntity.BomsetgrpId && x.WarehouseCode == billPaiKuEntity.WarehouseCode).Sum(x => x.Percent);
-                if (Math.Ceiling(percent) >= 100)
+                var paiKuId = Convert.ToInt64(keyValue);
+                var paiKu = _billPaiKurepository.GetFirst(x => x.Id == paiKuId);
+                if (paiKu != null) //更新
                 {
-                    throw BZSysExCore.ThrowFailException($"{billPaiKuEntity.WarehouseCode}超过最大占比,请重新调整!");
+                    //判断此垛型排库占比总数是否超过100
+                    var percent = _billPaiKurepository.GetList(x => x.BomsetgrpId == bomsetgrp.Id && x.Id != paiKu.Id).Sum(x => x.Percent);
+                    if ((percent + billPaiKuEntity.Percent) > 100)
+                    {
+                        throw BZSysExCore.ThrowFailException($"{bomsetgrp.Name}超过最大占比,除当前编辑信息外总比重为{percent},请重新调整!");
+                    }
+                    paiKu.BomsetgrpId = bomsetgrp.Id;
+                    paiKu.BomsetgrpName = bomsetgrp.Name;
+                    paiKu.WarehousId = warehouse.Id;
+                    paiKu.WarehouseCode = warehouse.Code;
+                    paiKu.Percent = billPaiKuEntity.Percent;
+                    _billPaiKurepository.Update(paiKu);
                 }
-
-                BillPaiKu item = new BillPaiKu()
+                else //新增
                 {
-                    BomsetgrpId = billPaiKuEntity.BomsetgrpId,
-                    WarehousId = billPaiKuEntity.WarehousId,
-                    WarehouseCode = billPaiKuEntity.WarehouseCode,
-                    Percent = billPaiKuEntity.Percent
-                };
-                _billPaiKurepository.Insert(item);
+                    //判断此垛型排库占比总数是否超过100
+                    var percent = _billPaiKurepository.GetList(x => x.BomsetgrpId == bomsetgrp.Id).Sum(x => x.Percent);
+                    if ((percent + billPaiKuEntity.Percent) > 100)
+                    {
+                        throw BZSysExCore.ThrowFailException($"{bomsetgrp.Name}超过最大占比,请重新调整!");
+                    }
+
+                    BillPaiKu item = new BillPaiKu()
+                    {
+                        BomsetgrpId = bomsetgrp.Id,
+                        BomsetgrpName = bomsetgrp.Name,
+                        WarehousId = warehouse.Id,
+                        WarehouseCode = warehouse.Code,
+                        Percent = billPaiKuEntity.Percent
+                    };
+                    _billPaiKurepository.Insert(item);
+                }
             }
             catch (Exception ex)
             {
                 throw BZSysExCore.ThrowFailException(ex.Message);
             }
-
-
         }
 
         public void Save(LoginUserInfo loginUser, string keyValue, BillBomsetgrp billBomsetgrpEntity, IList<BillBomsetinfo> billBomsetinfos)
@@ -889,12 +909,10 @@ namespace WMS.BZServices.FJ
             {
                 _billPaiKurepository.Deleteable().Where(o => o.Id == id).ExecuteCommand();
             }
-            catch (Exception ex)         
+            catch (Exception ex)
             {
                 throw ex;
             }
-            
-           
         }
 
         public void Delete(long id)

+ 6 - 0
WMS.BZServices/FJ/WarehouseService.cs

@@ -53,6 +53,12 @@ namespace WMS.BZServices.FJ
             return lists;
         }
 
+        public IEnumerable<dynamic> PaiKuGetSelectWarehouseCodeNameList()
+        {
+            var lists = _wareHouserepository.Queryable().Where(o => o.IsStop == 0&&o.TypeNum==1).ToList().Select(o => new { id = o.Id.ToString(), text = o.Name });
+            return lists;
+        }
+
         public IEnumerable<dynamic> GetSelectWarehouseNameList(string typenum)
         {
             var lists = _wareHouserepository.Queryable().Where(o => o.IsStop == 0 && o.TypeNum.Equals(typenum)).ToList().Select(o => new { id = o.Id.ToString(), text = o.Name });

+ 7 - 1
WMS.BZWeb/Areas/FJManager/Controllers/BaseWarehouseController.cs

@@ -57,7 +57,13 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             return Success(list);
         }
 
-        
+        public ActionResult PaiKuGetSelectWarehouseCodeNameList()
+        {
+            var list = _warehouse.PaiKuGetSelectWarehouseCodeNameList();
+            return Success(list);
+        }
+
+
         public ActionResult GetSelectWarehouseNameListByType(string typenum)
         {
             var list = _warehouse.GetSelectWarehouseNameList(typenum);

+ 8 - 7
WMS.BZWeb/Areas/FJManager/Controllers/BillBomInfoController.cs

@@ -9,7 +9,6 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
     [Area("FJManager")]
     public class BillBomInfoController : MvcControllerBase
     {
-
         private readonly BillBomInfoService _billBomInfoService;
 
         public BillBomInfoController(BillBomInfoService billBomInfoService)
@@ -18,22 +17,24 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         }
 
         #region 视图功能
+
         public IActionResult Index()
         {
             return View();
         }
+
         public IActionResult Form()
         {
             return View();
         }
+
         public IActionResult SelectForm()
         {
             return View();
         }
 
-        #endregion
+        #endregion 视图功能
 
-        
         public ActionResult GetPageList(string pagination, string queryJson)
         {
             Pagination paginationobj = InitPagination(pagination);
@@ -64,11 +65,11 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             }
             var lists = _billBomInfoService.GetList(query ?? new BillBominfoQueryDto());
             if (lists != null && lists.Any())
-            { 
-              var listresult=  lists.Where(o => o.Code == query?.Code).ToList();
-              return Success(listresult);
+            {
+                var listresult = lists.Where(o => o.Code == query?.Code).ToList();
+                return Success(listresult);
             }
             return Success(lists);
         }
     }
-}
+}

+ 24 - 6
WMS.BZWeb/Areas/FJManager/Controllers/BillBomSetController.cs

@@ -20,11 +20,14 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         {
             _billBomSetService = billBomSetService;
         }
+
         #region 视图功能
+
         public IActionResult Index()
         {
             return View();
         }
+
         public IActionResult DFM09()
         {
             return View();
@@ -34,14 +37,17 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         {
             return View();
         }
+
         public IActionResult DOF2()
         {
             return View();
         }
+
         public IActionResult DOF4()
         {
             return View();
         }
+
         public IActionResult DFM6()
         {
             return View();
@@ -51,7 +57,8 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         {
             return View();
         }
-        public IActionResult DFMAll() 
+
+        public IActionResult DFMAll()
         {
             return View();
         }
@@ -60,7 +67,13 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         {
             return View();
         }
-        #endregion
+
+        public IActionResult Form()
+        {
+            return View();
+        }
+
+        #endregion 视图功能
 
         public ActionResult GetPageList(string pagination, string queryJson)
         {
@@ -83,6 +96,13 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             return Success(jsonData);
         }
 
+        public ActionResult PaiKuGetList()
+        {
+            var lists = _billBomSetService.PaiKuGetList();
+
+            return Success(lists);
+        }
+
         public ActionResult GetPaiKuList(string pagination, string queryJson)
         {
             Pagination paginationobj = InitPagination(pagination);
@@ -158,11 +178,10 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         public ActionResult SaveFormPK(string keyValue, BillPaiKu Data)
         {
             LoginUserInfo LoginUser = GetLoginUser();
-            _billBomSetService.SavePK(LoginUser,keyValue,Data);
+            _billBomSetService.SavePK(LoginUser, keyValue, Data);
             return Success("保存成功");
         }
 
-
         [HttpPost]
         public ActionResult DeletePK(long keyValue)
         {
@@ -178,7 +197,6 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             return Success("保存成功。");
         }
 
-
         [HttpPost]
         public ActionResult Delete(string keyValue)
         {
@@ -232,4 +250,4 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             return Success("保存成功!");
         }
     }
-}
+}

+ 14 - 7
WMS.BZWeb/Areas/FJManager/Views/BillBomSet/Form.cshtml

@@ -4,24 +4,31 @@
     Layout = "~/Views/Shared/_Form.cshtml";
 }
 <div class="lr-form-wrap" id="form">
-    <div class="col-xs-6 lr-form-item">
+    @* <div class="col-xs-6 lr-form-item">
         <div class="lr-form-item-title">垛型编码<font face="宋体">*</font></div>
-        <input id="BomsetgrpId" type="text" class="form-control" placeholder="请输入垛型编码" isvalid="yes" checkexpession="NotNull" />
-    </div>
+        <input id="BomsetgrpId" type="text" class="form-control" placeholder="请选择垛型" isvalid="yes" checkexpession="NotNull" />
+    </div> *@
     @* <div class="col-xs-6 lr-form-item">
         <div class="lr-form-item-title">垛型名称<font face="宋体">*</font></div>
         <input id="BomsetgrpName" type="text" class="form-control" placeholder="请输入物料名称" isvalid="yes" checkexpession="NotNull" />
     </div> *@
-    <div class="col-xs-6 lr-form-item">
-        <div class="lr-form-item-title">所属仓库<font face="宋体"></font></div>
-        <input id="WarehousId" type="text" class="form-control" placeholder="请输入所属仓库" />
+    @* <div class="col-xs-6 lr-form-item">
+        <div class="lr-form-item-title">垛型编码<font face="宋体"></font></div>
+        <input id="WarehousId" type="text" class="form-control" placeholder="请选择垛型" />
+    </div> *@
+    <div class="col-xs-6 lr-form-item" >
+        <div class="lr-form-item-title" style="width:90px;">产出物料编码:</div>
+        <div id="BomsetgrpId"  placeholder="请选择产出物料编码"></div>
+    </div><div class="col-xs-6 lr-form-item" >
+        <div class="lr-form-item-title" style="width:90px;">所属仓库:</div>
+        <div id="WarehousId"  placeholder="请选择所属仓库"></div>
     </div>
     @* <div class="col-xs-6 lr-form-item">
         <div class="lr-form-item-title">所属仓库编码<font face="宋体"></font></div>
         <input id="WarehouseCode" type="text" class="form-control" placeholder="请输入镀层" />
     </div> *@
     <div class="col-xs-6 lr-form-item">
-        <div class="lr-form-item-title">垛型对应仓库占比<font face="宋体"></font></div>
+        <div class="lr-form-item-title">库占比<font face="宋体"></font></div>
         <input id="Percent" type="text" class="form-control" placeholder="请输入对应仓库占比" />
     </div>    
 </div>

+ 13 - 4
WMS.BZWeb/Areas/FJManager/Views/BillBomSet/Form.js

@@ -1,5 +1,5 @@
 /*
- * 描 述:功能模块	
+ * 描 述:功能模块
  */
 var acceptClick;
 var keyValue = '';
@@ -13,12 +13,21 @@ var bootstrap = function ($, learun) {
         },
         /*绑定事件和初始化控件*/
         bind: function () {
-           
+            $('#WarehousId').lrselect({
+                url: top.$.rootUrl + "/FJManager/BaseWarehouse/PaiKuGetSelectWarehouseCodeNameList",
+                allowSearch: true,
+                width: 280,
+            });
+            $('#BomsetgrpId').lrselect({
+                url: top.$.rootUrl + "/FJManager/BillBomSet/PaiKuGetList",
+                allowSearch: true,
+                width: 280,
+            });
         },
         /*初始化数据*/
         initData: function () {
             if (!!selectedRow) {
-                keyValue = selectedRow.Code;
+                keyValue = selectedRow.Id;
                 $('#form').lrSetFormData(selectedRow);
             }
         }
@@ -28,7 +37,7 @@ var bootstrap = function ($, learun) {
             return false;
         }
         var postData = $('#form').lrGetFormData(keyValue);
-        $.lrSaveForm(top.$.rootUrl + '/FJManager/BillBomSet/SaveForm?keyValue=' + keyValue, postData, function (res) {
+        $.lrSaveForm(top.$.rootUrl + '/FJManager/BillBomSet/SaveFormPK?keyValue=' + keyValue, postData, function (res) {
             // 保存成功后才回调
             if (!!callBack) {
                 callBack();

+ 6 - 11
WMS.BZWeb/Areas/FJManager/Views/BillBomSet/PaiKu.cshtml

@@ -19,21 +19,16 @@
                         <div id="multiple_condition_query">
                             <div class="lr-query-formcontent">
                                 <div class="col-xs-4 lr-form-item">
-                                    <div class="lr-form-item-title">垛型ID</div>
-                                    <input id="BomsetgrpId" type="text" class="form-control" placeholder="请输入查询垛型id" />
+                                    <div class="lr-form-item-title">垛型</div>
+                                    <div id="BomsetgrpId"></div>
                                 </div>
                                 <div class="col-xs-4 lr-form-item">
-                                    <div class="lr-form-item-title">所属仓库Id</div>
-                                    <input id="WarehousId" type="text" class="form-control" placeholder="请输入查询所属仓库id" />
+                                    <div class="lr-form-item-title">仓库</div>
+                                    <div id="WarehouseId"></div>
                                 </div>
                                 <div class="col-xs-4 lr-form-item">
-                                    <div class="lr-form-item-title">所属仓库编码</div>
-                                    <input id="WarehouseCode" type="text" class="form-control" placeholder="请输入查询所属仓库编码" />
-                                </div>
-
-                                <div class="col-xs-4 lr-form-item">
-                                    <div class="lr-form-item-title">对应仓库占比</div>
-                                    <input id="Percent" type="text" class="form-control" placeholder="请输入查询仓库占比" />
+                                    <div class="lr-form-item-title">排库占比</div>
+                                    <input id="Percent" type="text" class="form-control" placeholder="请输入排库占比" />
                                 </div>                               
                             </div>
                         </div>

+ 41 - 126
WMS.BZWeb/Areas/FJManager/Views/BillBomSet/PaiKu.js

@@ -1,4 +1,5 @@
 var refreshGirdData;
+var selectedRow;
 var bootstrap = function ($, learun) {
     "use strict";
     var selectRowsData;
@@ -9,7 +10,8 @@ var bootstrap = function ($, learun) {
     { "url": "/FJManager/BillBomSet/DFM6", "name": "DFM6", "width": 920, "height": 676 },
     { "url": "/FJManager/BillBomSet/DFM09", "name": "DFM9", "width": 940, "height": 676 },
     { "url": "/FJManager/BillBomSet/Exception", "name": "Exception", "width": 920, "height": 676 },
-    { "url": "/FJManager/BillBomSet/DFMAll", "name": "DFMAll", "width": 920, "height": 676 },];
+    { "url": "/FJManager/BillBomSet/DFMAll", "name": "DFMAll", "width": 920, "height": 676 },
+    { "url": "/FJManager/BillBomSet/Form", "name": "PaiKu", "width": 920, "height": 676 }];
     var page = {
         init: function () {
             page.bind();
@@ -21,25 +23,15 @@ var bootstrap = function ($, learun) {
                 // queryJson 查询条件
                 console.log(queryJson);
 
-                queryJson["Code"] = $("#Code").val();
-                queryJson["Name"] = $("#Name").val();
-                queryJson["ShortCode"] = $("#ShortCode").val();
-                queryJson["ProMaterCode"] = $("#ProMaterCode").val();
-                queryJson["BomCode"] = $("#BomCode").val();
+                queryJson["Percent"] = $("#Percent").val();
 
-                if ($("#IsStop").is(":checked")) {
-                    queryJson["IsStop"] = '1';
-                } else {
-                    queryJson["IsStop"] = '';
-                }
-
-                queryJson["StampType"] = stampType;
                 page.search({ queryJson: JSON.stringify(queryJson) });
             }, 250);
+
             // 查询
             $('#btn_Search').on('click', function () {
                 var keyword = $('#txt_Keyword').val();
-                page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val(), StampType: stampType }) });
+                page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
             });
 
             // 刷新
@@ -51,10 +43,10 @@ var bootstrap = function ($, learun) {
             $('#lr_add').on('click', function () {
                 learun.layerForm({
                     id: 'form',
-                    title: '新增' + urls[parseInt(stampType) - 1].name,
-                    url: top.$.rootUrl + urls[parseInt(stampType) - 1].url,
-                    width: urls[parseInt(stampType) - 1].width,
-                    height: urls[parseInt(stampType) - 1].height,
+                    title: '新增' + urls[7].name,
+                    url: top.$.rootUrl + urls[7].url,
+                    width: urls[7].width,
+                    height: urls[7].height,
                     callBack: function (id) {
                         return top[id].acceptClick(refreshGirdData);
                     }
@@ -62,24 +54,25 @@ var bootstrap = function ($, learun) {
             });
             // 编辑
             $('#lr_edit').on('click', function () {
-                let editSelRows = $('#gridtable').jfGridGet("rowdata");
-                if (editSelRows.length == 0) {
+                selectedRow = $('#gridtable').jfGridGet("rowdata");
+                if (selectedRow.length == 0) {
                     learun.alert.error('未选择行!');
                     return false;
                 }
-                if (editSelRows.length > 1) {
+                if (selectedRow.length > 1) {
                     learun.alert.error('选择了多行!');
                     return false;
                 }
 
-                var keyValue = $('#gridtable').jfGridValue('Id');
+                var keyValue = selectedRow[0].Id;
+                selectedRow = selectedRow[0];
                 if (learun.checkrow(keyValue)) {
                     learun.layerForm({
                         id: 'form',
-                        title: '编辑' + urls[parseInt(stampType) - 1].name,
-                        url: top.$.rootUrl + urls[parseInt(stampType) - 1].url + '?keyValue=' + keyValue,
-                        width: urls[parseInt(stampType) - 1].width,
-                        height: urls[parseInt(stampType) - 1].height,
+                        title: '编辑' + urls[7].name,
+                        url: top.$.rootUrl + urls[7].url + '?keyValue=' + keyValue,
+                        width: urls[7].width,
+                        height: urls[7].height,
                         callBack: function (id) {
                             return top[id].acceptClick(refreshGirdData);
                         }
@@ -175,129 +168,51 @@ var bootstrap = function ($, learun) {
             $('#lr_print').on('click', function () {
                 $('#gridtable').jqprintTable();
             });
+
+            $('#WarehouseId').lrselect({
+                url: top.$.rootUrl + "/FJManager/BaseWarehouse/PaiKuGetSelectWarehouseCodeNameList",
+                allowSearch: true,
+                width: 180,
+            });
+            $('#BomsetgrpId').lrselect({
+                url: top.$.rootUrl + "/FJManager/BillBomSet/PaiKuGetList",
+                allowSearch: true,
+                width: 180,
+            });
         },
         // 初始化列表
         initGird: function () {
             $('#gridtable').jfGrid({
                 url: top.$.rootUrl + '/FJManager/BillBomSet/GetPaiKuList',
                 headData: [
-                    { label: '垛型编码', name: 'BomsetgrpId', width: 160, align: 'left' },
+                    { label: 'ID', name: 'Id', width: 160, align: 'left' },
                     { label: '垛型名称', name: 'BomsetgrpName', width: 160, align: 'left' },
-                    { label: '所属仓库id', name: 'WarehousId', width: 160, align: 'left' },
-                    { label: '所属仓库编码', name: 'WarehouseCode', width: 50, align: 'left' },
-                    { label: '垛型对应仓库占比', name: 'Percent', width: 100, align: 'left' },
-                    //{ label: '投料物料编码', name: 'ProCode', width: 180, align: 'left' },
-                    //{ label: '实际物料编码', name: 'BomCode', width: 180, align: 'left' },
-                    //{
-                    //    label: '投料物料名称', name: 'BomCode', width: 180, align: 'left', formatterAsync: function (callback, value, row) {
-                    //        learun.httpAsync('GET', top.$.rootUrl + '/FJManager/BillBomInfo/GetList', { queryJson: JSON.stringify({ Code: value }) }, function (res) {
-                    //            if (res.code > 0 && res.data.length > 0) {
-                    //                callback(res.data[0].Name);
-                    //            }
-                    //        });
-                    //    },
-                    //},
-                    
+                    { label: '仓库编码', name: 'WarehouseCode', width: 160, align: 'left' },
+                    { label: '排库占比', name: 'Percent', width: 100, align: 'left' },
+                    { label: '垛型编码', name: 'BomsetgrpId', width: 160, align: 'left' },
+                    { label: '仓库ID', name: 'WarehousId', width: 160, align: 'left' },
+
                     learun.jfFormatter.col_AddWho(),
                     learun.jfFormatter.col_AddTime(),
                     learun.jfFormatter.col_EditWho(),
                     learun.jfFormatter.col_EditTime(),
                     learun.jfFormatter.col_MEMO()
                 ],
-                mainId: 'Code',
+                mainId: 'Id',
                 isPage: true,
                 isMultiselect: true,
                 reloadSelected: true,
-                sidx: 'Code',
-                isSubGrid: true,             // 是否有子表
-                //subGridExpanded: function (subid, rowdata) {
-                //    psuid = subid;
-                //    $('#' + subid).jfGrid({
-                //        url: top.$.rootUrl + '/FJManager/BillBomSet/GetPaiKuList',
-                //        headData: [
-                //            { label: '编号', name: 'XYNo', width: 40, align: 'left' },
-                //            { label: '行', name: 'Row', width: 40, align: 'left' },
-                //            { label: '物料编码', name: 'MatCode', width: 200, align: 'left' },
-                //            { label: '物料Id', name: 'MatId', width: 150, align: 'left' },
-                //            {
-                //                label: '有/无', name: 'IsEmpty', width: 60, align: 'left', formatter: function (cellvalue) {
-                //                    if (cellvalue == '0') {
-                //                        return '<span class=\"label label-success\"  >有</span>';
-                //                    } else if (cellvalue == '1') {
-                //                        return '<span class=\"label  label-default\" >无</span>';
-                //                    } else {
-                //                        return '<span class=\"label  label-default\" >未知</span>';
-                //                    }
-                //                }
-                //            },
-                //            {
-                //                label: '正/反面', name: 'SideNum', width: 70, align: 'left', formatter: function (cellvalue) {
-                //                    if (cellvalue == '1') {
-                //                        return '<span class=\"label label-success\"  >正面朝上</span>';
-                //                    } else if (cellvalue == '2') {
-                //                        return '<span class=\"label  label-default\" >反面朝上</span>';
-                //                    } else {
-                //                        return '<span class=\"label  label-default\" >未知</span>';
-                //                    }
-                //                }
-                //            },
-                //            { label: '工字轮型号', name: 'SpoolType', width: 80, align: 'left' },
-                //            {
-                //                label: '单/双丝', name: 'SilkType', width: 80, align: 'left', formatter: function (cellvalue) {
-                //                    if (cellvalue == '1') {
-                //                        return '<span class=\"label label-success\"  >单丝</span>';
-                //                    } else if (cellvalue == '2') {
-                //                        return '<span class=\"label  label-default\" >双丝</span>';
-                //                    } else if (cellvalue == '3') {
-                //                        return '<span class=\"label  label-default\" >三丝</span>';
-                //                    }
-                //                    else {
-                //                        return '<span class=\"label  label-default\" >未知</span>';
-                //                    }
-                //                }
-                //            },
-                //            { label: '钢丝直径上限', name: 'SilkDiam', width: 100, align: 'left' },
-                //            /* { label: '钢丝直径上限', name: 'SilkDiamMaxCount', width: 100, align: 'left' },*/
-                //            { label: '数量上限', name: 'QtyMaxCount', width: 100, align: 'left' },
-                //            {
-                //                label: '是否芯股', name: 'IsCore', width: 100, align: 'left', formatter: function (cellvalue) {
-                //                    if (cellvalue == '1') {
-                //                        return '<span class=\"label label-success\"  >是</span>';
-                //                    } else if (cellvalue == '2') {
-                //                        return '<span class=\"label  label-default\" >否</span>';
-                //                    }
-                //                    else {
-                //                        return '<span class=\"label  label-default\" >未知</span>';
-                //                    }
-                //                }
-                //            },
-                //            {
-                //                label: '是混合行', name: 'IsMixRow', width: 100, align: 'left', formatter: function (cellvalue) {
-                //                    if (cellvalue == '1') {
-                //                        return '<span class=\"label label-success\"  >是</span>';
-                //                    } else if (cellvalue == '0') {
-                //                        return '<span class=\"label  label-default\" >否</span>';
-                //                    }
-                //                    else {
-                //                        return '<span class=\"label  label-default\" >未知</span>';
-                //                    }
-                //                }
-                //            },
-                //            { label: '混合料行编码', name: 'MixRowCode', width: 100, align: 'left' },
-                //            learun.jfFormatter.col_ISSTOP(),
-                //        ]
-                //    });
-                //    $('#' + subid).jfGridSet('reloadSon', { bomSetHdrId: rowdata.Id });
-                //},
+                sidx: 'BomsetgrpName',
+                isSubGrid: false,             // 是否有子表
             });
-            page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val(), StampType: stampType }) });
+            page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
         },
         search: function (param) {
             $('#gridtable').jfGridSet('reload', param);
         }
     };
     refreshGirdData = function () {
-        $('#gridtable').jfGridSet('reload');
+        page.search();
     };
     page.init();
 }