| | |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var childResult = db.Queryable<OutStockListChild>().Where(a => a.S_ORDER_NO == orderNo && a.COMPLETED_FLAG.Trim() == "N").Count() == 0; |
| | | |
| | | |
| | | // 1.查询集货区是否有空货位,没有则出库单完成 |
| | | string areaCode = null; |
| | | bool isEmptyLoc = false; |
| | | var areaList = LocationHelper.GetAreaByCode(Settings.WHCode, 7); |
| | | if (areaList.Count > 0) |
| | | if (areaList.Count > 0) |
| | | { |
| | | areaCode = areaList[0].S_CODE; |
| | | var rows = db.Queryable<Location>() |
| | |
| | | { |
| | | // 有其他锁的排,排除 |
| | | var count = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaCode && a.N_LOCK_STATE == 3 && a.N_ROW == item).Count(); |
| | | if (count > 0) |
| | | if (count > 0) |
| | | { |
| | | continue; |
| | | } |
| | |
| | | } |
| | | LogHelper.Info("isEmptyLoc:" + isEmptyLoc, "WMS"); |
| | | LogHelper.Info("childResult:" + childResult, "WMS"); |
| | | if (childResult || isEmptyLoc) |
| | | if (childResult || isEmptyLoc) |
| | | { |
| | | return true; |
| | | } |
| | |
| | | /// <summary> |
| | | /// 完成出库任务 |
| | | /// </summary> |
| | | /// <param name="task"></param> |
| | | /// <param name="cst"></param> |
| | | /// <param name="orderNo"></param> |
| | | /// <returns></returns> |
| | | internal static bool completedOutstockTask(WCSTask cst, string orderNo) |
| | |
| | | } |
| | | if (priorityAsnNo != null) |
| | | { |
| | | query = query.Where((a, b, c) => c.S_ASN_NO == priorityAsnNo); |
| | | query = query.OrderByDescending((a, b, c) => c.S_ASN_NO == priorityAsnNo ? 1 : 0); |
| | | } |
| | | |
| | | var locList = query.OrderByDescending((a, b, c) => a.N_COL) |
| | |
| | | } |
| | | |
| | | // 查询同批次入库锁数量,如果锁数量 >= 2 ,则不再从【空排】入库 |
| | | int lockNum = db.Queryable<Location>().Where(a => a.N_LOCK_STATE == 1 && a.S_LOCK_OP.Trim() == asnNo).Count(); |
| | | LogHelper.Info("同批次入库锁数量:" + lockNum, "Mobox"); |
| | | if (end == null && rowNum < 2 && lockNum < 2 ) |
| | | var lockRow = db.Queryable<Location>().Where(a => a.N_LOCK_STATE == 1 && a.S_LOCK_OP.Trim() == asnNo).Take(1).PartitionBy(l => new { l.S_AREA_CODE, l.N_ROW }).ToList(); |
| | | LogHelper.Info("同批次入库锁数量:" + lockRow.Count, "Mobox"); |
| | | if (end == null && rowNum < 2 && lockRow.Count < 2 ) |
| | | { |
| | | string fullerCode = null; |
| | | if (rowNum == 1) |
| | | if (lockRow.Count > 0) |
| | | { |
| | | var maxLoc = lockRow[0]; |
| | | var fuller = db.Queryable<TN_Fuller>().Where(a => a.S_AREA_CODE == maxLoc.S_AREA_CODE && a.N_ROW == maxLoc.N_ROW).First(); |
| | | if (fuller != null) |
| | | { |
| | | fullerCode = fuller.FULLER_CODE; |
| | | } |
| | | } |
| | | |
| | | if (fullerCode == null && rowNum > 0 ) |
| | | { |
| | | var maxLoc = listMaxCol[0]; |
| | | var fuller = db.Queryable<TN_Fuller>().Where(a => a.S_AREA_CODE == maxLoc.S_AREA_CODE && a.N_ROW == maxLoc.N_ROW).First(); |
| | |
| | | } |
| | | return weight; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询是否有需要移库的货位 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static float getFurHeight(string VENDOR) |
| | | { |
| | | float height = 800; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var verdor = db.Queryable<TN_VendorList>().Where(a => a.VENDOR == VENDOR).First(); |
| | | if (verdor != null) |
| | | { |
| | | height = verdor.FURHEIGHT; |
| | | } |
| | | return height; |
| | | } |
| | | } |
| | | } |