Browse Source

扩展货位功能,重构服务和控制器逻辑

在 `WareCellDto.cs` 中添加多个属性和类,增强 `WarecellDto` 和 `WarecellListQueryDto` 的功能。修改 `BaseWarecell.cs` 中属性的数据类型并更新注释。重构 `WareCellService.cs`,添加新方法以支持复杂查询。更新 `WMS.BZSqlSugar.csproj` 中的依赖版本。重构 `BaseWareCellController.cs` 和 `QueryCellController.cs`,添加新操作并提高可读性。更新视图文件和 JavaScript 逻辑,确保与新数据模型一致。最后,添加新的数据库连接配置到 `appsettings.json`。
林豪 左 5 months ago
parent
commit
ef98f627ca

+ 295 - 0
WMS.BZModels/Dto/KLHC/WareCellDtos/WareCellDto.cs

@@ -0,0 +1,295 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace WMS.BZModels.Dto.KLHC.WareCellDtos
+{
+
+    public class WarecellDto
+    {
+        /// <summary>  
+        /// Id
+        /// </summary> 
+        public string Id { get; set; }
+
+        /// <summary> 
+        /// WarehouseId
+        /// </summary> 
+        public string WarehouseId { get; set; }
+
+        public string WarehouseName { get; set; } 
+        /// <summary> 
+        /// WarehouseCode
+        /// </summary> 
+        public string WarehouseCode { get; set; }
+
+        /// <summary> 
+        /// WareAreaId
+        /// </summary> 
+        public string WareAreaId { get; set; }
+
+        /// <summary> 
+        /// IsStop
+        /// </summary> 
+        public int IsStop { get; set; }
+
+        /// <summary> 
+        /// Code
+        /// </summary> 
+        public string Code { get; set; }
+
+        /// <summary> 
+        /// Name
+        /// </summary> 
+        public string Name { get; set; }
+
+        /// <summary> 
+        /// StateNum
+        /// </summary> 
+        public int? StateNum { get; set; }
+
+        /// <summary> 
+        /// TypeNum
+        /// </summary> 
+        public int? TypeNum { get; set; }
+
+        public string TypeName
+        {
+            get
+            {
+                var result = "";
+                if (TypeNum != null && TypeNum.HasValue)
+                {
+                    result = ((LocationType)TypeNum.Value).GetDescription();
+                }
+                return result;
+            }
+        }
+
+
+
+        public string StatusName
+        {
+
+            get
+            {
+                var result = "";
+                if (StateNum != null && StateNum.HasValue)
+                {
+                    result = ((LocationState)StateNum.Value).GetDescription();
+                }
+                return result;
+            }
+        }
+
+        /// <summary> 
+        /// Size
+        /// </summary> 
+        public int Size { get; set; }
+
+        /// <summary> 
+        /// Row
+        /// </summary> 
+        public int Row { get; set; }
+
+        /// <summary> 
+        /// Col
+        /// </summary> 
+        public int Col { get; set; }
+
+        /// <summary> 
+        /// Layer
+        /// </summary> 
+        public int Layer { get; set; }
+
+        /// <summary> 
+        /// Depth
+        /// </summary> 
+        public int Depth { get; set; }
+
+        /// <summary> 
+        /// Tunnel
+        /// </summary> 
+        public int Tunnel { get; set; }
+
+        /// <summary> 
+        /// SCRel
+        /// </summary> 
+        public string SCRel { get; set; }
+
+        /// <summary> 
+        /// ContGrpId
+        /// </summary> 
+        public string ContGrpId { get; set; }
+
+        /// <summary> 
+        /// ContGrpBarCode
+        /// </summary> 
+        public string ContGrpBarCode { get; set; }
+
+        /// <summary> 
+        /// Memo
+        /// </summary> 
+        public string Memo { get; set; }
+
+        /// <summary> 
+        /// AddWho
+        /// </summary> 
+        public string AddWho { get; set; }
+
+        /// <summary> 
+        /// AddTime
+        /// </summary> 
+        public DateTime AddTime { get; set; }
+
+        /// <summary> 
+        /// EditWho
+        /// </summary> 
+        public string EditWho { get; set; }
+
+        /// <summary> 
+        /// EditTime
+        /// </summary> 
+        public DateTime EditTime { get; set; }
+
+        /// <summary> 
+        /// Shelf
+        /// </summary> 
+        public string Shelf { get; set; }
+
+
+        /// <summary> 
+        /// 组ID
+        /// </summary> 
+        public string GroupID { get; set; }
+
+        /// <summary> 
+        /// 环形库表示当前货位最终出库时要出到那个垛形中去
+        /// </summary> 
+        public string XYNO { get; set; }
+
+    }
+
+    public class WarecellListQueryDto : PagerInfo
+    {
+        /// <summary> 
+        /// WareAreaId
+        /// </summary> 
+        public string WareAreaId { get; set; }
+
+        public string WarehouseId { get; set; }
+        /// <summary> 
+        /// IsStop
+        /// </summary> 
+        public string IsStop { get; set; }
+
+        /// <summary> 
+        /// Code
+        /// </summary> 
+        public string Code { get; set; }
+
+        /// <summary> 
+        /// Name
+        /// </summary> 
+        public string Name { get; set; }
+
+        /// <summary> 
+        /// StateNum
+        /// </summary> 
+        public string StateNum { get; set; }
+
+        /// <summary> 
+        /// TypeNum
+        /// </summary> 
+        public string TypeNum { get; set; }
+
+        /// <summary> 
+        /// Tunnel
+        /// </summary> 
+        public string Tunnel { get; set; }
+
+        public string Layer { get; set; }
+        /// <summary> 
+        /// SCRel
+        /// </summary> 
+        public string SCRel { get; set; }
+
+        /// <summary> 
+        /// ContGrpBarCode
+        /// </summary> 
+        public string ContGrpBarCode { get; set; }
+
+        public DateTime? AddTimeFrom { get; set; }
+
+        public DateTime? AddTimeTo { get; set; }
+        public string Row { get; set; }
+        public string Col { get; set; }
+        /// <summary> 
+        /// 组ID
+        /// </summary> 
+        public string GroupID { get; set; }
+
+        /// <summary> 
+        /// 环形库表示当前货位最终出库时要出到那个垛形中去
+        /// </summary> 
+        public string XYNO { get; set; }
+
+        public string Size { get; set; }
+    }
+
+    public class WarecellQuery
+    {
+        /// <summary>
+        /// 堆垛机
+        /// </summary>
+        public string SCRel { get; set; }
+
+
+    }
+    public class StockLocationViewDto
+    {
+        public List<StockLocationItemViewDto> LeftJson { get; set; }
+        public List<StockLocationItemViewDto> RightJson { get; set; }
+        public List<StockLocationItemViewDto> LeftDummyJson { get; set; }
+        public List<StockLocationItemViewDto> RightDummyJson { get; set; }
+        public int X { get; set; }
+        public int Y { get; set; }
+    }
+
+    public class StockLocationItemViewDto
+    {
+        public string Id { get; set; }
+        public string Name { get; set; }
+        public string ContGrpId { get; set; }
+
+        public string LocationCode { get; set; }
+        public string MapLocationCode { get; set; }
+        public string LocationState { get; set; }
+        public string LocationStateName { get; set; }
+        public string LocationLock { get; set; }
+        public string LocationLockName { get; set; }
+        public int Sort { get; set; }
+        public string LogicRow { get; set; }
+        public string LogicCol { get; set; }
+        public string LogicLayer { get; set; }
+        public string PhysicalRow { get; set; }
+        public string PhysicalCol { get; set; }
+        public string PhysicalLayer { get; set; }
+        public string Depth { get; set; }
+        public List<double> value { get; set; }
+        public ItemStyle itemStyle { get; set; }
+
+    }
+    public class ItemStyle
+    {
+        public Normal normal { get; set; }
+    }
+
+    public class Normal
+    {
+        public string color { get; set; }
+    }
+}

