| | |
| | | } |
| | | } |
| | | |
| | | if (EdnRarea == "YWLKTDDQ")//到B区的移库工单最多只能生成两条任务 |
| | | if (EdnRarea == "YWLRGDD") |
| | | { |
| | | //查询任务数 |
| | | List<string> AreaLi = new List<string>() { "YWLKTDDQ" }; |
| | | List<string> AreaLi = new List<string>() { "YWLRGDD" }; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var list = db.Queryable<Location>().Where(a => AreaLi.Contains(a.S_AREA_CODE) && a.S_LOCK_STATE == "入库锁").ToList(); |
| | | if (list.Count() > 2) |
| | | { |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"终点库区为YWLKTDDQ 则最多只能生成三个任务"); |
| | | LogHelper.Info($"CreateTransport- CreateTask Error" + $"终点库区为YWLRGDD 则最多只能生成三个任务"); |
| | | continue; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | foreach (var rss in arloclist.GroupBy(x => x.N_ROW).OrderByDescending(x => x.Count(y => y.N_CURRENT_NUM > 0)).ThenBy(x => x.Key)) |
| | | if (area == "YWLTKKTQ") |
| | | { |
| | | rowlist = rss.OrderBy(x => x.N_COL).ToList(); |
| | | var _cl2 = rowlist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault(); |
| | | endbit = rowlist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0)); |
| | | if (endbit == null) continue; |
| | | |
| | | if (_cl2 != null && (EdnRarea == "YWLYLTKQ" || EdnRarea == "YWLKTDDQ")) //退库区进行堆叠 |
| | | foreach (var rss in arloclist.GroupBy(x => x.N_ROW).OrderByDescending(x => x.Count(y => y.N_CURRENT_NUM > 0)).ThenByDescending(x => x.Key)) |
| | | { |
| | | Last = ""; |
| | | var rr_clrel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var s_clrel0 = rr_clrel.OrderByDescending(xx => xx.T_CREATE).FirstOrDefault(); |
| | | if (s_clrel0 != null && string.IsNullOrEmpty(s_clrel0.S_TYPE)) |
| | | rowlist = rss.OrderBy(x => x.N_COL).ToList(); |
| | | var _cl2 = rowlist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault(); |
| | | endbit = rowlist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0)); |
| | | if (endbit == null) continue; |
| | | |
| | | if (_cl2 != null && (EdnRarea == "YWLYLTKQ" || EdnRarea == "YWLKTDDQ")) //退库区进行堆叠 |
| | | { |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rr_clrel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | Last = ""; |
| | | var rr_clrel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var s_clrel0 = rr_clrel.OrderByDescending(xx => xx.T_CREATE).FirstOrDefault(); |
| | | if (s_clrel0 != null && string.IsNullOrEmpty(s_clrel0.S_TYPE)) |
| | | { |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rr_clrel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | if (_cl2.N_CURRENT_NUM < _cl2.N_CAPACITY) |
| | | endbit = _cl2; |
| | | else LogHelper.Info($"{EdnRarea}退库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | | else |
| | | { |
| | | endbit = null; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | else if (_cl2 != null) // 流转,匹配同排,不堆叠 |
| | | { |
| | | var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel == null) |
| | | continue; |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | if (_cl2.N_CURRENT_NUM < _cl2.N_CAPACITY) |
| | | endbit = _cl2; |
| | | else LogHelper.Info($"{EdnRarea}退库》使用{endbit.S_LOC_CODE}"); |
| | | LogHelper.Info($"入库库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | | else |
| | | { |
| | |
| | | continue; |
| | | } |
| | | } |
| | | if (endbit != null) break; |
| | | } |
| | | |
| | | else if (_cl2 != null) // 流转,匹配同排,不堆叠 |
| | | { |
| | | var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel == null) |
| | | continue; |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | LogHelper.Info($"入库库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | | else |
| | | { |
| | | endbit = null; |
| | | continue; |
| | | } |
| | | } |
| | | if (endbit != null) break; |
| | | } |
| | | else |
| | | { |
| | | foreach (var rss in arloclist.GroupBy(x => x.N_ROW).OrderByDescending(x => x.Count(y => y.N_CURRENT_NUM > 0)).ThenBy(x => x.Key)) |
| | | { |
| | | rowlist = rss.OrderBy(x => x.N_COL).ToList(); |
| | | var _cl2 = rowlist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault(); |
| | | endbit = rowlist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0)); |
| | | if (endbit == null) continue; |
| | | |
| | | if (_cl2 != null && (EdnRarea == "YWLYLTKQ" || EdnRarea == "YWLKTDDQ")) //退库区进行堆叠 |
| | | { |
| | | Last = ""; |
| | | var rr_clrel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var s_clrel0 = rr_clrel.OrderByDescending(xx => xx.T_CREATE).FirstOrDefault(); |
| | | if (s_clrel0 != null && string.IsNullOrEmpty(s_clrel0.S_TYPE)) |
| | | { |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rr_clrel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | if (_cl2.N_CURRENT_NUM < _cl2.N_CAPACITY) |
| | | endbit = _cl2; |
| | | else LogHelper.Info($"{EdnRarea}退库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | | else |
| | | { |
| | | endbit = null; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | else if (_cl2 != null) // 流转,匹配同排,不堆叠 |
| | | { |
| | | var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE); |
| | | var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault(); |
| | | if (cntrrel == null) |
| | | continue; |
| | | if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME) |
| | | { |
| | | LogHelper.Info($"入库库》使用{endbit.S_LOC_CODE}"); |
| | | } |
| | | else |
| | | { |
| | | endbit = null; |
| | | continue; |
| | | } |
| | | } |
| | | if (endbit != null) break; |
| | | } |
| | | } |
| | | |
| | | if (endbit != null) |
| | | { |
| | | var sign = Settings.GetTimeStamp(); |