| | |
| | | //如果有传入货架,则只允该货架的物料 |
| | | .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) |
| | | //按生产日期先进先出,再按物料数量从小到大, |
| | |
| | | //如果有传入货架,则只允该货架的物料 |
| | | .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) |
| | | //按生产日期先进先出,再按物料数量从小到大, |
| | |
| | | /// <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(); |