服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2 天以前 98a5b92067720b662a3f5e9d9aed61abdda1d729
Tiger.Business.WMS/Common/WmsTask.cs
@@ -358,9 +358,9 @@
                                            //如果有传入货架,则只允该货架的物料
                                            .WhereIF(!option.ShelfID.IsNullOrEmpty(), (q, p, w, r, s, l) => q.SHELF_ID == option.ShelfID && q.AUTH_ORG == auth.CurOrg)
                                            //优先使用库存池中的物料
                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IsNullOrEmpty(p.ID))
                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IIF(SqlFunc.IsNullOrEmpty(p.ID), 1, 0))
                                            //优先使用尾数物料(截料或者退料之后的物料)
                                            //.OrderByDescending((q, p, w, r, s, l) => q.SN.Contains("_C") || q.SN.Contains("_T"))
                                            //.OrderByDescending((q, p, w, r, s, l) => SqlFunc.IIF(q.SN.Contains("_C") || q.SN.Contains("_T"), 1, 0))
                                            //备料策略:按生产日期先进先出
                                            .OrderByIF(option.Strategy.HasFlag(WMS_ITEM_POOL.STRATEGYs.FIFO), (q, p, w, r, s, l) => q.PROD_DATE)
                                            //按生产日期先进先出,再按物料数量从小到大,
@@ -444,9 +444,9 @@
                                            //如果有传入货架,则只允该货架的物料
                                            .WhereIF(!option.ShelfID.IsNullOrEmpty(), (q, p, w, r, s, l) => q.SHELF_ID == option.ShelfID && q.AUTH_ORG == auth.CurOrg)
                                            //优先使用库存池中的物料
                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IsNullOrEmpty(p.ID))
                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IIF(SqlFunc.IsNullOrEmpty(p.ID), 1, 0))
                                            //优先使用尾数物料(截料或者退料之后的物料)
                                            //.OrderByDescending((q, p, w, r, s, l) => q.SN.Contains("_C") || q.SN.Contains("_T"))
                                            //.OrderByDescending((q, p, w, r, s, l) => SqlFunc.IIF(q.SN.Contains("_C") || q.SN.Contains("_T"), 1, 0))
                                            //备料策略:按生产日期先进先出
                                            .OrderByIF(option.Strategy.HasFlag(WMS_ITEM_POOL.STRATEGYs.FIFO), (q, p, w, r, s, l) => q.PROD_DATE)
                                            //按生产日期先进先出,再按物料数量从小到大,
@@ -769,22 +769,27 @@
        /// <summary>
        /// 设置当前物料的默认储位
        /// </summary>
        public ApiAction<ScanOutput> SetDefaultLocation(DbClient db, BAS_ITEM Item, WMS_LOCATION location)
        public ApiAction<ScanOutput> SetDefaultLocation(DbClient db, BAS_ITEM Item, WMS_LOCATION location, long RcvLineId)
        {
            var action = new ApiAction<ScanOutput>(new ScanOutput());
            //调用设置默认储位接口
            //var iInput = new CreateRcvLineLocationInput
            //{
            //};
            //var result = await DI.Resolve<IWMS_U9C>().CreateRcvLineLocation(iInput);
            //if (!result.IsSuccessed)
            //{
            //    action.IsSuccessed = false;
            //    action.LocaleMsg = result.LocaleMsg;
            //}
            //else
            var iInput = new CreateRcvLineLocationInput
            {
                IsLogin = true,
                RcvLineLocationParam = new()
                {
                    RcvLineId = RcvLineId,
                    BinCode = location.LOCATION_CODE,
                }
            };
            var result =  DI.Resolve<IWMS_U9C>().CreateRcvLineLocation(iInput).Result;
            if (!result.IsSuccessed)
            {
                action.IsSuccessed = false;
                action.LocaleMsg = result.LocaleMsg;
            }
            else
            {
                Item.DEFAULT_LOCATION = location.LOCATION_CODE;
                db.Updateable(Item, UserCode).UpdateColumns(q => new { q.DEFAULT_LOCATION, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();