+ 29 - 59
WMS.BZModels/Models/KLHC/BaseWarecell.cs

@@ -10,153 +10,123 @@ namespace WMS.BZModels.Models.KLHC
     public partial class BaseWarecell : BaseModel
     {
         /// <summary>
-        ///  仓库ID
+        /// WarehouseId
         /// </summary>
         [SugarColumn(ColumnDataType = "bigint", IsNullable = false)]
         public long WarehouseId { get; set; }
 
         /// <summary>
-        /// 仓库编码
+        /// WarehouseCode
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false)]
         public string WarehouseCode { get; set; }
 
         /// <summary>
-        ///  库区ID
+        /// WareAreaId
         /// </summary>
         [SugarColumn(ColumnDataType = "bigint", IsNullable = false)]
         public long WareAreaId { get; set; }
 
         /// <summary>
-        ///  是否停用 0正常 1停用
+        /// IsStop
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int IsStop { get; set; }
 
         /// <summary>
-        ///  货位编码
+        /// Code
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false)]
         public string Code { get; set; }
 
         /// <summary>
-        ///  货位名称
+        /// Name
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = false)]
         public string Name { get; set; }
 
         /// <summary>
-        ///  货位状态
+        /// StateNum
         /// </summary>
-        [SugarColumn(IsNullable = false)]
-        public FjLocationState StateNum { get; set; }
+        [SugarColumn(ColumnDataType = "int", IsNullable = false)]
+        public int StateNum { get; set; }
 
         /// <summary>
-        ///  货位类型
+        /// TypeNum
         /// </summary>
-        [SugarColumn(IsNullable = false)]
-        public FjLocationType TypeNum { get; set; }
+        [SugarColumn(ColumnDataType = "int", IsNullable = false)]
+        public int TypeNum { get; set; }
 
         /// <summary>
-        ///  货位大小
+        /// Size
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
-        public long Size { get; set; }
+        public int Size { get; set; }
 
         /// <summary>
-        /// 
+        /// Row
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int Row { get; set; }
 
         /// <summary>
-        /// 
+        /// Col
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int Col { get; set; }
 
         /// <summary>
-        /// 
+        /// Layer
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int Layer { get; set; }
 
         /// <summary>
-        ///  深度
+        /// Depth
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int Depth { get; set; }
 
         /// <summary>
-        ///  巷道
+        /// Tunnel
         /// </summary>
         [SugarColumn(ColumnDataType = "int", IsNullable = false)]
         public int Tunnel { get; set; }
 
         /// <summary>
-        ///  堆垛机
+        /// SCRel
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false)]
         public string SCRel { get; set; }
 
         /// <summary>
-        ///  容器ID
+        /// ContGrpId
         /// </summary>
         [SugarColumn(ColumnDataType = "bigint", IsNullable = true)]
         public long? ContGrpId { get; set; }
 
         /// <summary>
-        ///  容器编码
+        /// ContGrpBarCode
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]
         public string ContGrpBarCode { get; set; }
 
         /// <summary>
-        ///  货架
+        /// Shelf
         /// </summary>
         [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]
         public string Shelf { get; set; }
 
         /// <summary>
-        ///  备注
-        /// </summary>
-        [SugarColumn(ColumnDataType = "nvarchar", Length = 500, IsNullable = false)]
-        public string Memo { get; set; }
-
-        /// <summary>
-        ///  添加用户
-        /// </summary>
-        [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false)]
-        public string AddWho { get; set; }
-
-        /// <summary>
-        ///  添加时间
-        /// </summary>
-        [SugarColumn(ColumnDataType = "datetime", IsNullable = false)]
-        public DateTime AddTime { get; set; }
-
-        /// <summary>
-        ///  更新用户
-        /// </summary>
-        [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = false)]
-        public string EditWho { get; set; }
-
-        /// <summary>
-        ///  更新时间
+        /// 组ID
         /// </summary>
-        [SugarColumn(ColumnDataType = "datetime", IsNullable = false)]
-        public DateTime EditTime { get; set; }
-
-        /// <summary>
-        ///  组ID
-        /// </summary>
-        [SugarColumn(ColumnDataType = "bigint", IsNullable = true)]
-        public long GroupID { get; set; }
+        [SugarColumn(ColumnDataType = "bigint", IsNullable = true, ColumnDescription = "组ID")]
+        public long? GroupID { get; set; }
 
         /// <summary>
-        ///  环形库表示当前货位最终出库时要出到那个垛形中去
+        /// 环形库表示当前货位最终出库时要出到那个垛形中去
         /// </summary>
-        [SugarColumn(ColumnDataType = "int", IsNullable = true)]
-        public int XYNO { get; set; }
+        [SugarColumn(ColumnDataType = "int", IsNullable = true, ColumnDescription = "环形库表示当前货位最终出库时要出到那个垛形中去")]
+        public int? XYNO { get; set; }
     }
 }

+ 1 - 12
WMS.BZServices/FJ/WareCellService.cs

@@ -1,21 +1,10 @@
 using Mapster;
-using Microsoft.AspNetCore.DataProtection;
 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.BillInvDtos;
 using WMS.BZModels.Dto.FJ.WareCellDtos;
-using WMS.BZModels.Dto.FJ.TaskDtos;
-using WMS.Info;
 using WMS.BZSqlSugar;
