1
pulg
3 天以前 e4833573a1c6d612c07955034be072c118484bfe
1
1个文件已修改
126 ■■■■ 已修改文件
HH.WCS.QingXiNongfu/core/Monitor.cs 126 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/core/Monitor.cs
@@ -1127,15 +1127,15 @@
                                            }
                                        }
                                        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;
                                            }
                                        }
@@ -1242,26 +1242,46 @@
                                                    }
                                                }
                                            }
                                            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
                                                        {
@@ -1269,26 +1289,60 @@
                                                            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();