Beispiel #1
0
        public async Task <RouteData <Wms_inventorybox> > AddInventoryBox(Wms_inventorybox box)
        {
            if (_sqlClient.Queryable <Wms_inventorybox>().Any(c => c.InventoryBoxNo == box.InventoryBoxNo && c.IsDel == DeleteFlag.Normal))
            {
                return(RouteData <Wms_inventorybox> .From(PubMessages.E1022_INVENTORYBOX_NO_DUPLICATE));
            }

            Wms_reservoirarea reservoirArea = null;

            if (box.ReservoirAreaId != null)
            {
                reservoirArea = await _sqlClient.Queryable <Wms_reservoirarea>()
                                .FirstAsync(x => x.ReservoirAreaId == box.ReservoirAreaId && x.IsDel == DeleteFlag.Normal);

                if (reservoirArea == null)
                {
                    return(RouteData <Wms_inventorybox> .From(PubMessages.E0006_DATA_VAILD_FAIL, $"指定库区不存在"));
                }
            }

            Wms_storagerack rack = null;

            if (box.StorageRackId != null)
            {
                rack = await _sqlClient.Queryable <Wms_storagerack>()
                       .FirstAsync(x => x.ReservoirAreaId == box.ReservoirAreaId && x.StorageRackId == box.StorageRackId);

                if (rack == null)
                {
                    return(RouteData <Wms_inventorybox> .From(PubMessages.E0006_DATA_VAILD_FAIL, $"指定库位不存在"));
                }
            }

            if (reservoirArea != null)
            {
                box.ReservoirAreaName = rack.ReservoirAreaName;
            }
            if (rack != null)
            {
                box.StorageRackName = rack.StorageRackName;
                box.Row             = rack.Row;
                box.Column          = rack.Column;
                box.Floor           = rack.Floor;
            }
            box.InventoryBoxId = PubId.SnowflakeId;
            box.CreateBy       = UserDto.UserId;
            box.CreateDate     = DateTime.Now;
            box.CreateUser     = UserDto.UserName;
            box.ModifiedBy     = UserDto.UserId;
            box.ModifiedDate   = DateTime.Now;
            box.ModifiedUser   = UserDto.UserName;
            if (await _sqlClient.Insertable(box).ExecuteCommandAsync() == 0)
            {
                return(RouteData <Wms_inventorybox> .From(PubMessages.E1023_INVENTORYBOX_ADD_FAIL));
            }
            else
            {
                return(RouteData <Wms_inventorybox> .From(PubMessages.I1003_INVENTORYBOX_ADD_SCCUESS));
            }
        }
Beispiel #2
0
 public IActionResult AddOrUpdate([FromForm]Wms_storagerack model, [FromForm]string id)
 {
     var validator = new StorageRackFluent();
     var results = validator.Validate(model);
     var success = results.IsValid;
     if (!success)
     {
         string msg = results.Errors.Aggregate("", (current, item) => (current + item.ErrorMessage + "</br>"));
         return BootJsonH((PubEnum.Failed.ToInt32(), msg));
     }
     if (id.IsEmptyZero())
     {
         if (_storagerackServices.IsAny(c => c.StorageRackNo == model.StorageRackNo || c.StorageRackName == model.StorageRackNo))
         {
             return BootJsonH((false, PubConst.Warehouse5));
         }
         model.StorageRackId = PubId.SnowflakeId;
         model.CreateBy = UserDtoCache.UserId;
         bool flag = _storagerackServices.Insert(model);
         return BootJsonH(flag ? (flag, PubConst.Add1) : (flag, PubConst.Add2));
     }
     else
     {
         model.StorageRackId = id.ToInt64();
         model.ModifiedBy = UserDtoCache.UserId;
         model.ModifiedDate = DateTimeExt.DateTime;
         var flag = _storagerackServices.Update(model);
         return BootJsonH(flag ? (flag, PubConst.Update1) : (flag, PubConst.Update2));
     }
 }