-using Dm;
-using NPOI.SS.Formula.Functions;
-using static NPOI.HSSF.Util.HSSFColor;
+using WMS.Info;
 
 namespace WMS.BZServices.FJ
 {

+ 440 - 0
WMS.BZServices/KLHC/WareCellService.cs

@@ -0,0 +1,440 @@
+using Mapster;
+using SqlSugar;
+using WMS.BZModels;
+using WMS.BZModels.Dto.KLHC.WareCellDtos;
+using WMS.BZModels.Models.KLHC;
+using WMS.BZSqlSugar;
+using WMS.Info;
+
+namespace WMS.BZServices.KLHC
+{
+    public class WareCellService
+    {
+        private readonly Repository<BaseWarecell> _warecellRepository;
+        private readonly Repository<BaseWarehouse> _warehouseRepository;
+
+        public WareCellService(Repository<BaseWarecell> warecellRepository, Repository<BaseWarehouse> warehouseRepository)
+        {
+            _warecellRepository = warecellRepository;
+            _warehouseRepository = warehouseRepository;
+        }
+
+        public IEnumerable<dynamic> GetSelectSRMNameList()
+        {
+            return _warecellRepository.Queryable().Select(o => o.SCRel).Distinct().ToList().OrderBy(o => o).Select(o => new { id = o, text = o });
+        }
+
+        /// <summary>
+        /// 获取仓库有多少排
+        /// </summary>
+        /// <param name="houseNo">仓库编号</param>
+        /// <returns></returns>
+        public int GetMaxLine(string houseNo)
+        {
+            try
+            {
+                return _warecellRepository.Queryable().Where(it => it.WarehouseCode == houseNo).Max(it => it.Row);
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        public StockLocationViewDto GetLocList(WarecellQuery query)
+        {
+            var result = new StockLocationViewDto();
+            var predicate = Expressionable.Create<BaseWarecell>();
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(query.SCRel), m => m.SCRel == query.SCRel);
+            var list = _warecellRepository.Queryable().Where(predicate.ToExpression()).ToList();
+            var grouplist = from p in list
+                            group p by p.Shelf into g
+                            let q = list.Where(x => x.Shelf == g.Key)
+                            orderby g.Key ascending
+                            select new
+                            {
+                                Shelf = q.Select(y => y.Shelf).FirstOrDefault(),
+                            };
+
+            string LeftShelf = string.Empty;
+            string RightShelf = string.Empty;
+            if (grouplist.Count() > 0)
+            {
+                LeftShelf = grouplist.ElementAt(0).Shelf;
+                var leftlist = list.Where(p => p.Shelf == LeftShelf).ToList();
+                result.LeftJson = new List<StockLocationItemViewDto>();
+                result.LeftJson = TransToLocationView(leftlist.Adapt<List<WarecellDto>>());
+                if (leftlist.Any())
+                {
+                    result.X = leftlist.Select(p => p.Col).OrderByDescending(p => p).First();
+                    result.Y = leftlist.Select(p => p.Layer).OrderByDescending(p => p).First();
+                }
+            }
+            if (grouplist.Count() > 1)
+            {
+                RightShelf = grouplist.ElementAt(1).Shelf;
+                var rightlist = list.Where(p => p.Shelf == RightShelf).ToList();
+                result.RightJson = new List<StockLocationItemViewDto>();
+                result.RightJson = TransToLocationView(rightlist.Adapt<List<WarecellDto>>());
+                if (rightlist.Any())
+                {
+                    int tempX = rightlist.Select(p => p.Col).OrderByDescending(p => p).First();
+                    int tempY = rightlist.Select(p => p.Layer).OrderByDescending(p => p).First();
+                    if (tempX > result.X)
+                    {
+                        result.X = tempX;
+                    }
+                    if (tempY > result.Y)
+                    {
+                        result.Y = tempY;
+                    }
+                }
+            }
+            return result;
+        }
+
+        private List<StockLocationItemViewDto> TransToLocationView(List<WarecellDto> locationEntities)
+        {
+            var stockColor = "#52c41a";
+            var emptyColor = "#e0e0e0";
+            var lockColor = "#ffff00";
+            var faultColor = "#ff0000";//故障
+
+            var dicColor = new Dictionary<int, string>() { };
+            dicColor.Add((int)LocationState.LocationState_Empty, emptyColor);
+            dicColor.Add((int)LocationState.LocationState_Full, stockColor);
+            dicColor.Add((int)LocationState.LocationState_StockIn, lockColor);
+            dicColor.Add((int)LocationState.LocationState_StockOut, lockColor);
+            dicColor.Add((int)LocationState.LocationState_StockMove, lockColor);
+            dicColor.Add(6, faultColor);
+
+            double viewHeight = 0.3;
+            double viewWidth = 0.8;
+            double viewHeightPadding = 0.5;
+
+            var list = new List<StockLocationItemViewDto>();
+            if (locationEntities != null && locationEntities.Any())
+            {
+                foreach (var item in locationEntities)
+                {
+                    var itemView = item.Adapt<StockLocationItemViewDto>();
+                    //itemView.LocationState = item.StateNum.HasValue? item.StateNum.Value.ToString():"1";
+                    itemView.LocationStateName = item.StateNum == 2 || item.StateNum == 4 ? "有货" : "无货";
+
+                    double y1 = item.Depth == 1 ? item.Layer + 0.1 : viewHeightPadding + item.Layer + 0.1;
+                    double y2 = Math.Round(y1 + viewHeight, 1, MidpointRounding.AwayFromZero);
+                    double x1 = item.Col + 0.1;
+                    double x2 = Math.Round(x1 + viewWidth, 1, MidpointRounding.AwayFromZero);
+                    itemView.value = new List<double>()
+                    {
+                        y1,y2,x1,x2
+                    };
+                    string color = "";
+                    dicColor.TryGetValue(item.StateNum.Value, out color);
+                    //if ((!string.IsNullOrEmpty(item.LocationLock) && item.LocationLock != DictionaryConst.LocationLockNoneCode))
+                    //{
+                    //    color = lockColor;
+                    //}
+                    if (item.IsStop == 1 || item.StateNum == 0)
+                    {
+                        color = faultColor;
+                    }
+                    itemView.itemStyle = new ItemStyle()
+                    {
+                        normal = new Normal()
+                        {
+                            color = color
+                        }
+                    };
+
+                    list.Add(itemView);
+                }
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// 获取储位信息
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<WarecellDto> GetLocList(string houserNo, int line)
+        {
+            var predicate = Expressionable.Create<BaseWarecell>().And(o => o.IsStop == 0);
+
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(houserNo), m => m.WarehouseCode == houserNo);
+            predicate = predicate.AndIF(line > 0, m => m.Row == line);
+
+            var resultList = _warecellRepository.Queryable().Where(predicate.ToExpression()).ToList().Adapt<List<WarecellDto>>();
+
+            return resultList;
+        }
+
+        public IEnumerable<WarecellDto> GetListsByGroupID(long groupID)
+        {
+            if (groupID <= 0)
+                return new List<WarecellDto>();
+            var predicate = Expressionable.Create<BaseWarecell, BaseWarehouse>();
+            predicate = predicate.AndIF(groupID > 0, (warecell, warehouse) => warecell.GroupID == groupID);
+            var list = _warecellRepository.Context.Queryable<BaseWarecell, BaseWarehouse>((warecell, warehouse) => new object[] { JoinType.Left, warecell.WarehouseId == warehouse.Id }).Where(predicate.ToExpression())
+             .Select((warecell, warehouse) => new WarecellDto
+             {
+                 Id = warecell.Id.ToString(),
+                 WarehouseName = warehouse.Name,
+                 WarehouseId = warecell.WarehouseId.ToString(),
+                 WarehouseCode = warecell.WarehouseCode,
+                 WareAreaId = warecell.WareAreaId.ToString(),
+                 IsStop = warecell.IsStop,
+                 Code = warecell.Code,
+                 Name = warecell.Name,
+                 StateNum = warecell.StateNum,
+                 TypeNum = warecell.TypeNum,
+                 Size = warecell.Size,
+                 Row = warecell.Row,
+                 Col = warecell.Col,
+                 Layer = warecell.Layer,
+                 Depth = warecell.Depth,
+                 Tunnel = warecell.Tunnel,
+                 SCRel = warecell.SCRel,
+                 ContGrpId = warecell.ContGrpId == null ? "" : warecell.ContGrpId.ToString(),
+                 ContGrpBarCode = warecell.ContGrpBarCode,
+                 Shelf = warecell.Shelf,
+                 GroupID = warecell.GroupID == null ? "" : warecell.GroupID.ToString(),
+                 XYNO = warecell.XYNO == null ? "" : warecell.XYNO.ToString(),
+                 Memo = warecell.Memo,
+                 AddWho = warecell.AddWho,
+                 AddTime = warecell.AddTime,
+                 EditWho = warecell.EditWho,
+                 EditTime = warecell.EditTime,
+             }).MergeTable()
+              .ToList();
+            return list;
+        }
+
+        public PagedInfo<WarecellDto> GetPageList(Pagination pagination, WarecellListQueryDto warecellListQueryDto)
+        {
+            var predicate = Expressionable.Create<BaseWarecell, BaseWarehouse>();
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.KeyWord), (warecell, warehouse) => warecell.Code.Contains(warecellListQueryDto.KeyWord) || warecell.Name.Contains(warecellListQueryDto.KeyWord));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.WarehouseId), (warecell, warehouse) => warecell.WarehouseId.ToString().Equals(warecellListQueryDto.WarehouseId));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.WareAreaId), (warecell, warehouse) => warecell.WareAreaId.ToString().Contains(warecellListQueryDto.WareAreaId));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.IsStop), (warecell, warehouse) => warecell.IsStop.Equals(warecellListQueryDto.IsStop));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Code), (warecell, warehouse) => warecell.Code.Contains(warecellListQueryDto.Code));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Name), (warecell, warehouse) => warecell.Name.Contains(warecellListQueryDto.Name));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Tunnel), (warecell, warehouse) => warecell.Tunnel.ToString().Contains(warecellListQueryDto.Tunnel));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Layer), (warecell, warehouse) => warecell.Layer.Equals(warecellListQueryDto.Layer));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.SCRel), (warecell, warehouse) => warecell.SCRel.Contains(warecellListQueryDto.SCRel));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Row), (warecell, warehouse) => warecell.Row == int.Parse(warecellListQueryDto.Row));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Col), (warecell, warehouse) => warecell.Col == int.Parse(warecellListQueryDto.Col));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.ContGrpBarCode), (warecell, warehouse) => warecell.ContGrpBarCode.Contains(warecellListQueryDto.ContGrpBarCode));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.TypeNum), (warecell, warehouse) => warecell.TypeNum.Equals(warecellListQueryDto.TypeNum));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.StateNum), (warecell, warehouse) => warecell.StateNum.Equals(warecellListQueryDto.StateNum));
+            predicate = predicate.AndIF(warecellListQueryDto != null && warecellListQueryDto.AddTimeFrom.HasValue, (warecell, warehouse) => warecell.AddTime >= warecellListQueryDto.AddTimeFrom);
+            predicate = predicate.AndIF(warecellListQueryDto != null && warecellListQueryDto.AddTimeTo.HasValue, (warecell, warehouse) => warecell.AddTime <= warecellListQueryDto.AddTimeTo);
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.GroupID), (warecell, warehouse) => warecell.GroupID.ToString().Contains(warecellListQueryDto.GroupID));
+            predicate = predicate.AndIF(!string.IsNullOrEmpty(warecellListQueryDto?.Size), (warecell, warehouse) => warecell.Size.ToString().Contains(warecellListQueryDto.Size));
+
+            var list = _warecellRepository.Context.Queryable<BaseWarecell, BaseWarehouse>((warecell, warehouse) => new object[] { JoinType.Left, warecell.WarehouseId == warehouse.Id }).Where(predicate.ToExpression())
+                .Select((warecell, warehouse) => new WarecellDto
+                {
+                    Id = warecell.Id.ToString(),
+                    WarehouseName = warehouse.Name,
+                    WarehouseId = warecell.WarehouseId.ToString(),
+                    WarehouseCode = warecell.WarehouseCode,
+                    WareAreaId = warecell.WareAreaId.ToString(),
+                    IsStop = warecell.IsStop,
+                    Code = warecell.Code,
+                    Name = warecell.Name,
+                    StateNum = warecell.StateNum,
+                    TypeNum = warecell.TypeNum,
+                    Size = warecell.Size,
+                    Row = warecell.Row,
+                    Col = warecell.Col,
+                    Layer = warecell.Layer,
+                    Depth = warecell.Depth,
+                    Tunnel = warecell.Tunnel,
+                    SCRel = warecell.SCRel,
+                    ContGrpId = warecell.ContGrpId == null ? "" : warecell.ContGrpId.ToString(),
+                    ContGrpBarCode = warecell.ContGrpBarCode,
+                    Shelf = warecell.Shelf,
+                    GroupID = warecell.GroupID == null ? "" : warecell.GroupID.ToString(),
+                    XYNO = warecell.XYNO == null ? "" : warecell.XYNO.ToString(),
+                    Memo = warecell.Memo,
+                    AddWho = warecell.AddWho,
+                    AddTime = warecell.AddTime,
+                    EditWho = warecell.EditWho,
+                    EditTime = warecell.EditTime,
+                }).MergeTable()
+                 .ToPage(pagination);
+            //.ToPage<BaseWarecell, WarecellDto>(pagination);
+            return list;
+        }
+
+        public int GetEmptyWareCell()
+        {
+            var predicate = Expressionable.Create<BaseWarecell>();
+            predicate = predicate.And(m => m.StateNum.Equals((int)LocationState.LocationState_Empty) && m.IsStop == 0);
+            var count = _warecellRepository.Queryable().Where(predicate.ToExpression()).Count();
+            return count;
+        }
+
+        /// <summary>
+        ///
+        /// </summary>
+        /// <param name="wareCellIds">货位编号</param>
+        /// <param name="locationStop">是否</param>
+        /// <param name="userId">操作人</param>
+        /// <returns></returns>
+        /// <exception cref="ArgumentException"></exception>
+        public bool ChangeWareCells(List<string> wareCellIds, LocationStop locationStop, string userId)
+        {
+            if (wareCellIds == null || !wareCellIds.Any())
+            {
+                throw new ArgumentException("没有选择货位!");
+            }
+
+            var list = _warecellRepository.Queryable().Where(o => wareCellIds.Contains(o.Id.ToString())).ToList();
+            if (!list.Any())
+            {
+                throw new ArgumentException("没有选择货位!");
+            }
+            list.ForEach(o =>
+            {
+                o.IsStop = (int)locationStop;
+                o.EditWho = userId;
+                o.EditTime = DateTime.Now;
+            });
+            var result = _warecellRepository.UpdateRange(list.ToArray());
+
+            return result;
+        }
+
+        public void Save(LoginUserInfo loginUser, long keyValue, BaseWarecell entity)
+        {
+            try
+            {
+                if (string.IsNullOrWhiteSpace(entity.Code))
+                {
+                    throw new ArgumentException("货位编码不能为空");
+                }
+                var warehouse = _warehouseRepository.Queryable().First(o => o.Id == entity.WarehouseId);
+                if (warehouse == null)
+                {
+                    throw new ArgumentException("不存在的仓库!");
+                }
+                if (keyValue == 0)
+                {
+                    var mat = _warecellRepository.GetSingle(p => p.Code == entity.Code);
+                    if (mat != null)
+                    {
+                        throw new ArgumentException("货位编码已存在");
+                    }
+                    BaseWarecell item = new BaseWarecell()
+                    {
+                        WarehouseId = warehouse.Id,
+                        AddWho = loginUser.UserNo,
+                        Code = entity.Code,
+                        EditWho = loginUser.UserNo,
+                        Name = entity.Name,
+                        WarehouseCode = warehouse.Code,
+                        WareAreaId = entity.WareAreaId,
+                        IsStop = 1,
+                        StateNum = 1,
+                        TypeNum = 1,
+                        Size = entity.Size,
+                        Row = entity.Row,
+                        Col = entity.Col,
+                        Layer = entity.Layer,
+                        Depth = entity.Depth,
+                        Tunnel = entity.Tunnel,
+                        SCRel = entity.SCRel,
+                        ContGrpId = 0,
+                        ContGrpBarCode = "",
+                        Memo = string.IsNullOrWhiteSpace(entity.Memo) ? " " : entity.Memo,
+                        Shelf = entity.Shelf
+                    };
+                    _warecellRepository.Insert(item);
+                }
+                else
+                {
+                    entity.EditTime = DateTime.Now;
+                    entity.EditWho = loginUser.UserNo;
+                    _warecellRepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(it => it.XYNO).
+                        IgnoreColumns(it => it.TypeNum).IgnoreColumns(it => it.StateNum).IgnoreColumns(it => it.IsStop).IgnoreColumns(it => it.ContGrpId).IgnoreColumns(it => it.ContGrpBarCode)
+                        .IgnoreColumns(it => it.WareAreaId).IgnoreColumns(it => it.WarehouseCode).IgnoreColumns(it => it.WarehouseId).Where(it => it.Id == keyValue).ExecuteCommand();
+                }
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        public void Delete(string ModuleNo)
+        {
+            try
+            {
+                _warecellRepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        public void UpdateCellState(string CellCode, int Status, long WarehouseId, string userId)
+        {
+            var cell = _warecellRepository.GetFirst(p => p.Code == CellCode && p.WarehouseId == WarehouseId);
+            if (cell == null)
+            {
+                throw new ArgumentException("货位编码不存在!");
+            }
+
+            if (Status == 1)
+            {
+                _warecellRepository.UpdateSetColumnsTrue(p => new BaseWarecell()
+                {
+                    StateNum = Status,
+                    ContGrpBarCode = "",
+                    ContGrpId = 0,
+                    GroupID = 0,
+                    XYNO = 0,
+                    EditTime = DateTime.Now
+                }, p => p.Code == CellCode && p.WarehouseId == WarehouseId);
+            }
+            else
+            {
+                _warecellRepository.UpdateSetColumnsTrue(p => new BaseWarecell()
+                {
+                    StateNum = Status,
+                    EditTime = DateTime.Now
+                }, p => p.Code == CellCode && p.WarehouseId == WarehouseId);
+            }
+        }
+
+        public void UpdateSize(List<string> ids, string userId, int size)
+        {
+            if (!ids.Any())
+            {
+                throw new ArgumentException("没有选择任务!");
+            }
+
+            var list = _warecellRepository.Queryable().Where(o => ids.Contains(o.Id.ToString())).ToList();
+            if (!list.Any())
+            {
+                throw new ArgumentException("没有找到该任务!");
+            }
+
+            _warecellRepository.UseTranAction(() =>
+            {
+                foreach (var item in list)
+                {
+                    _warecellRepository.AsUpdateable().SetColumns(p => new BaseWarecell()
+                    {
+                        Size = size,
+                        EditTime = DateTime.Now,
+                        EditWho = userId
+                    }).Where(p => p.Id == item.Id).ExecuteCommand();
+                }
+            });
+        }
+    }
+}

+ 3 - 2
WMS.BZSqlSugar/WMS.BZSqlSugar.csproj

@@ -11,10 +11,11 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Mapster" Version="7.3.0" />
+    <PackageReference Include="Mapster" Version="7.4.0" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
     <PackageReference Include="SqlSugar.IOC" Version="2.0.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.106" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.187" />
+    <PackageReference Include="System.Security.Cryptography.Pkcs" Version="6.0.5" />
   </ItemGroup>
 
   <ItemGroup>

+ 14 - 17
WMS.BZWeb/Areas/FJManager/Controllers/BaseWareCellController.cs

@@ -3,14 +3,9 @@ using Newtonsoft.Json;
 using wms.sqlsugar.model.fj;
 using WMS.BZModels;
 using WMS.BZModels.Dto.FJ.WareCellDtos;
-using WMS.BZModels.Dto.FJ.TaskDtos;
-using WMS.BZUtil;
-using WMS.Core;
+using WMS.BZServices.FJ;
 using WMS.Info;
 using WMS.Util;
-using WMS.BZServices.FJ;
-using PdfSharp.Pdf;
-using System.Threading.Tasks;
 
 namespace WMS.BZWeb.Areas.FJManager.Controllers
 {
@@ -19,26 +14,26 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
     {
         private readonly WareCellService _wareCellService;
 
-
         public BaseWareCellController(WareCellService wareCellService)
         {
             _wareCellService = wareCellService;
         }
 
-
         public IActionResult Index()
         {
             return View();
         }
+
         public ActionResult Form()
         {
             return View();
         }
+
         public ActionResult SizeForm()
         {
             return View();
-        }  
-        
+        }
+
         public ActionResult GetPageList(string pagination, string queryJson)
         {
             Pagination paginationobj = InitPagination(pagination);
@@ -69,6 +64,7 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             var list = _wareCellService.GetListsByGroupID(Convert.ToInt64(groupId));
             return Success(list);
         }
+
         [HttpPost]
         public ActionResult EnableWareCells(string ids)
         {
@@ -94,10 +90,11 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             _wareCellService.ChangeWareCells(lists, LocationStop.LocationStopped, userid?.ToString());
             return Success("保存成功!");
         }
+
         [HttpPost]
         public ActionResult SaveForm(string keyValue, BaseWarecell Data)
         {
-            if(!long.TryParse(keyValue, out var _keyvalue))
+            if (!long.TryParse(keyValue, out var _keyvalue))
             {
                 return Fail("货位编号错误!");
             }
@@ -105,6 +102,7 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             _wareCellService.Save(LoginUser, _keyvalue, Data);
             return Success("保存成功。");
         }
+
         [HttpPost]
         public ActionResult Delete(string keyValue)
         {
@@ -113,17 +111,17 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         }
 
         [HttpPost]
-        public ActionResult UpdateCellState(string CellCode, string Status,string WarehouseId)
+        public ActionResult UpdateCellState(string CellCode, string Status, string WarehouseId)
         {
             if (string.IsNullOrWhiteSpace(CellCode))
             {
                 return Fail("货位不能为空!");
             }
-            if(!int.TryParse(Status,out var status))
+            if (!int.TryParse(Status, out var status))
             {
                 return Fail("货位状态值不对!");
             }
-            if (!long.TryParse(WarehouseId,out var warehouID))
+            if (!long.TryParse(WarehouseId, out var warehouID))
             {
                 return Fail("仓库值不对!");
             }
@@ -143,7 +141,7 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             {
                 return Fail("货位值不能为空!");
             }
-            if(!int.TryParse(size,out var _size))
+            if (!int.TryParse(size, out var _size))
             {
                 return Fail("货位值不正确!");
             }
@@ -152,6 +150,5 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             _wareCellService.UpdateSize(lists, userid?.ToString(), _size);
             return Success("修改成功!");
         }
-
     }
-}
+}