Beispiel #3
0
 protected static void CreateStoragerack(SqlSugarClient sqlClient, Wms_warehouse warehouse, Wms_reservoirarea reservoirarea, int row, int columnCount, int floorCount)
 {
     for (int column = 1; column <= columnCount; column++)
     {
         for (int floor = 1; floor <= floorCount; floor++)
         {
             string          code        = warehouse.WarehouseId.ToString().PadLeft(2, '0') + row.ToString().PadLeft(2, '0') + column.ToString().PadLeft(2, '0') + floor.ToString().PadLeft(2, '0');
             string          no          = row.ToString().PadLeft(2, '0') + column.ToString().PadLeft(2, '0') + floor.ToString().PadLeft(2, '0');
             int             id          = Convert.ToInt32(code);
             Wms_storagerack storagerack = new Wms_storagerack()
             {
                 StorageRackId     = id,
                 StorageRackNo     = "KW-" + no,
                 StorageRackName   = "库位" + code,
                 ReservoirAreaId   = reservoirarea.ReservoirAreaId,
                 ReservoirAreaName = reservoirarea.ReservoirAreaName,
                 WarehouseId       = warehouse.WarehouseId,
                 Row          = row,
                 Floor        = floor,
                 Column       = column,
                 Remark       = "",
                 CreateBy     = 1,
                 CreateUser   = "******",
                 CreateDate   = DateTime.Now,
                 ModifiedBy   = 1,
                 ModifiedUser = "******",
                 ModifiedDate = DateTime.Now,
                 IsDel        = DeleteFlag.Normal,
             };
             sqlClient.Insertable(storagerack).ExecuteCommand();
             Wms_inventorybox box = new Wms_inventorybox()
             {
                 InventoryBoxId    = id,
                 InventoryBoxNo    = "LK_LX_" + code,
                 InventoryBoxName  = "料箱-" + code,
                 WarehouseId       = reservoirarea.WarehouseId,
                 ReservoirAreaId   = reservoirarea.ReservoirAreaId,
                 ReservoirAreaName = reservoirarea.ReservoirAreaName,
                 StorageRackId     = storagerack.StorageRackId,
                 StorageRackName   = storagerack.StorageRackName,
                 Row          = storagerack.Row,
                 Column       = storagerack.Column,
                 Floor        = storagerack.Floor,
                 Size         = 1,
                 UsedSize     = 0,
                 Remark       = "",
                 IsDel        = DeleteFlag.Normal,
                 Status       = (int)InventoryBoxStatus.InPosition,
                 CreateBy     = 1,
                 CreateUser   = "******",
                 CreateDate   = DateTime.Now,
                 ModifiedBy   = 1,
                 ModifiedUser = "******",
                 ModifiedDate = DateTime.Now
             };
             sqlClient.Insertable(box).ExecuteCommand();
         }
     }
 }
Beispiel #4
0
 public IActionResult Add(string id)
 {
     var model = new Wms_storagerack();
     if (id.IsEmpty())
     {
         return View(model);
     }
     else
     {
         model = _storagerackServices.QueryableToEntity(c => c.StorageRackId == SqlFunc.ToInt64(id));
         return View(model);
     }
 }
Beispiel #5
0
        public async Task <IActionResult> AddOrUpdate([FromForm] Wms_storagerack model, [FromForm] string id)
        {
            var validator = new StorageRackFluent();
            var results   = validator.Validate(model);
            var success   = results.IsValid;

            if (!success)
            {
                string msg = results.Errors.Aggregate("", (current, item) => (current + item.ErrorMessage + "</br>"));
                return(BootJsonH((PubEnum.Failed.ToInt32(), msg)));
            }

            Wms_reservoirarea reservoirarea = await _client.Queryable <Wms_reservoirarea>().FirstAsync(
                x => x.ReservoirAreaId == model.ReservoirAreaId);

            if (reservoirarea == null)
            {
                return(BootJsonH((PubEnum.Failed.ToInt32(), "找不到库区")));
            }
            if (id.IsEmptyZero())
            {
                if (_storagerackServices.IsAny(c => c.StorageRackNo == model.StorageRackNo || c.StorageRackName == model.StorageRackNo))
                {
                    return(BootJsonH((false, PubConst.Warehouse5)));
                }

                model.StorageRackId     = PubId.SnowflakeId;
                model.ReservoirAreaName = reservoirarea.ReservoirAreaName;
                model.CreateBy          = UserDtoCache.UserId;
                model.CreateUser        = UserDtoCache.UserName;
                model.CreateDate        = DateTime.Now;
                model.ModifiedBy        = UserDtoCache.UserId;
                model.ModifiedUser      = UserDtoCache.UserName;
                model.ModifiedDate      = DateTime.Now;
                bool flag = _storagerackServices.Insert(model);
                return(BootJsonH(flag ? (flag, PubConst.Add1) : (flag, PubConst.Add2)));
            }
            else
            {
                model.StorageRackId     = id.ToInt64();
                model.ReservoirAreaName = reservoirarea.ReservoirAreaName;
                model.ModifiedBy        = UserDtoCache.UserId;
                model.ModifiedUser      = UserDtoCache.UserName;
                model.ModifiedDate      = DateTimeExt.DateTime;
                var flag = _storagerackServices.Update(model);
                return(BootJsonH(flag ? (flag, PubConst.Update1) : (flag, PubConst.Update2)));
            }
        }
Beispiel #6
0
        public async Task <RouteData <Wms_inventorybox> > UpdateInventoryBox(long inventoryBoxId, Wms_inventorybox box)
        {
            Wms_reservoirarea reservoirArea = null;

            if (box.ReservoirAreaId != null)
            {
                reservoirArea = await _sqlClient.Queryable <Wms_reservoirarea>()
                                .FirstAsync(x => x.ReservoirAreaId == box.ReservoirAreaId && x.IsDel == DeleteFlag.Normal);

                if (reservoirArea == null)
                {
                    return(RouteData <Wms_inventorybox> .From(PubMessages.E0006_DATA_VAILD_FAIL, $"指定库区不存在"));
                }
            }

            Wms_storagerack rack = null;

            if (box.StorageRackId != null)
            {
                rack = await _sqlClient.Queryable <Wms_storagerack>()
                       .FirstAsync(x => x.ReservoirAreaId == box.ReservoirAreaId && x.StorageRackId == box.StorageRackId);

                if (rack == null)
                {
                    return(RouteData <Wms_inventorybox> .From(PubMessages.E0006_DATA_VAILD_FAIL, $"指定库位不存在"));
                }
            }
            if (reservoirArea != null)
            {
                box.ReservoirAreaName = rack.ReservoirAreaName;
            }
            if (rack != null)
            {
                box.StorageRackName = rack.StorageRackName;
                box.Row             = rack.Row;
                box.Column          = rack.Column;
                box.Floor           = rack.Floor;
            }
            box.InventoryBoxId = inventoryBoxId;
            box.ModifiedBy     = UserDto.UserId;
            box.ModifiedDate   = DateTime.Now;
            box.ModifiedUser   = UserDto.UserName;
            if (await _sqlClient.Updateable(box).ExecuteCommandAsync() == 0)
            {
                return(RouteData <Wms_inventorybox> .From(PubMessages.E1024_INVENTORYBOX_UPDATE_FAIL));
            }
            return(RouteData <Wms_inventorybox> .From(PubMessages.I1004_INVENTORYBOX_UPDATE_SCCUESS));
        }
        /// <summary>
        /// 获取空闲库位
        /// </summary>
        /// <returns></returns>
        public static async Task <RouteData <Wms_storagerack> > GetIdleStorageRack(this ISqlSugarClient client, long reservoirAreaId)
        {
            Wms_storagerack storagerack = await client.Queryable <Wms_storagerack, Wms_inventorybox>(
                (s, ib) => new object[] {
                JoinType.Left, s.StorageRackId == ib.StorageRackId,
            }
                ).Where((s, ib) => ib.InventoryBoxNo == null && s.ReservoirAreaId == reservoirAreaId && s.Status == StorageRackStatus.Normal)
                                          .OrderBy((s, ib) => ib.Column, OrderByType.Desc) //就近原则
                                          .OrderBy((s, ib) => ib.Floor, OrderByType.Asc)   //就近原则
                                          .Select((s, ib) => s).FirstAsync();

            if (storagerack == null)
            {
                return(RouteData <Wms_storagerack> .From(PubMessages.E2308_WCS_STORGERACK_FULL, $""));
            }
            return(RouteData <Wms_storagerack> .From(storagerack));
        }
Beispiel #8
0
        public async Task <IActionResult> Add(string id, string storeId)
        {
            IWMSBaseApiAccessor             wmsAccessor = WMSApiManager.GetBaseApiAccessor(storeId, _client);
            RouteData <Wms_reservoirarea[]> result      = (await wmsAccessor.GetReservoirAreaList(1, 100, null, null, null, null));

            ViewData["reservoirAreaList"] = result.Data;

            var model = new Wms_storagerack();

            if (id.IsEmpty())
            {
                return(View(model));
            }
            else
            {
                model = _storagerackServices.QueryableToEntity(c => c.StorageRackId == SqlFunc.ToInt64(id));
                return(View(model));
            }
        }