+ 15 - 9
WMS.BZWeb/Areas/FJManager/Controllers/QueryCellController.cs

@@ -1,16 +1,14 @@
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
-using WCS.Entity;
 using WMS.BZModels.Dto.FJ.WareCellDtos;
 using WMS.BZServices.FJ;
-using WMS.Info;
 
 namespace WMS.BZWeb.Areas.FJManager.Controllers
 {
     [Area("FJManager")]
     public class QueryCellController : MvcControllerBase
     {
-        private readonly  WareCellService _wareCellService  ;
+        private readonly WareCellService _wareCellService;
 
         public QueryCellController(WareCellService wareCellService)
         {
@@ -18,18 +16,20 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
         }
 
         #region 视图功能
+
         public IActionResult Index()
         {
-            return View(); 
+            return View();
         }
+
         public IActionResult Form()
         {
             return View();
         }
 
-        #endregion
+        #endregion 视图功能
 
-        #region  获取数据
+        #region 获取数据
 
         [HttpPost]
         public ActionResult GetMaxLine(string houseNo)
@@ -115,7 +115,7 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
                 int result = 0;
                 if (entity.IsStop != 1)
                 {
-                    result = entity.StateNum.HasValue? entity.StateNum.Value:0;
+                    result = entity.StateNum.HasValue ? entity.StateNum.Value : 0;
                 }
                 json += "{";
                 //json += @"name:'" + entity.F_WAREHOUSENO + "',fNo:'" + entity.F_NO + "',value:[" + y1 + "," + y2 + ","
@@ -136,6 +136,7 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
             };
             return Success("", retData);
         }
+
         private string StateText(int state)
         {
             var stateText = "";
@@ -144,21 +145,26 @@ namespace WMS.BZWeb.Areas.FJManager.Controllers
                 case 0:
                     stateText = "停用";
                     break;
+
                 case 1:
                     stateText = "空货位";
                     break;
+
                 case 2:
                     stateText = "已存储";
                     break;
+
                 case 3:
                     stateText = "入锁";
                     break;
+
                 case 4:
                     stateText = "出锁";
                     break;
             }
             return stateText;
         }
-        #endregion
+
+        #endregion 获取数据
     }
-}
+}

+ 156 - 0
WMS.BZWeb/Areas/KLHCManager/Controllers/BaseWareCellController.cs

@@ -0,0 +1,156 @@
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using WMS.BZModels;
+using WMS.BZUtil;
+using WMS.Core;
+using WMS.Info;
+using WMS.Util;
+using PdfSharp.Pdf;
+using System.Threading.Tasks;
+using WMS.BZServices.KLHC;
+using WMS.BZModels.Dto.KLHC.WareCellDtos;
+using WMS.BZModels.Models.KLHC;
+
+namespace WMS.BZWeb.Areas.KLHCManager.Controllers
+{
+    [Area("KLHCManager")]
+    public class BaseWareCellController : MvcControllerBase
+    {
+        private readonly WareCellService _wareCellService;
+
+
+        public BaseWareCellController(WareCellService wareCellService)
+        {
+            _wareCellService = wareCellService;
+        }
+
+
+        public IActionResult Index()
+        {
+            return View();
+        }
+        public ActionResult Form()
+        {
+            return View();
+        }
+        public ActionResult SizeForm()
+        {
+            return View();
+        }  
+        
+        public ActionResult GetPageList(string pagination, string queryJson)
+        {
+            Pagination paginationobj = InitPagination(pagination);
+            var query = new WarecellListQueryDto();
+            if (!string.IsNullOrEmpty(queryJson))
+            {
+                query = JsonConvert.DeserializeObject<WarecellListQueryDto>(queryJson);
+            }
+            var lists = _wareCellService.GetPageList(paginationobj, query ?? new WarecellListQueryDto());
+
+            var jsonData = new
+            {
+                rows = lists.Result,
+                total = lists.TotalPage,
+                page = lists.PageIndex,
+                records = lists.TotalNum
+            };
+
+            return Success(jsonData);
+        }
+
+        public ActionResult GetListsByGroupID(string groupId)
+        {
+            if (string.IsNullOrEmpty(groupId))
+            {
+                return Fail("编号不能为空");
+            }
+            var list = _wareCellService.GetListsByGroupID(Convert.ToInt64(groupId));
+            return Success(list);
+        }
+        [HttpPost]
+        public ActionResult EnableWareCells(string ids)
+        {
+            if (string.IsNullOrEmpty(ids))
+            {
+                return Fail("没有选择货位!");
+            }
+            var lists = JsonConvert.DeserializeObject<List<string>>(ids);
+            var userid = WebUtil.GetItem("userId");
+            _wareCellService.ChangeWareCells(lists, LocationStop.LocationInvoke, userid?.ToString());
+            return Success("保存成功!");
+        }
+
+        [HttpPost]
+        public ActionResult DisableWareCells(string ids)
+        {
+            if (string.IsNullOrEmpty(ids))
+            {
+                return Fail("没有选择货位!");
+            }
+            var lists = JsonConvert.DeserializeObject<List<string>>(ids);
+            var userid = WebUtil.GetItem("userId");
+            _wareCellService.ChangeWareCells(lists, LocationStop.LocationStopped, userid?.ToString());
+            return Success("保存成功!");
+        }
+        [HttpPost]
+        public ActionResult SaveForm(string keyValue, BaseWarecell Data)
+        {
+            if(!long.TryParse(keyValue, out var _keyvalue))
+            {
+                return Fail("货位编号错误!");
+            }
+            LoginUserInfo LoginUser = GetLoginUser();
+            _wareCellService.Save(LoginUser, _keyvalue, Data);
+            return Success("保存成功。");
+        }
+        [HttpPost]
+        public ActionResult Delete(string keyValue)
+        {
+            _wareCellService.Delete(keyValue);
+            return Success("删除成功。");
+        }
+
+        [HttpPost]
+        public ActionResult UpdateCellState(string CellCode, string Status,string WarehouseId)
+        {
+            if (string.IsNullOrWhiteSpace(CellCode))
+            {
+                return Fail("货位不能为空!");
+            }
+            if(!int.TryParse(Status,out var status))
+            {
+                return Fail("货位状态值不对!");
+            }
+            if (!long.TryParse(WarehouseId,out var warehouID))
+            {
+                return Fail("仓库值不对!");
+            }
+            var userid = WebUtil.GetItem("userId");
+            _wareCellService.UpdateCellState(CellCode, status, warehouID, userid?.ToString());
+            return Success("保存成功。");
+        }
+
+        [HttpPost]
+        public ActionResult UpdateSize(string ids, string size)
+        {
+            if (string.IsNullOrEmpty(ids))
+            {
+                return Fail("没有选择货位!");
+            }
+            if (string.IsNullOrEmpty(size))
+            {
+                return Fail("货位值不能为空!");
+            }
+            if(!int.TryParse(size,out var _size))
+            {
+                return Fail("货位值不正确!");
+            }
+            var lists = JsonConvert.DeserializeObject<List<string>>(ids);
+            var userid = WebUtil.GetItem("userId");
+            _wareCellService.UpdateSize(lists, userid?.ToString(), _size);
+            return Success("修改成功!");
+        }
+
+    }
+}

+ 101 - 0
WMS.BZWeb/Areas/KLHCManager/Controllers/EnumsController.cs

@@ -0,0 +1,101 @@
+using Microsoft.AspNetCore.Mvc;
+using WMS.BZModels;
+using WMS.BZServices.KLHC;
+
+namespace WMS.BZWeb.Areas.KLHCManager.Controllers
+{
+    [Area("KLHCManager")]
+    public class EnumsController : MvcControllerBase
+    {
+        private readonly EnumService _enumService;
+
+        public EnumsController(EnumService enumService)
+        {
+            _enumService = enumService;
+        }
+
+        [HttpGet]
+        public ActionResult GetInvStateList()
+        {
+            return Success(_enumService.InvStateList());
+        }
+
+        [HttpGet]
+        public ActionResult GetTaskStatusList()
+        {
+            return Success(_enumService.TaskStatusList());
+        }
+
+        [HttpGet]
+        public ActionResult GetTaskTypeList()
+        {
+            return Success(_enumService.TaskTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetTaskBusTypeList()
+        {
+            return Success(_enumService.TaskBusTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetAGVTaskTypeList()
+        {
+            return Success(_enumService.AGVTaskTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetFackbeekTypeList()
+        {
+            return Success(_enumService.FackbeekTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetAGVTaskStatusList()
+        {
+            return Success(_enumService.AGVTaskStatus());
+        }
+
+        [HttpGet]
+        public ActionResult GetContGrpTypeList()
+        {
+            return Success(_enumService.ContGrpTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetDocTypeList()
+        {
+            return Success(_enumService.DocTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult GetDocStateList()
+        {
+            return Success(_enumService.DocStateList());
+        }
+
+        [HttpGet]
+        public ActionResult GetLocationStateList()
+        {
+            return Success(_enumService.LocationStateList());
+        }
+
+        [HttpGet]
+        public ActionResult GetAutoManualOutTypeList()
+        {
+            return Success(_enumService.AutoManualOutTypeList());
+        }
+
+        [HttpGet]
+        public ActionResult InvLockStateList()
+        {
+            return Success(_enumService.InvLockStateList());
+        }
+
+        [HttpGet]
+        public ActionResult YesNoList()
+        {
+            return Success(_enumService.YesNoList());
+        }
+    }
+}

+ 1 - 1
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/Form.cshtml

@@ -62,4 +62,4 @@
         <textarea id="Memo" class="form-control" style="height:100px;"></textarea>
     </div>
 </div>
-@Html.AppendJsFile("/Areas/FJManager/Views/BaseWareCell/Form.js")
+@Html.AppendJsFile("/Areas/KLHCManager/Views/BaseWareCell/Form.js")

+ 5 - 6
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/Form.js

@@ -1,9 +1,9 @@
 /*
- * 描 述:功能模块	
+ * 描 述:功能模块
  */
 var acceptClick;
 var keyValue = '0';
-const sizes = ["", "18", "34", "50"];   
+const sizes = ["", "18", "34", "50"];
 var bootstrap = function ($, learun) {
     "use strict";
     var selectedRow = learun.frameTab.currentIframe().selectedRow || {};
@@ -14,7 +14,6 @@ var bootstrap = function ($, learun) {
         },
         /*绑定事件和初始化控件*/
         bind: function () {
-
             $("#Size").empty();
             for (var j = 0; j < sizes.length; j++) {
                 if (j == 0) {
@@ -27,12 +26,12 @@ var bootstrap = function ($, learun) {
 
             // 上级
             $('#WarehouseId').lrselect({
-                url: top.$.rootUrl + '/FJManager/BaseWarehouse/GetSelectWarehouseNameList',
+                url: top.$.rootUrl + '/KLHCManager/BaseWarehouse/GetSelectWarehouseNameList',
                 maxHeight: 180,
                 allowSearch: false
             });
             $('#WareAreaId').lrselect({
-                url: top.$.rootUrl + '/FJManager/BaseWareArea/GetSelectNameList',
+                url: top.$.rootUrl + '/KLHCManager/BaseWareArea/GetSelectNameList',
                 maxHeight: 180,
                 allowSearch: false
             });
@@ -50,7 +49,7 @@ var bootstrap = function ($, learun) {
             return false;
         }
         var postData = $('#form').lrGetFormData(keyValue);
-        $.lrSaveForm(top.$.rootUrl + '/FJManager/BaseWareCell/SaveForm?keyValue=' + keyValue, postData, function (res) {
+        $.lrSaveForm(top.$.rootUrl + '/KLHCManager/BaseWareCell/SaveForm?keyValue=' + keyValue, postData, function (res) {
             // 保存成功后才回调
             if (!!callBack) {
                 callBack();

+ 5 - 5
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/Index.cshtml

@@ -48,10 +48,6 @@
                                     <div class="lr-form-item-title">货位值</div>
                                     <input id="Size" type="text" class="form-control" placeholder="请输入货位值" />
                                 </div>
-                                <div class="col-xs-4 lr-form-item">
-                                    <div class="lr-form-item-title">楼层</div>
-                                    <input id="Layer" type="text" class="form-control" placeholder="请输入楼层" />
-                                </div>
                                 <div class="col-xs-4 lr-form-item">
                                     <div class="lr-form-item-title">设备</div>
                                     <input id="SCRel" type="text" class="form-control" placeholder="请输入设备" />
@@ -64,6 +60,10 @@
                                     <div class="lr-form-item-title">列</div>
                                     <input id="Col" type="text" class="form-control" placeholder="请输入列" />
                                 </div>
+                                <div class="col-xs-4 lr-form-item">
+                                    <div class="lr-form-item-title">层</div>
+                                    <input id="Layer" type="text" class="form-control" placeholder="请输入层" />
+                                </div>
                                 <div class="col-xs-4 lr-form-item">
                                     <div class="lr-form-item-title">创建时间</div>
                                     <div id="datesearch" class="datetime"></div>
@@ -100,4 +100,4 @@
         </div>
     </div>
 </div>
-@Html.AppendJsFile("/Areas/FJManager/Views/BaseWareCell/Index.js")
+@Html.AppendJsFile("/Areas/KLHCManager/Views/BaseWareCell/Index.js")

+ 10 - 10
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/Index.js

@@ -102,17 +102,17 @@ var bootstrap = function ($, learun) {
             });
                         
             $('#Type').lrselect({
-                url: top.$.rootUrl + '/FJManager/Enums/GetTaskTypeList',
+                url: top.$.rootUrl + '/KLHCManager/Enums/GetTaskTypeList',
                 maxHeight: 180,
                 allowSearch: false
             });
             $('#Status').lrselect({
-                url: top.$.rootUrl + '/FJManager/Enums/GetLocationStateList',
+                url: top.$.rootUrl + '/KLHCManager/Enums/GetLocationStateList',
                 maxHeight: 180,
                 allowSearch: false
             });
             $('#WarehouseId').lrselect({
-                url: top.$.rootUrl + '/FJManager/BaseWarehouse/GetSelectWarehouseNameList',
+                url: top.$.rootUrl + '/KLHCManager/BaseWarehouse/GetSelectWarehouseNameList',
                 maxHeight: 180,
                 allowSearch: false
             });
@@ -127,7 +127,7 @@ var bootstrap = function ($, learun) {
                 learun.layerConfirm('是否确认启用该货位!', function (res) {
                     if (res) {
 
-                        learun.postForm(top.$.rootUrl + '/FJManager/BaseWareCell/EnableWareCells', { ids: JSON.stringify(postData.map((item) => item.Id))  }, function () {
+                        learun.postForm(top.$.rootUrl + '/KLHCManager/BaseWareCell/EnableWareCells', { ids: JSON.stringify(postData.map((item) => item.Id))  }, function () {
                             refreshGirdData();
                         });
                     }
@@ -144,7 +144,7 @@ var bootstrap = function ($, learun) {
                 learun.layerConfirm('是否确认禁用该货位!', function (res) {
                     if (res) {
 
-                        learun.postForm(top.$.rootUrl + '/FJManager/BaseWareCell/DisableWareCells', { ids: JSON.stringify(postData.map((item) => item.Id)) }, function () {
+                        learun.postForm(top.$.rootUrl + '/KLHCManager/BaseWareCell/DisableWareCells', { ids: JSON.stringify(postData.map((item) => item.Id)) }, function () {
                             refreshGirdData();
                         });
 
@@ -158,7 +158,7 @@ var bootstrap = function ($, learun) {
                 learun.layerForm({
                     id: 'form',
                     title: '添加货位',
-                    url: top.$.rootUrl + '/FJManager/BaseWareCell/Form',
+                    url: top.$.rootUrl + '/KLHCManager/BaseWareCell/Form',
                     height: 500,
                     width: 800,
                     callBack: function (id) {
@@ -183,7 +183,7 @@ var bootstrap = function ($, learun) {
                     learun.layerForm({
                         id: 'form',
                         title: '编辑货位信息',
-                        url: top.$.rootUrl + '/FJManager/BaseWareCell/Form?keyValue=' + keyValue,
+                        url: top.$.rootUrl + '/KLHCManager/BaseWareCell/Form?keyValue=' + keyValue,
                         height:500,
                         width: 800,
                         callBack: function (id) {
@@ -205,7 +205,7 @@ var bootstrap = function ($, learun) {
                     learun.layerForm({
                         id: 'form',
                         title: '编辑货位值',
-                        url: top.$.rootUrl + '/FJManager/BaseWareCell/SizeForm?keyValue=' + keyValue,
+                        url: top.$.rootUrl + '/KLHCManager/BaseWareCell/SizeForm?keyValue=' + keyValue,
                         height: 300,
                         width: 400,
                         callBack: function (id) {
@@ -221,7 +221,7 @@ var bootstrap = function ($, learun) {
                 if (learun.checkrow(keyValue)) {
                     learun.layerConfirm('是否确认删除该项!', function (res) {
                         if (res) {
-                            learun.deleteForm(top.$.rootUrl + '/FJManager/BaseWareCell/Delete', { keyValue: keyValue }, function () {
+                            learun.deleteForm(top.$.rootUrl + '/KLHCManager/BaseWareCell/Delete', { keyValue: keyValue }, function () {
                                 refreshGirdData();
                             });
                         }
@@ -232,7 +232,7 @@ var bootstrap = function ($, learun) {
         // 初始化列表 
         initGird: function () {
             $('#gridtable').jfGrid({
-                url: top.$.rootUrl + '/FJManager/BaseWareCell/GetPageList',
+                url: top.$.rootUrl + '/KLHCManager/BaseWareCell/GetPageList',
                 headData: [
                     { label: "仓库", name: "WarehouseName", width: 120, align: "left" },
                     { label: "货位号", name: "Code", width: 120, align: "left" },

+ 1 - 1
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/SizeForm.cshtml

@@ -11,4 +11,4 @@
     </div>
  
 </div>
-@Html.AppendJsFile("/Areas/FJManager/Views/BaseWareCell/SizeForm.js")
+@Html.AppendJsFile("/Areas/KLHCManager/Views/BaseWareCell/SizeForm.js")

+ 1 - 1
WMS.BZWeb/Areas/KLHCManager/Views/BaseWareCell/SizeForm.js

@@ -42,7 +42,7 @@ var bootstrap = function ($, learun) {
         }
         learun.layerConfirm('是否确认修改货位值!', function (res, index) {
             if (res) {
-                learun.postForm(top.$.rootUrl + '/FJManager/BaseWareCell/UpdateSize', { ids: JSON.stringify(selectedRow.map((item) => item.Id)), size: $('#Size').val() }, function () {
+                learun.postForm(top.$.rootUrl + '/KLHCManager/BaseWareCell/UpdateSize', { ids: JSON.stringify(selectedRow.map((item) => item.Id)), size: $('#Size').val() }, function () {
                     if (!!callBack) {
                         callBack();
                     }

+ 6 - 0
WMS.BZWeb/appsettings.json

@@ -66,6 +66,12 @@
         "ConfigId": "fj",
         "IsAutoCloseConnection": true
       },
+      {
+        "ConnectionString": "host=localhost;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;",
+        "DataBaseType": 11,
+        "ConfigId": "log",
+        "IsAutoCloseConnection": true
+      },
       {
         "ConnectionString": "Data Source=ZLH;User ID=sa;Password=7166766;Initial Catalog=WMS_ZT_01PT",
         "DataBaseType": 1,